Forum on trading, automated trading systems and testing trading strategies
When you post code please use the CODE button (Alt-S)!
Thank you.
Sergey Golubev:
Sorry but Sorry but I didn't know about this button. Thanks for telling me. Here is the code//---- input parameters extern string time_trader_v2="Nirvish Time Trader"; extern double Lots=0.1; extern int TakeProfit=6; extern int StopLoss=100; extern int Slip=5; extern string TradeSettings="Mt4 time(min-max): hours 0-23, minutes 0-59, seconds 0-59"; extern bool AllowBuy=true; extern bool AllowSell=true; extern int TradeHour=0; extern int TradeMinutes=0; extern string MagicNumbers="To be changed in case of conflict with other EAs"; extern int BuyMagicNumber =10001; extern int SellMagicNumber =10002; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- Alert("Nirvish Time Trader"); //---- return(0); } //+------------------------------------------------------------------+ //| expert starts | //+------------------------------------------------------------------+ int start() { //---- int StopMultd,Sleeper=1; int digits=MarketInfo("EURUSD",MODE_DIGITS); StopMultd=10; double TP=NormalizeDouble(TakeProfit*StopMultd,Digits); double SL=NormalizeDouble(StopLoss*StopMultd,Digits); int Slippage=Slip*StopMultd; // Calculate stop loss double slb=NormalizeDouble(Ask-SL*Point,Digits); //(Ask-(95*Ask/(100*Lots)),Digits) double sls=NormalizeDouble(Bid+SL*Point,Digits); // // Calculate take profit double tpb=NormalizeDouble(Ask+TP*Point,Digits); double tps=NormalizeDouble(Bid-TP*Point,Digits); //-------------------------------------------------------------------+ //Check open orders //-------------------------------------------------------------------+ if(OrdersTotal()>0){ for(int i=1; i<=OrdersTotal(); i++) // Cycle searching in orders { if (OrderSelect(i-1,SELECT_BY_POS)==true) // If the next is available { if(OrderMagicNumber()==BuyMagicNumber) {int halt1=1;} if(OrderMagicNumber()==SellMagicNumber) {int halt2=1;} } } } //-------------------------------------------------------------------+ if((halt1!=1)&&(AllowBuy==true)){// halt1 // Buy criteria if ((TradeHour==Hour())&&(TradeMinutes==Minute())) //Signal Buy { int openbuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"time trader buy order ",BuyMagicNumber,0,Blue); if(openbuy<1){int buyfail=1;} } }// halt1 if((halt2!=1)&&(AllowSell==true)){// halt2 RefreshRates(); // Sell criteria if ((TradeHour==Hour())&&(TradeMinutes==Minute())) //Signal Sell { int opensell=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"time trader sell order ",SellMagicNumber,0,Green); if(opensell<1){int sellfail=1;} } }// halt2 //----------------------------------------------------------------------------------------------------- if(OrdersTotal()>0){ for(i=1; i<=OrdersTotal(); i++){ // Cycle searching in orders if (OrderSelect(i-1,SELECT_BY_POS)==true){ // If the next is available if((OrderMagicNumber()==BuyMagicNumber)&&(OrderTakeProfit()==0||OrderStopLoss()==0)) { OrderModify(OrderTicket(),0,slb,tpb,0,CLR_NONE); } if((OrderMagicNumber()==SellMagicNumber)&&(OrderTakeProfit()==0||OrderStopLoss()==0)) { OrderModify(OrderTicket(),0,sls,tps,0,CLR_NONE); } } } } //-------------------------------------------------------------------+ // Error processing //-------------------------------------------------------------------+ if(buyfail==1||sellfail==1){ int Error=GetLastError(); if(Error==130){Alert("Wrong stops. Retrying."); RefreshRates();} if(Error==133){Alert("Trading prohibited.");} if(Error==2){Alert("Common error.");} if(Error==146){Alert("Trading subsystem is busy. Retrying."); Sleep(500); RefreshRates();} } //------------------------------------------------------------------- return(0); } //+-----------------------------------
V... A...:
Here is some usefull stuff ;-)
Thank you, but how can I write it on my expert advisor?
Here is some usefull stuff ;-)

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
Good afternoon you all,
I have this Expert Advisor in which I can set take profit and stop loss in points. I want to change this parameter with the percentage of the investiment. For example, when the profit is at 25% of the amount invested or when the loss is at -70% of the amount invested the investiment will close. I hope someone will help me. Have a good day.