panowie, machnalem sobie takie EA zeby troche pocwiczyc pisanie i zrozumiec co sie dzieje i jest pewien problem:
EA nie trejduje na moim standardowym testerze z tickami z dukascopy (platforma alpari) natomiast trejduje na FXpro DEMO. Gdzie moze lezec przyczyna?
Kod: Zaznacz cały
#define __STRATEGY_MAGIC 1996504250
//Inputs
extern double _Number = 0.0001;
extern double _120pips = 0.0036;
extern double _200_pips = 0.0045;
//Declaration
double _D1_open;
double _Arithmetic;
bool _Compare;
bool _Send_Pending_2;
bool _AND;
bool _Send_Pending;
double _Bid;
double _Absolute;
double _Bid_2;
double _Absolute_2;
double _Arithmetic_2;
bool _Compare_2;
bool _Delete_Pending;
bool _Delete_Pending_2;
bool _Compare_3;
bool _Modify_Position;
bool _Modify_Position_2;
double _Order_Data;
double _Order_Data_2;
int start(){
//Level 1
_D1_open = iOpen(Symbol(),1440,0);
_Bid = Bid;
_Bid_2 = Bid;
_Order_Data = __OpenPrice(1);
_Order_Data_2 = __OpenPrice(2);
//Level 2
_Arithmetic = _D1_open - _Bid;
_Arithmetic_2 = _D1_open - _Bid_2;
//Level 3
_Absolute = MathAbs(_Arithmetic);
_Absolute_2 = MathAbs(_Arithmetic_2);
//Level 4
_Compare = _Absolute <= _Number;
_Compare_2 = _Absolute_2 >= _120pips;
_Compare_3 = _Absolute_2 >= _200_pips;
//Level 5
_AND = _Compare;
if(_Compare_2)_Delete_Pending = OrderDelete(__Ticket(1));
if(_Compare_2)_Delete_Pending_2 = OrderDelete(__Ticket(2));
if(_Compare_3)_Modify_Position = OrderModify(__Ticket(1),0,_Order_Data,OrderTakeProfit(),0);
if(_Compare_3)_Modify_Position_2 = OrderModify(__Ticket(2),0,_Order_Data_2,OrderTakeProfit(),0);
//Level 6
if(_AND && !__isExist(1))_Send_Pending_2 = OrderSend(Symbol(),5,2,MarketInfo(Symbol(),MODE_ASK)-350*MarketInfo(Symbol(),MODE_POINT),0,MarketInfo(Symbol(),MODE_ASK)-350*MarketInfo(Symbol(),MODE_POINT)+MarketInfo(Symbol(),MODE_POINT)*10000,MarketInfo(Symbol(),MODE_ASK)-350*MarketInfo(Symbol(),MODE_POINT)-MarketInfo(Symbol(),MODE_POINT)*70,"",__STRATEGY_MAGIC + 1)>=0;
if(_AND && !__isExist(2))_Send_Pending = OrderSend(Symbol(),4,2,MarketInfo(Symbol(),MODE_BID)+350*MarketInfo(Symbol(),MODE_POINT),0,MarketInfo(Symbol(),MODE_BID)+350*MarketInfo(Symbol(),MODE_POINT)-MarketInfo(Symbol(),MODE_POINT)*10000,MarketInfo(Symbol(),MODE_BID)+350*MarketInfo(Symbol(),MODE_POINT)+MarketInfo(Symbol(),MODE_POINT)*70,"",__STRATEGY_MAGIC + 2)>=0;
return(0);
}
//Services
bool __selectOrderByMagic(int __magic){for(int __i=0;__i<OrdersTotal();__i++){if(OrderSelect(__i,SELECT_BY_POS,MODE_TRADES)&&OrderMagicNumber()==__STRATEGY_MAGIC+__magic)return(true);}return(false);}
bool __isExist(int __magic){return(__selectOrderByMagic(__magic));}
int __Ticket(int __magic){if(!__selectOrderByMagic(__magic))return(0);return(OrderTicket());}
double __OpenPrice(int __magic){if(!__selectOrderByMagic(__magic))return(0);return(OrderOpenPrice());}