void CheckForSignal() { static datetime candletime=0; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ if(candletime!=Time[0]) { if(Close[1]>Close[2]) { exitsells(); exitsells2(); if(TotalOpenOrders()<1) { EnterTrade(OP_BUY); EnterTrade2(OP_BUY); } } if(Close[1]<Close[2]) { exitbuy(); exitbuy2(); if(TotalOpenOrders()<1) { EnterTrade(OP_SELL); EnterTrade2(OP_SELL); } } candletime=Time[0]; } } //+------------------------------------------------------------------+ //| TRADE PLACING FUNCTION | //+------------------------------------------------------------------+ void EnterTrade(int type) { int err=0; double price=Bid,sl=0,tp=0; if(type==OP_BUY) price=Ask; //---- int ticket=OrderSend(Symbol(),type,LotSize,price,Slippage,0,0,"MAEA Trade",magic,0,Magenta); //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET)) { sl=OrderOpenPrice()+(atx*atval); tp=OrderOpenPrice()-(atx*atval); if(OrderType()==OP_BUY) { sl=OrderOpenPrice()-(atx*atval); tp=OrderOpenPrice()+(atx*atval); } if(!OrderModify(ticket,price,sl,tp,0,Magenta)) { err=GetLastError(); Print("Encountered an error during modification!"+(string)err+" "+ErrorDescription(err)); } } else {//in case it fails to select the order for some reason Print("Failed to Select Order ",ticket); err=GetLastError(); Print("Encountered an error while seleting order "+(string)ticket+" error number "+(string)err+" "+ErrorDescription(err)); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ else {//in case it fails to place the order and send us back a ticket number. err=GetLastError(); Print("Encountered an error during order placement!"+(string)err+" "+ErrorDescription(err)); if(err==ERR_TRADE_NOT_ALLOWED)MessageBox("You can not place a trade because \"Allow Live Trading\" is not checked in your options. Please check the \"Allow Live Trading\" Box!","Check Your Settings!"); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int MagicNumberGenerator() { string mySymbol=StringSubstr(_Symbol,0,6); int pairNumber=0; int GeneratedNumber=0; if(mySymbol=="AUDCAD") pairNumber=1; else if(mySymbol == "AUDCHF") pairNumber=2; else if(mySymbol == "AUDJPY") pairNumber=3; else if(mySymbol == "AUDNZD") pairNumber=4; else if(mySymbol == "AUDUSD") pairNumber=5; else if(mySymbol == "CADCHF") pairNumber=6; else if(mySymbol == "CADJPY") pairNumber=7; else if(mySymbol == "CHFJPY") pairNumber=8; else if(mySymbol == "EURAUD") pairNumber=9; else if(mySymbol == "EURCAD") pairNumber=10; else if(mySymbol == "EURCHF") pairNumber=11; else if(mySymbol == "EURGBP") pairNumber=12; else if(mySymbol == "EURJPY") pairNumber=13; else if(mySymbol == "EURNZD") pairNumber=14; else if(mySymbol == "EURUSD") pairNumber=15; else if(mySymbol == "GBPAUD") pairNumber=16; else if(mySymbol == "GBPCAD") pairNumber=17; else if(mySymbol == "GBPCHF") pairNumber=18; else if(mySymbol == "GBPJPY") pairNumber=19; else if(mySymbol == "GBPNZD") pairNumber=20; else if(mySymbol == "GBPUSD") pairNumber=21; else if(mySymbol == "NZDCAD") pairNumber=22; else if(mySymbol == "NZDJPY") pairNumber=23; else if(mySymbol == "NZDCHF") pairNumber=24; else if(mySymbol == "NZDUSD") pairNumber=25; else if(mySymbol == "USDCAD") pairNumber=26; else if(mySymbol == "USDCHF") pairNumber=27; else if(mySymbol == "USDJPY") pairNumber=28; GeneratedNumber=MagicSeed+(pairNumber*55555)+_Period; return(GeneratedNumber); }
void EnterTrade2(int type) { int err=0; double price=Bid,sl=0,tp=0; if(type==OP_BUY) price=Ask; //---- int ticket=OrderSend(Symbol(),type,LotSize2,price,Slippage,0,0,"MAEA Trade",magic2,0,Magenta); //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET)) { sl=OrderOpenPrice()+(atx*atval); tp=OrderOpenPrice()-2*(atx*atval); if(OrderType()==OP_BUY) { sl=OrderOpenPrice()-(atx*atval); tp=OrderOpenPrice()+2*(atx*atval); } if(!OrderModify(ticket,price,sl,tp,0,Magenta)) { err=GetLastError(); Print("Encountered an error during modification!"+(string)err+" "+ErrorDescription(err)); } } else {//in case it fails to select the order for some reason Print("Failed to Select Order ",ticket); err=GetLastError(); Print("Encountered an error while seleting order "+(string)ticket+" error number "+(string)err+" "+ErrorDescription(err)); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ else {//in case it fails to place the order and send us back a ticket number. err=GetLastError(); Print("Encountered an error during order placement!"+(string)err+" "+ErrorDescription(err)); if(err==ERR_TRADE_NOT_ALLOWED)MessageBox("You can not place a trade because \"Allow Live Trading\" is not checked in your options. Please check the \"Allow Live Trading\" Box!","Check Your Settings!"); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int MagicNumberGenerator2() { string mySymbol=StringSubstr(_Symbol,0,6); int pairNumber=0; int GeneratedNumber=0; if(mySymbol=="AUDCAD") pairNumber=1; else if(mySymbol == "AUDCHF") pairNumber=2; else if(mySymbol == "AUDJPY") pairNumber=3; else if(mySymbol == "AUDNZD") pairNumber=4; else if(mySymbol == "AUDUSD") pairNumber=5; else if(mySymbol == "CADCHF") pairNumber=6; else if(mySymbol == "CADJPY") pairNumber=7; else if(mySymbol == "CHFJPY") pairNumber=8; else if(mySymbol == "EURAUD") pairNumber=9; else if(mySymbol == "EURCAD") pairNumber=10; else if(mySymbol == "EURCHF") pairNumber=11; else if(mySymbol == "EURGBP") pairNumber=12; else if(mySymbol == "EURJPY") pairNumber=13; else if(mySymbol == "EURNZD") pairNumber=14; else if(mySymbol == "EURUSD") pairNumber=15; else if(mySymbol == "GBPAUD") pairNumber=16; else if(mySymbol == "GBPCAD") pairNumber=17; else if(mySymbol == "GBPCHF") pairNumber=18; else if(mySymbol == "GBPJPY") pairNumber=19; else if(mySymbol == "GBPNZD") pairNumber=20; else if(mySymbol == "GBPUSD") pairNumber=21; else if(mySymbol == "NZDCAD") pairNumber=22; else if(mySymbol == "NZDJPY") pairNumber=23; else if(mySymbol == "NZDCHF") pairNumber=24; else if(mySymbol == "NZDUSD") pairNumber=25; else if(mySymbol == "USDCAD") pairNumber=26; else if(mySymbol == "USDCHF") pairNumber=27; else if(mySymbol == "USDJPY") pairNumber=28; GeneratedNumber=MagicSeed+(pairNumber*6666)+_Period; return(GeneratedNumber); }
my text was too long to post the whole code.. but i think you can have an ideia, if needed i add the other part
I did not study your code, but I would guess the American FIFO nonsense was in action. FxPro is Cyprus based, they won't apply it.
Thansk for your answer, that makes sense, because today i took a feel trades forward testing it and was ok in other brokers.

You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hi guys, so my problem is that when i backtest in strategy tester everything goes ok, when i drop this ea in my demo account in a ecn broker it apparently execute both orders the first tp and the second, but when i drop in my demo account in the fxpro that was provided by metaquotes with their terminal it doesnt executes both orders, only the first tp...
Sorry about my poor english, my code is bellow, thanks in advance.