Dienstag, 16. April 2024, 19:36 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

hendrix1

unregistriert

1

Montag, 16. Januar 2012, 20:51

Fehler -> dynamische Kontrakt/LOT Steuerung

Hallo zusammen,
seit einiger Zeit schlage ich mich mit einem Fehler herum, dessen Ursache ich einfach nicht auf die Schliche komme.
Zusammengefast will ich Investox dazu bekommen, die Anzahl der zu (ver-)/kaufenden Kontrakte (LOTs) abhängig von einer Formel zu steuern.
Der Indikator, der diese Steuerung übernehmen soll läuft genau wie das gesamte Handelssystem ohne Fehler im Logbuch.
Allerdings kann ich, obwohl der Indikator LOT (global calc) die korrekte Information trägt, Investox nicht davon überzeugen
diese LOT Menge im EURUSD-Markt zu kaufen/verkaufen.


Screenshot zeigt beispielhaft oben die Berechnung in blau : LOT=2, unten verkauft Investox aber nur -1 LOT



Die "global calc Variable": LOT ist in den Testbedingungen eingetragen.



Das Handelssystem handelt Delay=0 und Ref( ,-1)

...und...



Irgendwo fehlt Investox eine Information um die Trades richtig umzusetzen, aber ich komme dem nicht auf die Schliche.
Vielleicht hat jemand eine Idee, was der Fehler sein kann ?

Danke und bester Gruss aus Köln
Hendrik

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

2

Montag, 16. Januar 2012, 21:37

Hallo Hendrik

Ein Lot bei Forex ist typischerweise 100'000 "Stück" des Währungs-Paares. Nun ist da offensichtlich ein Missverhältnis zwischen Deiner "Lot-" Grösse und dem Delta. Deine "Lot"-Grösse von 1 würde zum Kauf/Verkauf von 1 EUR.USD führen, also in Wirklichkeit 0.00001 Lot. Das kannst Du ja nicht handeln und auch nicht handeln wollen.

