Einzelnen Beitrag anzeigen
  #30 (permalink)  
Alt 20.03.18
piptrade piptrade ist offline
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 157
piptrade befindet sich auf einem aufstrebenden Ast
Standard

So, da bin ich wieder !
... und das mit ersten Erkenntnissen :

Hallo, lieber next user,

habe mir jetzt nochmals die Zeit genommen, alles in Ruhe zu überprüfen.
Die erste Erkenntnis war nun, dass der von Dir gewählte Begriff "updateSL" (unter "void OnTick()"
die ganze Anglegenheit tatsächlich am besten trifft.
Dieses update ist ja wichtig, um a) die Positionen 1 + 2 ständig zu "scannen", b) zu registrieren, dass ggf. eine der beiden
Tickets geschlossen wurde und c) um dann nachträglich die Pos. 1 zu schließen.
Bis dahin ist in Punkto "Block 1" alles recht gut verständlich.
(Ohne den 2. "Block" "void updateSL(int ticket)" wird allerdings "updateSL" beim Kompellieren als error ausgewiesen.)

Somit muß dieses "updateSL" also in einem 2. "Block" = "void updateSL(int ticket)" nochmals aufgegriffen werden
und - siehe da, - das o.a. error verschwindet, da es jetzt erkannt wird.
Auch bis dahin ist alles halbwegs verständlich.

Nicht ganz verständlich hingegen ist, was der 2. "Block" bewirkt.
Theoretisch sind jetzt alle Orders geschlossen und es sollte (irgendwann) eine neue, erste Order, gem. Strategie-Konditionen,
eröffnet werden. So z.B. eine BUY-Pos.. Auch das ist noch OK.
Damit gibt es jetzt wieder ein Ticket in der History (wie eigentlich immer), ein zweites Ticket ist geöffnet. Dies wiederum
wird unter OrderSelect erkannt, was zum Schließen der Position führen müßte. Kaum wäre die neue 1. Pos. geöffnet, würde sie auch
schon wieder gechlossen werden ?
Wo ist hier der Gedankenfehler ? - oder ist der Gedanke ggf. gar nicht so falsch ?

Und ein zweiter Gedanke:
Angenommen, die o.a. 1. Pos. verbleibt im Markt, sie wird selektiert, es wird festgestellt BUY oder SELL, so würde
bei Erreichen des Trail_Targets der Trail_SL übergeben werden.
Weiterhin angenommen, die 1. Pos. erreicht ihr Trail_Target NICHT und rutscht statt dessen in die Verlustzone, ---> jetzt wird
gehedged und eine 2. Pos. zusätzlich geöffnet.

Somit gibt es jetzt 2 geöffnete Tickets, wobei nur die 2. Pos. den Trail_SL erhalten soll.
Da im Code aber nur nach Ticket bzw. Tickets und anschließend nur nach BUY bzw. SELL unterschieden wird, müßte doch wenigstens auch die "openOrders == 2" angesprochen werden ? - Oder ? Wie sonst kann der Trail_SL an die richtige Pos. übergeben werden ?

Erst einmal bis zu diesem Punkt. Vielleicht kannst Du meine ersten Gedanken nochmals prüfen und sollten sie Fehler aufweisen,
korrigieren.

LG. pt.