Dies ist ein einfacher EA. nur ein 20-Tage-Breakout-System.
Wenn der Preis 20 Tage neu zu brechen, kaufen. Ausfahrt, wenn der Preis 10 Tage niedrig ist
Wenn der Preis 20 Tage neu niedrig ist, verkaufen. Ausfahrt, wenn der Preis 10 Tage hoch ist.
Nach dem ersten offenen Ticket können 2 weitere Tickets hinzugefügt werden.
aber wenn ich von 2006 bis jetzt auf EURUSD backtest, passierte kein Handel.
Wer kann helfen herauszufinden, wo das Problem liegt?
//---- Eingabeparameter
extern Doppellots = 0,1;
extern int n_enter_days = 20;
extern int m_exit_days = 10;
// ----------------------------------------------- -------------------
//| Experteninitialisierungsfunktion |
// ----------------------------------------------- -------------------
int init ()
{
//----
//----
Rückkehr (0);
}
// ----------------------------------------------- -------------------
//| Experten Deinitialisierungsfunktion |
// ----------------------------------------------- -------------------
int deinit ()
{
//----
//----
Rückkehr (0);
}
// ----------------------------------------------- -------------------
//| Expertenstartfunktion |
// ----------------------------------------------- -------------------
datetime letzte_zeit = 0;
int start ()
{
int cnt, Ticket, gesamt;
if (Barslt; 100)
{
Drucken (Balken weniger als 100);
Rückkehr (0);
}
total = OrdersTotal ();
if (Close [1] gt; Hoch [iHighest (Symbol (), Periode (), MODE_HIGH, n_enter_days, 1)]
last_time! = Zeit [0]
total; 3)
{
ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, 3,0,0, Mein EA, 12345,0, Rot);
if (ticketgt; 0)
{
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES))
Drucken (Kaufauftrag geöffnet:, OrderOpenPrice ());
}
sonst
{
Drucken (Fehler beim Öffnen der KAUF-Reihenfolge:, GetLastError ());
Rückkehr (0);
}
last_time = Zeit [0];
}
if (Schließen [1] lt; Niedrig [iLowest (Symbol (), Periode (), MODE_LOW, n_enter_days, 1)]
last_time! = Zeit [0]
total; 3)
{
ticket = OrderSend (Symbol (), OP_SELL, Lots, Bid, 3,0,0, Mein EA, 12345,0, Grün);
if (ticketgt; 0)
{
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES))
Drucken (Kaufauftrag geöffnet:, OrderOpenPrice ());
}
sonst
{
Drucken (Fehler beim Öffnen der KAUF-Reihenfolge:, GetLastError ());
Rückkehr (0);
}
last_time = Zeit [0];
}
für (cnt = 0; cntlt; gesamt; cnt )
{
OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderType () lt; = OP_SELL OrderSymbol () == Symbol ())
{
if (OrderType () == OP_BUY)/Lange Position wird geöffnet
{
if (Schließen [1] lt; Niedrig [iLowest (OrderSymbol (), Periode (), MODE_LOW, m_exit_days, 1)])
OrderClose (OrderTicket (), OrderLots (), Bid, 3, Weiß);
}
}
if (BestellTyp () == OP_SELL)
{
if (OrderType () == OP_BUY)/Lange Position wird geöffnet
{
if (Close [1] gt; Hoch [iHohtes (OrderSymbol (), Periode (), MODE_HIGH, m_exit_days, 1)])
OrderClose (OrderTicket (), OrderLots (), Ask, 3, Weiß);
}
}
}
//----
//----
Rückkehr (0);
}
// ----------------------------------------------- -------------------