(selbst das Mini-Lot bei IB ist im EUR.USD bei 20'000)

Bestücke mal die Variable LOT mit 100'000 und im anderen Fall mit 200'000; wenn Du dynamische LOT Grössen Berechnung verwendest (z.B. aufgrund des Abstandes zum Sicherheitsstop), dann variiere die Variable für den EUR.USD zwischen 20'000 (PS* Untergrenze) und beliebig vielen Millionen, Deiner Kontogrösse entsprechend. Im Eingabefeld "Stückelung (Lot-Grösse)" bietet sich dann mindestens die Angabe von 1'000 an, damit die gehandelten Stückelungen nicht ganz so krumm und blöd aussehen ...

PS: ich gehe davon aus, dass Du Punktetest verwendest mit "Wert pro Punkt" = 1

PS* Untergrenze: bei anderen Währungen kann die Untergrenze bei IB auch 25'000 sein ("Mini-Lot"); informiere Dich ggf. bitte im Contrakt Information Center
Gruss
Bernd

hendrix1

unregistriert

3

Montag, 16. Januar 2012, 22:26

Hallo Bernd,
danke für die schnelle Antwort.
Du hast völlig recht in deinen Ausführungen über IB. Ich handel allerdings mit einer eigenen Software, die das Investoxsignalprotokoll auswertet und
direkt auf die MT4-Server meines Brokers weiterreicht.

Dieser nimmt die LOT-Wünsche entgegen - und zwar in meinem Fall Mini-LOTs:


Allerdings bringt das "IB konforme" bestücken der InvestoxMasken keine Besserung. Investox handelt dann bezogen auf MiniLOTs nur
mit +10000 und -10000, erhöht aber im oben angegebenen Bespiel nicht! auf die gewünschten ZWEI MiniLOTs (-20000 würde ich erwarten ...es bleiben -10000)

Daher vermute ich iregendwo einen systematischen Fehler von mir?
Der gewünschten Werte liegt Investox in der global calc LOT vor, wird aber nicht umgesetzt.
Diese Weigerung von Investox versuche ich zu lösen.

Danke und Gruss
Hendrik

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

4

Montag, 16. Januar 2012, 23:07

Merkwürdig, ich mache es bei Forex wie im ersten Beitrag geschildert, ohne Probleme.

Mal ne blöde Frage: die gezeigten Testbedingungen sind nicht vielleicht "historisch gewachsen" durch Titelspezifische Einstellungen überlagert?

Und mit Wert pro Punkt 1 statt 10'000 geht es auch nicht?
Gruss
Bernd

hendrix1

unregistriert

5

Dienstag, 17. Januar 2012, 23:28

Hallo Bernd,

mit dem Wert 1 pro Punkt funktioniert es leider auch nicht.

Was genau meinst du mit
"die gezeigten Testbedingungen sind nicht vielleicht "historisch gewachsen" durch Titelspezifische Einstellungen überlagert?"
Das verstehe ich leider nicht so richtig. :S

Ich vermute inzwischen, dass die Berechnungen für die globale Variable LOT nicht passen.
Denn wenn ich LOT mit Zufall(5) berechnen lasse oder einfach bspw. "17" eingebe, dann setzt Investox mit Zufallszahlen oder 17 die korrekte Kontraktanzahl um.

Meine Berechnung für LOT basieren auf leicht modifizierten VBS-Beispielen des von Herrn Knöpfel zur Tradeauswertung bereitgestellten VBS-Codes.
Wenn ich jetzt LOT mit einem 100% Investox-Hilfe-Beispiel-VBS-Code bestücke, dann tritt "mein" Fehler bereits auf:


Sowohl die obere als auch die untere Version mit Ref(,-1) laufen nicht und produzieren nur EINEN Kontrakt im Handel.
(Weiter oben steht der SchlüsselCode zum Einbinden der Tradeliste, der Code ist um Addition von +1 modifiziert um Ergenis=0 zu vermeiden)

Das Ergebnis bleibt wie hier zu sehen +-1 Kontrakt, obwohl die Variable LOT deutlich höhere Werte trägt.


Ist VBS Code generell nicht geeignet, um solche SteuerElemente von Investox zu bedienen ?
Einen Fehler erkenne ich nicht ?

Danke und Gruss
Hendrik

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

6

Mittwoch, 18. Januar 2012, 01:11

Ah, jetzt wird's klar, was Du Dir gebastelt hast. Die Doku zum Schlüsselwort tradeergebnis() sagt:

Zitat

In VBScript-Indikatoren steht die Tradeliste des Handelssystems im Chart für Auswertungen zur Verfügung.

Im Chart funktioniert Dein Script natürlich, aber im Coding (Definitionen, Enter- Exit Coding) der Doku entsprechend leider nicht.

(Dein Rückgriff würde wohl auch zu einer unendlichen Rekursion führen, wenn er zugelassen wäre. Mit dem Coding erzeugst Du ja die Trades mit ihren Stückzahlen usw. auf diese Tradeliste möchtest Du bereits in dem Coding zugreifen, das die Tradeliste erzeugt ...; Gödel, Escher und Bach lassen grüssen.)

Du musst einen Weg suchen, wie Du die Lot Grösse ohne Rückgriff auf die Tradeliste berechnen kannst. Normalerweise macht man das, in dem man Werte zur Berechnung heranzieht, die man auch hat. Den aktuellen Wert des Handelsinstruments (als Ableitung von open*Bigpoint) und den Sicherheitsstop miteinander in Verbindung bringt, vielleicht noch die Kontogrösse hinzugibt (im Backtest eine Konstante, im realen Handel kann man den Kontostand stattdessen dynamisch auslesen) und daraus die Stückzahl ableitet, die man sich im aktuellen Trade leisten kann.
Gruss
Bernd

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Bernd« (18. Januar 2012, 01:27)


hendrix1

unregistriert

7

Samstag, 21. Januar 2012, 21:04

Hallo Bernd,
danke für den Hinweis, jetzt weiß ich wenigstens warum das ganze nicht will.

Kennst du eine Möglichkeit, sich die Inhalte der VBS-TradeauswerungsVariablen trotzdem in den von mir beabsichtigten Zusammenhängen zu eigen zu machen ?
Ich dachte ich frage (dich) vorher, bevor ich selber länger "im Nebel herumstocher" ?

Ich denke es ist ja statthaft, die LOT Größe zu berechnen wenn man von der Tradeauswerung den Erfolg der vorhergehenden Trades bekommt.
Ob bspw der vorhergehende Trade erfolgreich war oder nicht führt ja nicht zu einer Rekursion, denn die Steuerung bezieht sich ja nur auf die LOTgröße und nicht Richtung !

Was mir adhoc einfallen würde : Die VBS-Tradeauswertung-Skripte erweitern, sodaß Sie Ihre Inhalte in einen .txt File schreiben, ein anderes kurzes VBS-Skript ließt den .txt File sofort wieder aus- damit wäre für Investox nicht mehr sichtbar, ob die Werte aus der Tradeauswertung kommen?
Wieso werde ich überhaupt bevormundet - die Daten aus der Tradeauswertung zu nutzen ist ja jedem selber überlassen (inkl. dessen gewissenhafter Umgang) ?

Danke und bester Gruss

Hendrik

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

8

Sonntag, 22. Januar 2012, 00:16

Hallo Hendrik

Wenn Dir der von mir in Posting #6, letzter Absatz beschriebene Weg für die Lot-Grössen berechnung nicht gefällt, wäre ein Master/Slave Ansatz noch ein gangbarer Weg für Dich. In einem Slave System könntest Du die Positionen und Stückzahlen des Masters abgreifen.

Schau mal bitte in der Doku im Kapitel "Zugriff auf Kapitalkurven und Positionen anderer Systeme":

Zitat

In der Formelsprache von Investox können Sie auf die Kapitalkurven und Positionen oder Stückzahlen von anderen Handelssystemen im selben Projekt zugreifen. ...

Am bequemsten kann man sich den Zugriff über den Schlüsselwort Assisten zusammen klicken.

Auch hier sagt die Doku:

Zitat

Hinweis: Es ist nicht sinnvoll, in einem Handelssystem Bezug auf die Kapitalkurve oder Positionen des eigenen Systems zu nehmen, da diese Daten erst nach Berechnung des Handelssystems zur Verfügung stehen.

Aus dem gleichen Grund wird auch Deine Idee leider nicht funktionieren, die Daten zuzusagen über ein .txt File über die Hintertür ins selbe Handelssystem zurückzufüttern: es ist ein Problem der Abfolge der Berechnungen. Im selben Handelssytem stehen diese Daten (Position, Stückzahl, Kapitalkurve) erst nach Berechnung des Handelssystems zur Verfügung.

Natürlich wäre ich der Erste, der sich wie Du wünschen würde, dass Herr Knöpfel die VBS-Tradeauswertung-Skripte erweitern würde. Momentan geht es aber leider nur auf den von mir beschriebenen 2 Wegen. Und mein Verständnis des angewandten Berechnungs-Paradigmas sagt mir, dass die Tradeauswertung im eigenen Handelssystem wohl nicht möglich sein wird. Wiewohl ich mich hier sehr gerne eines Besseren belehren lassen würde ...
Gruss
Bernd