Hello,
This is not really some fancy system. And I know its lame that I've used that website, but my coding skills are really not that good.
However, I want to have the EA being executed only at full closed bar and once per par (Daily bar if matters). In its current condition, it goes well when backtesting and then at some point starts blowing orders for like every tick which completely messes up with the results. So i would like to have it execute only once and at bar close.
I found some info here
http://forum.mql4.com/7851
http://forum.mql4.com/40334
but I really don't know how to implement it in my EA.
Please help!
Thanks a lot in advance!
This is not really some fancy system. And I know its lame that I've used that website, but my coding skills are really not that good.
However, I want to have the EA being executed only at full closed bar and once per par (Daily bar if matters). In its current condition, it goes well when backtesting and then at some point starts blowing orders for like every tick which completely messes up with the results. So i would like to have it execute only once and at bar close.
I found some info here
http://forum.mql4.com/7851
http://forum.mql4.com/40334
but I really don't know how to implement it in my EA.
Please help!
Thanks a lot in advance!
Inserted Code
//+------------------------------------------------------------------+ // DO NOT DELETE THIS HEADER // DELETING THIS HEADER IS COPYRIGHT INFRIGMENT // // Copyright ©2011, ForexEAdvisor.com // ForexEAdvisor Strategy Builder version 0.2 // http://www.ForexEAdvisor.com // // THIS EA CODE HAS BEEN GENERATED USING FOREXEADVISOR STRATEGY BUILDER 0.2 // on: 12/2/2014 4:49:53 PM // Disclaimer: This EA is provided to you "AS-IS", and ForexEAdvisor disclaims any warranty // or liability obligations to you of any kind. // UNDER NO CIRCUMSTANCES WILL FOREXEADVISOR BE LIABLE TO YOU, OR ANY OTHER PERSON OR ENTITY, // FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR // ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE, // EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR // FOREXEADVISOR STRATEGY BUILDER // Because software is inherently complex and may not be completely free of errors, you are // advised to verify this EA. Before using this EA, please read the ForexEAdvisor Strategy Builder // license for a complete understanding of ForexEAdvisor' disclaimers. // USE THIS EA AT YOUR OWN RISK. // // Before adding this expert advisor to a chart, make sure there are NO // open positions. // DO NOT DELETE THIS HEADER // DELETING THIS HEADER IS COPYRIGHT INFRIGMENT //+------------------------------------------------------------------+ extern int MagicNumber=10001; extern double Lots =0.1; extern double StopLoss=0; extern double TakeProfit=0; extern int TrailingStop=0; extern int Slippage=0; //+------------------------------------------------------------------+ // expert start function //+------------------------------------------------------------------+ int start() { double MyPoint=Point; if(Digits==3 || Digits==5) MyPoint=Point*10; double TheStopLoss=0; double TheTakeProfit=0; if( TotalOrdersCount()==0 ) { int result=0; if((iRSI(NULL,0,5,PRICE_CLOSE,1)<20)&&(iRSI(NULL,0,5,PRICE_CLOSE,0)>20)) // Here is your open buy rule { result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Blue); if(result>0) { TheStopLoss=0; TheTakeProfit=0; if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint; if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint; OrderSelect(result,SELECT_BY_TICKET); OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green); } return(0); } if((iRSI(NULL,0,5,PRICE_CLOSE,1)>80)&&(iRSI(NULL,0,5,PRICE_CLOSE,0)<80)) // Here is your open Sell rule { result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Red); if(result>0) { TheStopLoss=0; TheTakeProfit=0; if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint; if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint; OrderSelect(result,SELECT_BY_TICKET); OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green); } return(0); } } for(int cnt=0;cnt<OrdersTotal();cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber ) { if(OrderType()==OP_BUY) { if((iRSI(NULL,0,5,PRICE_CLOSE,0)>50)||(iRSI(NULL,0,5,PRICE_CLOSE,0)<20)) //here is your close buy rule { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red); } if(TrailingStop>0) { if(Bid-OrderOpenPrice()>MyPoint*TrailingStop) { if(OrderStopLoss()<Bid-MyPoint*TrailingStop) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green); return(0); } } } } else { if((iRSI(NULL,0,5,PRICE_CLOSE,0)<50)||(iRSI(NULL,0,5,PRICE_CLOSE,0)>80)) // here is your close sell rule { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red); } if(TrailingStop>0) { if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop)) { if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red); return(0); } } } } } } return(0); } int TotalOrdersCount() { int result=0; for(int i=0;i<OrdersTotal();i++) { OrderSelect(i,SELECT_BY_POS ,MODE_TRADES); if (OrderMagicNumber()==MagicNumber) result++; } return (result); }
Attached File(s)
RSI_Value_v2.mq4
5 KB
|
249 downloads
Twitter @raitchev