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

Hallo, next user !

Lieber später, als NIE ! - das ist schon völlig in Ordnung.
Hauptsache Du unterstützt mich bis "zum bitteren Ende" und lässt mich "nicht im Regen stehen"! Und für das, was ich bisher dazulernen konnte/durfte bin ich sehr dankbar! Thanks !

So, nun aber wieder an die Arbeit:

Pkt.1)
Zitat:
Du führst ja wieder etwas ein...
Also Punkt 2 & 3, damit sind die von dir neu hinzugefügte Funktion "CheckForUpdateSL()" und meine ursprüngliche "updateSL()" gemeint.
---> "updateSL()" unter "void OnTick()"; bzw. "void updateSL(int ticket)", als eigenständige Funktion, wären hier natürlich richtig gewesen !

Pkt.2)
Zitat:
Zitat von piptrade Beitrag anzeigen
Code:
res = OrderSend(Symbol(), OP_BUY, LotsOptimized(), Ask, 3, 0, 0, "", MagicNumber, 0, Green);

Zitat:
"OrderSend()" liefert ja die Ticketnummer. Warum nutzt du hier "res"? Warum nicht direkt die Ticket-Variablen?
Wo erst bekommen denn bei dir die Ticket-Variablen ihren Wert?
Das meinte ich mit "überall" nutzen.
---> wenn ich Dich hier richtig verstehe, sollte ich auf das "res" (Eröffnung der Pos.1 nach Strategie) verzichten und statt dessen
die "OrderSend"-Funktion (siehe Code) verwenden:

Code:
int ticket=OrderSend(Symbol(),OP_BUY,1,price,3,stoploss,takeprofit,"My order",16384,0,clrGreen); 
    if(ticket<0) 
      {  Print("OrderSend failed with error #",GetLastError());  } 
    else Print("OrderSend placed successfully");
Richtig ? Und wenn "Ja", müßte ich wahrscheinlich hier das "int ticket" gegen unser "int ticket_1" austauschen.
Und wenn auch das richtig sein sollte, müßte ich dann das "void updateSL(int ticket)" gegen "void updateSL(int ticket_2)"
für "ticket_2" ersetzen ?

Und jetzt die unklaren Codeabschnitte:

Zitat:
Erklär mir mal, was diese zweite Funktion für eine Notwendigkeit für spätere Aufrufe hat.
---> wenn ich unter "void OnTick()" dieses "CheckTakeProfit();" aufführe, damit die spätere und weiter unten angeführte Funktion
"void CheckTakeProfit()" auch läuft, ... dann sollte ich mit "CheckForUpdateSL()" bzw. richtiger: "updateSL()" / "void updateSL()" analog verfahren.
Oder sind unter "void OnTick()" werder dieses "CheckTakeProfit()" noch das "updateSL()" notwendig ? (So ist es, glaube ich !)

Zitat:
Dann müsste man bei Block A noch ergänzen und prüfen, ob Pos 1 nicht SCHON geschlossen ist, wenn du sagst, dass "CloseAllOrders()" auch für Pos 1 Verwendung findet.
---> wird die Prüfung der Pos.1 nicht schon durch diese Zeilen erledigt ?

Code:
     if(OrderSelect(orderTicket2,SELECT_BY_TICKET,MODE_HISTORY))  {
        if(OrderSelect(orderTicket1,SELECT_BY_TICKET,MODE_TRADES))
.. und, wenn "Ja" soll doch nicht mehr dieses "CloseAllOrders()", sondern statt dessen "if(!OrderClose(orderTicket1,Order... )"
Verwendung finden. Oder liege ich da falsch ?

Zum Code an sich:

Pkt.1) "int orderTicket1 = 0;" bzw. "int orderTicket2 = 0;" - so steht es jetzt durchgängig im Code.
Pkt.2) Thema "Doppelblöcke": So, wie Du es darstellst ist es nicht ganz richtig. Die Unterscheidungen betreffen nicht nur die"openOrders",
sondern auch die "Trail_Targets" und die "TSL(s)".
Hier sollen Auslöser und Spanne (von Pos.1 zu Pos.2) reduziert werden, da hier mit einer höheren Positionsgröße gearbeitet wird.

Puhhh... , - das war`s mal wieder.

Nunmehr hoffe ich, dass wieder einige Kleinigkeiten richtiggestellt wurden und unsere nächsten Posts kürzer ausfallen. Und wenn dann als neuer Post nur noch das lang ersehnte "OK" übermittelt wird, sollten wir es geschafft haben.

DANKE, dass Du wirklich auf jedes Komma, jeden Punkt und auch auf ... eingehst. Und vielen, vielen Dank für Deine Geduld, Ausdauer und Zielstrebigkeit. Mit jedem neuen Statement habe ich etwas dazugelernt, so dass schon jetzt allein die Verständigung besser klappt.

Thanks, bis bald und LG. pt.