Ema Cross! - Seite 4

 

Ema Cross Version?

SpecII:
Hi!

Mein Vorwärtstest von EMACross D1 TF

Danke

Hallo SpecII,

vielen Dank, dass Sie uns daran teilhaben lassen!

Welche Version von EMA_CROSS haben Sie verwendet?

 

Mehrere Paare!

SpecII:
Hallo Codersguru

Ich benutze die Version ohne SL, aber ich habe den Code für mehrere Paare modifiziert und einen Fehler für doppelte Lose gemacht.

Ich werde den Fehler für doppelte Lots später beheben.

Vielen Dank

Nochmals vielen Dank ! Kann ich Ihren Code für mehrere Paare sehen?

 
codersguru:
Nochmals vielen Dank ! Kann ich Ihren Code für mehrere Paare sehen?

Hallo, ich poste den Code. Ist das richtig?

Danke

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

//| EMA_CROSS.mq4 |

//| Coders Guru |

//| https://www.forex-tsd.com |

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

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

//| TODO: Add Money Management routine |

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

#property copyright "Coders Guru"

#property link "https://www.forex-tsd.com"

//---- input parameters

extern double TakeProfit=130;

extern double Lots=1;

extern double TrailingStop=20;

extern int ShortEma = 10;

extern int LongEma = 80;

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

//| expert initialization function |

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

int init()

{

//----

//----

return(0);

}

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

//| expert deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

int Crossed (double line1 , double line2)

{

static int last_direction = 0;

static int current_direction = 0;

//Don't work in the first load, wait for the first cross!

static bool first_time = true;

if(first_time == true)

{

first_time = false;

return (0);

}

if(line1>line2)current_direction = 1; //up

if(line1<line2)current_direction = 2; //down

if(current_direction != last_direction) //changed

{

last_direction = current_direction;

return (last_direction);

}

else

{

return (0); //not changed

}

}

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

//| expert start function |

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

int start()

{

int OrdersPerSymbol=0;

//----

int cnt, ticket;

double SEma, LEma;

if(Bars<100)

{

Print("bars less than 100");

return(0);

}

if(TakeProfit<10)

{

Print("TakeProfit less than 10");

return(0); // check TakeProfit

}

OrdersPerSymbol=0;

for(cnt=OrdersTotal();cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol()==Symbol() )

{

OrdersPerSymbol++;

}

}

SEma = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0);

LEma = iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,0);

static int isCrossed = 0;

isCrossed = Crossed (LEma,SEma);

// total = OrdersTotal();

if(OrdersPerSymbol < 1)

{

if(isCrossed == 1)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"EMA_CROSS",12345,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());

}

else Print("Error opening BUY order : ",GetLastError());

return(0);

}

if(isCrossed == 2)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"EMA_CROSS",12345,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());

}

else Print("Error opening SELL order : ",GetLastError());

return(0);

}

return(0);

}

for(cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

//OrderPrint();

if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())

{

if(OrderType()==OP_BUY) // long position is opened

{

// should it be closed?

/* REMOVED - Trailling stop only close

if(isCrossed == 2)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position

return(0); // exit

}

*/

// check for trailing stop

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

return(0);

}

}

}

}

else // go to short position

{

// should it be closed?

/* REMOVED - Trailling stop only close

if(isCrossed == 1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position

return(0); // exit

}

*/

// check for trailing stop

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

return(0);

}

}

}

}

}

}

return(0);

}

//+------------------------------------------------------------------+
 
codersguru:
hallo SpecII,

Vielen Dank, dass Sie uns daran teilhaben lassen!

Welche Version von EMA_CROSS haben Sie verwendet?

Hallo Codersguru

ich benutze die Version ohne SL, aber ich habe den Code für mehrere Paare modifiziert und einen Fehler für doppelte Lots gemacht, hehe.

Ich werde den Fehler für doppelte Lots später beheben.

Vielen Dank

 

Umgekehrt

Für mich sieht es wie eine Umkehrung aus.

Der Code ist so eingestellt, dass er kauft, wenn der lange EMA größer wird als der kurze EMA

und zu verkaufen, wenn der lange EMA unter den kurzen EMA fällt.

Ich nehme an, dass dies der Grund für den Erfolg ist, denn an anderer Stelle wird einem beigebracht, genau das Gegenteil zu tun.

Ich erhalte auch mehrere Trades mit der ersten Version des EA, die zweite Version muss ich noch ausprobieren. Liegt das an falschen Verlaufsdaten?

Ich werde es heute Abend testen.

Danke

 

so

man kauft also, wenn sich das Sema unter das Lema bewegt

und verkauft, wenn sich der Sema oberhalb des Lema bewegt

Oder bin ich schon wieder verwirrt?

 

wenn ich ea anhänge

Wenn ich das ea an ein Diagramm anhänge, erhalte ich ein 'X' - kein lächelndes Gesicht - auf dem ea oder auf mir.

bekam es funktioniert - musste die Play-Experten-Taste drücken.

 

Hallo,

ich bin gerade dabei, diesen EA mit einem Demo-Konto zu testen. Die ersten Eindrücke sind sehr gut. Im Moment eröffnet er nur ein Paar trotz 4 offenen Diagrammen. Aber mit jeder Eröffnung von Trades ist es in die gute positive Richtung und es ruht. Ich füge Ihnen seit gestern eine Stellungnahme bei.

 
BrunoFX:
Hallo, ich bin Geist zu testen, diese EA mit einem Konto Demonstration. Die ersten Eindrücke sind sehr gut. Im Moment öffnet er nur ein Paar trotz 4 offenen Diagrammen. Aber mit jeder Eröffnung von Trades ist es in die gute positive Richtung und es ruht. Ich füge Ihnen seit gestern eine Stellungnahme bei.

Ich habe diesen EA so modifiziert, dass er eine magische Zahl verwendet. Das wird Handel auf mehrere Paare auf einmal bieten. Ändern Sie maigc param für sein difrent für jedes Paar.

Dateien:
 

Hallo Kalenzo,

Vielen Dank für diese Änderung, immer auch schnell und effektiv, cheer

Grund der Beschwerde: