Wie programmiert man? - Seite 335

 
mladen:
Dieser Teil

if(newbar==Time[0])return(0);

sonst newbar=Zeit[0];

int ticket, gesamt;

if(Balken<100)

{

Print("Balken weniger als 100");

return(0);

}

if(TakeProfit<10)

{

Print("TakeProfit kleiner als 10");

return(0); // TakeProfit prüfen

}

Verhindert, dass das Ea Aufträge zu einem bestimmten Zeitpunkt schließt, wenn es sich nicht um den ersten Tick eines neuen Balkens handelt und wenn der Gewinn nicht > 10 Pips ist

Hallo mladen, ich habe diesen Teil des Codes entfernt und mein ea schließt immer noch nicht zu meinem gewünschten Zeitpunkt.

Haben Sie eine Idee, was der Grund dafür sein könnte? Danke!

Viele Grüße

Ryan

 
tkuan77:
Hallo mladen, ich habe diesen Teil des Codes entfernt, aber mein Ea schließt immer noch nicht zu der von mir gewünschten Zeit.

Haben Sie eine Idee, woran das liegen könnte? Danke!

Mit freundlichen Grüßen

Ryan

So wie es geschrieben ist, werden die Aufträge nur geschlossen, wenn die Brokerzeit genau 07:00:00 ist.

 
mladen:
So wie es geschrieben ist, werden Aufträge nur geschlossen, wenn die Brokerzeit genau 07:00:00 ist.

Hallo mladen, gibt es eine andere Möglichkeit, da es hier nicht zu funktionieren scheint.

Mit freundlichen Grüßen

Ryan

 
tkuan77:
Hallo mladen, gibt es einen anderen Weg um dies zu umgehen, da es hier nicht zu funktionieren scheint.

Mit freundlichen Grüßen

Ryan

Versuchen Sie es mit

If (TimeCurrent()>= StringToTime("07:00:00"))

stattdessen

 
mladen:
Versuchen Sie die Verwendung von

If (TimeCurrent()>= StringToTime("07:00:00"))

stattdessen

Hallo mladen, es funktioniert immer noch nicht. Ich frage mich, ob es an diesen Zeilen hier liegen könnte... entweder die OrdersTotal oder OrderSelect könnten das Problem verursachen?

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

Mit freundlichen Grüßen

Ryan

 
tkuan77:
Hallo mladen, es funktioniert immer noch nicht. Ich frage mich, ob es an diesen Zeilen hier liegen könnte... entweder die OrdersTotal oder OrderSelect könnten das Problem verursachen?

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

Mit freundlichen Grüßen

Ryan

Nein. Diese Zeilen sind korrekt.

 
mladen:
Nein. Diese Zeilen sind korrekt

Hallo mladen, weil ich mein Ea so eingestellt habe, dass ich zu jedem Zeitpunkt nur 1 Handel habe und ich habe bemerkt, dass OrdersTotal meine int i Anzahl auf negative 0 durch 1-1 setzt, i>=0; i-- wird meine i=-1 machen

Ich frage mich also, ob dies der Fehler sein könnte.

else if(total > 1) //zur Schließung von Aufträgen basierend auf dem Timing... noch nicht gelöst.

{

if (Stunde()==7 && Minute()==30)

{

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID);

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);

}

if (OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Rot);

}

}

}

}//

}

return(0);

}

 
tkuan77:
Hallo mladen, weil ich mein Ea so eingestellt habe, dass es zu jedem Zeitpunkt nur 1 Handel hat und ich habe bemerkt, dass OrdersTotal meine int i Anzahl auf negative 0 durch 1-1 setzt, i>=0; i-- wird meine i=-1 machen

Ich habe mich gefragt, ob dies der Fehler sein könnte.

else if(total > 1) //zur Schließung von Aufträgen basierend auf dem Timing... noch nicht geklärt.

{

if (Stunde()==7 && Minute()==30)

{

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID);

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);

}

if (OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Rot);

}

}

}

}//

}

return(0);

}

Ersetzen Sie bitte die folgende Zeile: f (Hour()==7 && Minute()==30) durch die Zeile, die ich Ihnen geschickt habe, und versuchen Sie dann

OrdersTotal() gibt 1 zurück, wenn eine offene Order vorhanden ist. Wenn Sie OrderSelect() verwenden, wird diese 0 (OrdersTotal()-1) die richtige Order auswählen. Wenn OrdersTotal() 0 zurückgibt, dann gibt es keine geöffneten Aufträge im aktiven Auftragspool

 
mladen:
Bitte ersetzen Sie dies: f (Hour()==7 && Minute()==30) mit der Zeile, die ich Ihnen geschickt habe, und versuchen Sie es, dann wird OrdersTotal() 1 zurückgeben, wenn es eine offene Order gibt. Wenn Sie OrderSelect() verwenden, wird diese 0 (OrdersTotal()-1) die richtige Order auswählen. Wenn OrdersTotal() 0 zurückgibt, gibt es keine geöffneten Aufträge im aktiven Auftragspool.

Hallo mladen, leider habe ich es gerade noch einmal versucht und es funktioniert immer noch nicht.

Gibt es eine andere Möglichkeit, wie ich meinen Handel basierend auf einem bestimmten Zeitpunkt schließen kann?

Mit freundlichen Grüßen

Ryan

 
mladen:
Bitte ersetzen Sie diese: f (Hour()==7 && Minute()==30) mit der Zeile, die ich Ihnen geschickt habe, und versuchen Sie es, dann wird OrdersTotal() 1 zurückgeben, wenn es eine offene Order gibt. Wenn Sie OrderSelect() verwenden, wird diese 0 (OrdersTotal()-1) die richtige Order auswählen. Wenn OrdersTotal() 0 zurückgibt, gibt es keine geöffneten Aufträge im aktiven Auftragspool.

Hallo mladen, ich habe es geschafft, das Problem zu lösen. es scheint, als ob dieser Liner das Problem verursacht hat. der Code funktioniert, nachdem ich ihn entfernt habe.

else if(gesamt > 1)

Danke für deine Hilfe...

Mit freundlichen Grüßen

Ryan

Grund der Beschwerde: