Donnerstag, 18. April 2024, 20:00 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

1

Donnerstag, 3. Juli 2014, 18:36

Code nur bei Bedingung ausführen

Hallo an das Forum!

Nachdem ich nun schon eine ganze Weile hier immer mal wieder passiv mitlese, möchte ich nun mal Hallo sagen.

Nun ist meine Frage, gibt es in Investox eine Möglichkeit, Code nur ausführen zu lassen wenn eine Bedingung zutrifft? Ich habe nämlich in der Anleitung gelesen, dass bei einer If-Bedingung immer alle 3 Zustände berechnet werden. Bei rechenintenisveren Sachen vielleicht etwas aufwendig. Oder gibt es die Möglichkeit GoTo Anweisungen zu nutzen, oder kann man innerhalb einer IF-Anweisung Variablen setzen lassen? Habe dazu nichts gefunden.

Bitte nicht zu viel Programmierkenntnisse voraussetzen! Ein bisschen batch Wissen ist vorhanden aber wirklich nur ein bisschen!

Grüße an alle hier!

LowTrader

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

2

Donnerstag, 3. Juli 2014, 18:59

Oder gibt es die Möglichkeit GoTo Anweisungen zu nutzen, oder kann man innerhalb einer IF-Anweisung Variablen setzen lassen? Habe dazu nichts gefunden.


In der Investox eigenen Sprache gibt´s das nicht, würde auch absolut keinen Sinn machen bei der IF( , ,) Abfrage.
Die logik Bedingung in der IF Abfrage wird in jedem einzelnen BAR ausgewertet und in Abhängigkeit zwischen den beiden Zeitreihen "hin und her geschaltet".

Quellcode

1
IF(atr>15, atr*2, atr*3)


Wenn Du aber mit VB Script umgehen kannst, hast Du da andere Möglichkeiten diesbezüglich.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Lenzelott« (3. Juli 2014, 21:51)


LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

3

Donnerstag, 3. Juli 2014, 22:13

Hallo Lenzelott,

danke für die Antwort. Mit VBScript kenne ich mich nicht aus, habe ein bisschen VBA-Erfahrung mit Makros in Word oder Excel - mehr aber auch nicht.

Was ich realisieren will ist eine Art erweiterter VWAP. Es soll dabei folgendermaßen vorgegangen werden:

1. Schaue, ob in der letzten n Minuten das Volumen über einem gewissen Grenzwert liegt
2. Wenn ja dann berechne VWAP, wenn nein dann erhöhe n um 1 und weiter bei 1.

Zum Thema VWAP gabs hier ja schon einige Posts. Ich bin auch so weit, dass ich den VWAP für eine bestimmte Zeitspanne mittels Abschnittswechsel, Barssince und SumVar berechnen kann. Prinzipiell könnte ich das ja auch ohne Schleife in eine If-Bedingungen verschachteln. Das wäre halt rechenintensiv, wenn immer If, then und else berechnet wird. Und ich weiß auch nicht wie viele Ebenen ich in eine If-Funktion in IV packen kann. Daher interessiert es mich wie ich das am geschicktesten anpacken würde.

schönen Abend noch!
LowTrader

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

4

Freitag, 4. Juli 2014, 12:56

Hallo,

>>Das wäre halt rechenintensiv, wenn immer If, then und else berechnet wird.

das kann aufgrund der Zeitreihen-Berechnung der Formelmaschine auch nicht anders sein. Denoch wird die Berechnung in der Regel deutlich schneller erfolgen als bei einer zeilenweise interpretierten Berechnung wie in VBScript. Insofern ist dies meistens kein Nach- sondern ein Vorteil. Daher würde ich empfehlen, die Berechnung wenn möglich zunächst als normale Investox Formel umzusetzen. Andere Lösungswege wären nur dann erforderlich, wenn sich dann herausstellen sollte, dass die Berechnung zu langsam erfolgt.

Viele Grüße
Andreas Knöpfel

LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

5

Mittwoch, 16. Juli 2014, 18:15

Hallo Herr Knöpfel,

ich habe ihnen ja noch gar nicht geantwortet. Ja die Geschwindigkeit scheint in der Tat kein Hinderungsgrund zu sein. Das geht ja sehr flott - zumindest in meinen ersten Versuchen. Vielen Dank für ihre Hilfe!

Viele Grüße!