Einzelnen Beitrag anzeigen
  #7 (permalink)  
Alt 13.02.21
Gaydon Gaydon ist offline
Neues Mitglied
 
Registriert seit: Dec 2020
Beiträge: 11
Gaydon befindet sich auf einem aufstrebenden Ast
Standard

Danke für eure Antworten.

Das Semikolon habe ich übersehen, komischer weiße tat das Programm dennoch was es machen sollte.
NormalizeDouble hatte ich einfach nur schnell reingeworfen, das aber anscheinend auch noch falsch. Wie geht das den Richtig?
Stimmt die letzte if abfrage macht so keinen Sinn.

Nochmal kurz zum Programm.
Das Programm soll bei einer LongPosition einen Ausstieg erstellen, über den TakeProfit. Indem er guckt wann ist der Openprice über dem Gleitendendurchschnitt von 21 und das Low dieser Kerze unter dem 21iger Durchschnitt. Um dann den OpenPrice dieser Kerze als TakeProfit zu setzten bei noch anderen Indikatioren.
Ich hoffe das war verständlich.

So nun wo klemmt das Ganze?

Die Auswahl der Order funktioniert anscheinend.

Die "Laufzeit" und Kontrolle der Ausführung
Code:
if((Bid>OrderStopLoss())&&(OrderTakeProfit()==0))
hier ist für mich schon die Frage, warum modifziert er weiter wenn doch ein TakeProfit automatisch gesetzt ist? Aber wenn ich ihn manuell setzt hört er auf genau wie er soll?

Auswahl des TakeProfit
Code:
double Ausstieg_5Ml=0;
int l=0;
for(l=0;(iLow(_Symbol,PERIOD_M5,l)<SMA_21);l++)   
   {
     Ausstieg_5Ml=iOpen(_Symbol,PERIOD_M5,l);
Das funktioniert, der Preis steht fest und wird richtig "berechnet".
Nun die Frage warum ändert er dennoch laufend den Preis um 5 Pips hoch und dann wieder runter? Der Preis ist doch fest und der TakeProfit ist doch gesetzt darum müsste er doch bei "Laufzeit und Kontrolle" sagen ist falsch, weil TakeProfit gesetzt ist und damit TakeProfit !=0 oder was ist falsch?

OrderModify wird natürlich so gestartet, denke ich.
Code:
if((Ausstieg_5Ml-Takeprofit_Abstand)<Ask)
also vielen Dank für eure Hilfe schonmal.