Wie programmiert man? - Seite 341

 

Kann jemand so freundlich sein, mir zu helfen, dies zu lösen:

Es gibt ein Problem mit dem Code, den ich unter dieser Nachricht angehängt habe..., er gibt das Signal immer am Anfang einer Kerzenformation!

Dies hat dazu geführt, dass ich zu spät in den Handel einsteige, vor allem bei höheren Zeitrahmen. Können Sie uns bitte helfen, so dass die iny wird die Warnung nur, wenn der aktuelle Preis Brücke MA entweder nach oben für Kauf und unten für Verkauf, anstatt zu warten, bis der Beginn einer anderen Kerze

Danke Angehängte Dateien

Dateien:
smacd.mq4  4 kb
 

Hallo Mladen, wissen Sie, was ich verwenden kann, um meine Eröffnung Handel Kriterien auslösen?

Was ich wissen möchte ist, wie kann ich einen Handel auslösen, wenn die Kerze über oder unter der gleitenden Durchschnittslinie um 10pips schließt.

Das System wird den Handel auslösen, je nachdem, ob es über oder unter der gleitenden Durchschnittslinie schließt.

Ich denke an die Verwendung von iClose, habe aber keine Ahnung, wie ich es implementieren kann. Ich weiß Ihre Hilfe zu schätzen.

Vielen Dank!

Ryan

 
tkuan77:
Hallo Mladen, wissen Sie, was ich verwenden kann, um meine Kriterien für die Handelseröffnung auszulösen?

Was ich wissen möchte, ist, wie kann ich einen Handel auslösen, wenn die Kerze über oder unter der gleitenden Durchschnittslinie um 10 Pips schließt.

Das System wird den Handel auslösen, je nachdem, ob es über oder unter der gleitenden Durchschnittslinie schließt.

Ich denke an die Verwendung von iClose, habe aber keine Ahnung, wie ich es implementieren kann. Ich weiß Ihre Hilfe zu schätzen.

Danke!

Ryan

Hallo Mladen,

ich habe den Code erstellt, er scheint zu funktionieren, allerdings wird der Handel manchmal nicht ausgelöst, wenn die Kriterien erfüllt sind, und ich habe keine Ahnung, wie ich von jetzt an vorgehen soll.

//+------------------------------------------------------------------+

//---- Eingabeparameter

extern double TakeProfit = 250.0;

extern double Lots = 0.1;

extern double StopLoss = 200.0;

//+------------------------------------------------------------------+

//| Experten-Initialisierungsfunktion |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Experten-Deinitialisierungsfunktion |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

double pBid, pAsk;

datetime newbar;

int start()

{

//+------------------------------------------------------------------+

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

sonst newbar=Time[0];

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0);

double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0);

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//-- Handel auslösen

//+------------------------------------------------------------------+

int ticket, total;

double CD_Close = iClose(NULL,0,1);

total = OrdersTotal(); // Überprüfung der Gesamtzahl der derzeit offenen Trades

if(gesamt < 2)

{

if (CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st && Minute()==Entry_Minute_1st)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,

"Mein EA",Entry_magicNo_1st,0,Green);

return(0);

}

if (CD_Close <= Dwn_MA-50*Point)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,

"Mein EA",Entry_magicNo_1st,0,Red);

return(0);

}

return(0);

}

return(0);

}

//+------------------------------------------------------------------+

 
tkuan77:
Hallo Mladen,

Ich habe den Code erstellt, er scheint zu funktionieren, allerdings wird der Handel manchmal nicht ausgelöst, wenn die Kriterien erfüllt sind, und ich habe keine Ahnung, wie ich von jetzt an vorgehen soll.

//+------------------------------------------------------------------+

//---- Eingabeparameter

extern double TakeProfit = 250.0;

extern double Lots = 0.1;

extern double StopLoss = 200.0;

//+------------------------------------------------------------------+

//| Experten-Initialisierungsfunktion |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Experten-Deinitialisierungsfunktion |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

double pBid, pAsk;

datetime newbar;

int start()

{

//+------------------------------------------------------------------+

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

sonst newbar=Time[0];

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0);

double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0);

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//-- Handel auslösen

//+------------------------------------------------------------------+

int ticket, total;

double CD_Close = iClose(NULL,0,1);

total = OrdersTotal(); // Überprüfung der Gesamtzahl der derzeit offenen Trades

if(gesamt < 2)

{

if (CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st && Minute()==Entry_Minute_1st)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,

"Mein EA",Entry_magicNo_1st,0,Green);

return(0);

}

if (CD_Close <= Dwn_MA-50*Point)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,

"Mein EA",Entry_magicNo_1st,0,Red);

return(0);

}

return(0);

}

return(0);

}

//+------------------------------------------------------------------+

Können Sie einige Fälle aufzeigen, in denen ein Handel hätte ausgelöst werden sollen und dies nicht der Fall war?

 

Hallo Mladen,

im Anhang finden Sie den Screenshot.

Viele Grüße

Ryan

Dateien:
untitled.jpg  42 kb
 

Hallo Mladen, könnte es ein Fehler in einigen Zeilen sein, der diesen Fehler verursacht?

Mit freundlichen Grüßen

 
tkuan77:
Hallo Mladen, könnte es sich um einen Fehler in einigen Zeilen handeln, der diesen Fehler verursacht? Mit freundlichen Grüßen

tkuan77

Überprüfen Sie zunächst die Registerkarte Journal und Experten des Terminals, ob dort eine Fehlermeldung ausgegeben wird

 
mladen:
tkuan77 Überprüfen Sie zunächst die Registerkarte "Journal" und "Experten" des Terminals, ob dort eine Fehlermeldung angezeigt wird

Hallo mladen, danke, das Problem wurde bereits behoben.

Meine nächste Frage ist jedoch, wie ich die Trades entsprechend sortieren kann?

Zum Beispiel:

Gesamtzahl der Trades zu einem beliebigen Zeitpunkt = 2

1 Handel für jede Gruppe von Kriterien. Wie stelle ich sicher, dass das System nicht mehr als 1 Handel für jeden bestimmten Satz auslöst, wenn die Kriterien mehr als einmal erfüllt sind?

Im Folgenden finden Sie meine Codes als Referenz:

total = OrdersTotal(); // Prüfung der Gesamtzahl der derzeit offenen Geschäfte

if(gesamt < 2)

{

if (Hour()==Entry_Hour_1st || Hour()==Entry_Hour_2nd)

{

//Wenn kein Geschäft unter diesem Kriterium geöffnet ist, prüfen, ob die Bedingungen erfüllt sind, wenn ja, ein Geschäft auslösen, wenn nein, kein Geschäft auslösen.

}

if (Hour()==Entry_Hour_3rd || Hour()==Entry_Hour_4th)

{

//Wenn unter diesen Kriterien derzeit kein Geschäft geöffnet ist, prüfen, ob die Bedingungen erfüllt sind, wenn ja, ein Geschäft auslösen, wenn nein, kein Geschäft auslösen.

}

}

Ich bin für Ihren Rat dankbar. Vielen Dank!

Mit freundlichen Grüßen

 

Wie genau sollten ECN-Broker-Aufträge gehandhabt werden?

 
apprentice coder:
Wie genau sollten ECN-Broker-Aufträge gehandhabt werden?

Coder-Lehrling

Der einzige Unterschied besteht darin, dass Sie bei einem ECN-Broker zunächst eine Order mit 0 sl- und tp-Feldern eröffnen und dann die Order (falls erforderlich) ändern, um sl und tp zu setzen, während Sie bei einem "normalen" Broker sl und tp zusammen mit der Ordereröffnung platzieren können. Der Rest ist genau dasselbe