extern bool runStrategy1=true; extern bool runStrategy2=TRUE; extern double lots=0.01; extern int TP = 25; extern int SL = 330; extern int maxTrades=1; extern int myMagic=602197; extern string myComment="INS"; extern int breakEven=15; extern int TrailingStop=50; extern double maxTotalProfit=100.00; extern int maxTryOrder=10; extern int MP=25; extern int Magic_s1=1234; extern int Magic_s2=5678; extern int cmd; int odrctr=0; string gs_0; int myDigits; double myPoint; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { double SL_Buy; double SL_Sell; int mSignal=0; if (runStrategy1) { mSignal=checkSignal_s1(Symbol()); if (mSignal==1 && countOrder(OP_BUY)==0) { OrderSend(Symbol(),lots, Ask,SL*myPoint, TP*myPoint, myComment,Magic_s1,Green); } else if (mSignal==-1 && countOrder(OP_SELL)==0) { OrderSend(Symbol(),lots, Bid,SL*myPoint, TP*myPoint, myComment,Magic_s1,Red); Comment(gs_0); } } if (runStrategy2) { mSignal=checkSignal_s2(Symbol()); //int SL_Buy=iLowest(Low[2], Low[1]); // read doc //int SL_Sell=iHighest(High[2], High[1]); // read doc x2 if (mSignal==1 && countOrder(OP_BUY )==0) { OrderSend(Symbol(),lots, Ask,SL_Buy*myPoint, TP*myPoint, myComment,Magic_s2,Green); } else if (mSignal==-1 && countOrder(OP_SELL)==0) // if "==" not "=" { OrderSend(Symbol(),lots, Bid,SL_Sell*myPoint, TP*myPoint, myComment,Magic_s2,Red); Comment(gs_0); } } return(0); } //+------------------------------------------------------------------+ int countOrder (int cmd) { int odrctr=0; for (int i=0;i<OrdersTotal();i++){ OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol()==Symbol() && OrderMagicNumber()==myMagic && OrderType()== cmd) odrctr++; } return(odrctr); } double checkSignal_s1(string x) {} double checkSignal_s2(string x) {}
Thank you very much for your help, Mr stywny
Sorry,
Orders Open () is user defined funct. Is there an error in coding? Please help. Thank you.
//------------------------OrderOpen() --------------------------------------
int OrderOpen(string symbol, int cmd, double vol, double Price, double SL, double TP, string comment, int magic, color Color ){
int li_ctr=0, myTicket=0;
color myColor=White;
double mPrice;
if(cmd==OP_BUY||cmd==OP_BUYSTOP||cmd==OP_BUYLIMIT)
{
myColor=Green;
if(cmd==OP_BUY)mPrice=Ask;
else
if(cmd==OP_BUYSTOP)mPrice=Ask+MP*mPoint;
else
if(cmd==OP_BUYLIMIT)mPrice=Ask-MP*mPoint;
while(li_ctr<maxTryOrder && myTicket==0 && IsTradeAllowed()==true){
myTicket=OrderSend(Symbol(),cmd,mPrice,2,Ask-SL*mPoint,Ask+TP*mPoint,"Nyoman",myMagic);
li_ctr++;
Sleep(1000);
}
}else
{
myColor=Red;Mr
if(cmd==OP_SELL)mPrice=Bid;
else
if (cmd==OP_SELLSTOP)mPrice=Bid-MP*mPoint;
else
if(cmd==OP_SELLLIMIT)mPrice=MP*mPoint-Bid;
while(li_ctr<maxTryOrder && myTicket==0 && IsTradeAllowed()==true){
myTicket=OrderSend(Symbol(),cmd,mPrice,2,Bid+SL*mPoint,Bid-TP*mPoint,"Nyoman",myMagic);
li_ctr++;
Sleep(1000);
}
}
}
This ?
myColor=Red;Mr
OrderSend(Symbol(),lots, Ask,SL*myPoint, TP*myPoint, myComment,Magic_s1,Green);
- Missing slippage argument
- Always test return codes
int ticket = OrderSend(...) if (ticket < 0) Alert("OrderSend failed: ", GetLastError());
- myPoint is never initialize - thus zero and so will your stops.
- EA's must adjust for 4/5 digit brokers, TP, SL, AND slippage. On ECN brokers you must open first and THEN set stops.
//++++ These are adjusted for 5 digit brokers. int pips2points; // slippage 3 pips 3=points 30=points double pips2dbl; // Stoploss 15 pips 0.015 0.0150 int Digits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips) int init(){ if (Digits % 2 == 1){ // DE30=1/JPY=3/EURUSD=5 forum.mql4.com/43064#515262 pips2dbl = Point*10; pips2points = 10; Digits.pips = 1; } else { pips2dbl = Point; pips2points = 1; Digits.pips = 0; } // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl //---- These are adjusted for 5 digit brokers. /* On ECN brokers you must open first and THEN set stops int ticket = OrderSend(...) if (ticket < 0) Alert("OrderSend failed: ", GetLastError()); else if (!OrderSelect(ticket, SELECT_BY_TICKET)) Alert("OrderSelect failed: ", GetLastError()); else if (!OrderModify(OrderTicket()...) Alert("OrderModify failed: ", GetLastError()); */

- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I need help. I've been trying to find errors in the coding attached, but I have not found such errors (always appears errors when compiled). Please help, I am a newbie. Thank you.