Einzelnen Beitrag anzeigen
  #55 (permalink)  
Alt 27.03.18
next user next user ist offline
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von piptrade Beitrag anzeigen
Pkt.1)
---> "updateSL()" unter "void OnTick()"; bzw. "void updateSL(int ticket)", als eigenständige Funktion, wären hier natürlich richtig gewesen !
Lass uns bitte aufhören, von Funktion und Funktionsaufruf getrennt zu reden, ok.

=== === === === === === === === === === === ===

Zitat:
Zitat von piptrade Beitrag anzeigen
Pkt.2)
---> 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");
Ja, die Ticket-Variablen einfach direkt bei "OrderSend()" füllen.

Zitat:
Zitat von piptrade Beitrag anzeigen
Und wenn "Ja", müßte ich wahrscheinlich hier das "int ticket" gegen unser "int ticket_1" austauschen.
Hattest du mit deinem letzten Post nicht bestätigt, das wir uns jetzt auf "orderTicket1 / 2" geeinigt haben?
Der Rest ist richtig.

Zitat:
Zitat von piptrade Beitrag anzeigen
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 ?
Da bist du jetzt denke ich bischen durcheinander:
Code:
void updateSL(int ticket)
{
...
}
Das ist die erstellte Funktion selbst! Die Variable "ticket" ist nur ein Parameter für die Funktion (Platzhalter). Die Ticket-Variablen selbst
werden doch beim Aufruf genutzt:
Code:
if(orderTicket1)  updateSL(orderTicket1);   
if(orderTicket2)  updateSL(orderTicket2);
=== === === === === === === === === === === ===

Zitat:
Zitat von piptrade Beitrag anzeigen
Oder sind unter "void OnTick()" werder dieses "CheckTakeProfit()" noch das "updateSL()" notwendig ? (So ist es, glaube ich !)
So, jetzt kommst du wohl ganz aus der Spur, oder?
"CheckTakeProfit()" nutzt du ja denke ich für TP. Ob es notwendig ist, weißt nur du genau.
"updateSL()" SORGT DOCH EBEN FÜR DAS UPDATEN DER (TRAIL)SL! Die wird doch die ganze Zeit genutzt und jetzt denkst
du, sie sei unnötig? Hast du vergessen, wozu wir sie erstellt haben?

=== === === === === === === === === === === ===

Zitat:
Zitat von piptrade Beitrag anzeigen
---> 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))
Nope! Die erste fragt ab, ob Pos2 schon geschlossen ist. Ist das der Fall, so wird in der zweiten die Pos1 selektiert, UM sie zu schließen!
Wenn sie aber von dir bereits an anderer Stelle aus welchem Grund auch immer durch "CloseAllOrders()" geschlossen wurde,
so wird "OrderSelect()" fehlschlagen und der Block danach NICHT ausgeführt, was Folgen hat!

=== === === === === === === === === === === ===

Zitat:
Zitat von piptrade Beitrag anzeigen
.. und, wenn "Ja" soll doch nicht mehr dieses "CloseAllOrders()", sondern statt dessen "if(!OrderClose(orderTicket1,Order... )"
Verwendung finden. Oder liege ich da falsch ?
Davon bin ich ja bis jetzt ausgegangen, aber dann schreibst du in deinem Code, das ALLE Orders bis auf Order2 von
"CloseAllOrders()" verarbeitet werden. Da hast du mich verwirrt...

=== === === === === === === === === === === ===

Zitat:
Zitat von piptrade Beitrag anzeigen
Pkt.1) "int orderTicket1 = 0;" bzw. "int orderTicket2 = 0;" - so steht es jetzt durchgängig im Code.
Gut.

Zitat:
Zitat von piptrade Beitrag anzeigen
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.
Mit "Doppelblöcke" meinte ich nicht "nahezu identisch", sondern, dass man diese 4 Blöcke mit großen Ähnlichkeiten
auf 2 Blöcke mit entsprechenden Bedingungen reduzieren kann.

=== === === === === === === === === === === ===

Wegen dem ganzen "Durcheinander" im Code ect. frage ich mich grad, ob nicht das die Ursache für das plötzliche schließen der Order
verantwortlich ist...
Auch haben wir ja vor ein paar Tagen Ausgaben angesprochen, die du doch machen wolltest, oder.

Schauen wir mal weiter...