Advertisement

iklan

Pertanyaan Seputar Script Robot EA

iklan

iklan

Expert Advisor

10 Des 2021

Saya punya jenis EA dengan dengan garis level target, ketika dibacktes sangat bagus, garis levelnya selalu bepindah, tapi ketika diForwadTest kenapa garis level targetnya diam di tempat, apakah ada solusinya Gan.. berikut adalah scriptnya... silakan dipelajari, dan dibantu saran perbaikan pak.. makasih

//+------------------------------------------------------------------+ 
 //| xiaofeeiyucc@126.com | //| xiaofeeiyucc@126.com| 
//+------------------------------------------------------------------+#property copyright "xiaofeeiyucc@126.com"#property link "xiaofeeiyucc@126.com"#property version "8.00"#property strict#include #include #import "kernel32.dll"int CreateFileW(string Filename,int AccessMode,int ShareMode,int PassAsZero,int CreationMode,int FlagsAndAttributes,int AlsoPassAsZero);int GetFileSize(int FileHandle,int PassAsZero);int SetFilePointer(int FileHandle,int Distance,int &PassAsZero[],int FromPosition);int ReadFile(int FileHandle,uchar &BufferPtr[],int BufferLength,int &BytesRead[],int PassAsZero);int CloseHandle(int FileHandle);#importstring Ordercomment="";int Slippage=3;int Retries=10;bool AutoTrade=true;bool ecnBroker=false;input int MagicID = 12345678;input double LOTS = 0.01;input int risk = 40; //risk: 0-->fixed lotsinput double SL = 50;input double TP = 100;input int MaxOrder = 10; // Max Orderinput int TrailingStart = 0; // Trailing Startinput int TrailingStop = 0; // Trailing Stopinput int TrailingStep = 0; // Trailing Step//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+union Price{uchar buffer[8];double close;};double data[][2];int BytesToRead;string datapath;string result;Price m_price;double g_Point;int ticket=0;//datetime expDate = D2021.11.09 02:00;//yyyy.mm.dd//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit(){if(!IsDllsAllowed()){Alert("Make Sure DLL Import is Allowed");ExpertRemove();return(INIT_FAILED);}/*if(TimeCurrent()>expDate){MessageBox("The version has expired, contact forexea333@gmail.com");ExpertRemove();return(INIT_FAILED);}*///------------------------------------------------------{//---g_Point=Point;if(Digits==5 || Digits==3){g_Point *= 10;Slippage*=10;}ChartSetInteger(0,17,0,0);ChartSetInteger(0,0,1);string account_server=AccountInfoString(3);if(account_server==""){account_server="default";}datapath=TerminalInfoString(3)+"history"+account_server+""+Symbol()+"240"+".hst";ReadFileHst(datapath);//---return(INIT_SUCCEEDED);}}//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason){ObjectsDeleteAll();ChartRedraw();}//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick(){/*if(TimeCurrent() > expDate) {Alert("Trial Expired");ExpertRemove();}*/if(TrailingStart > 0 && TrailingStop > 0 && TrailingStep > 0) TrailingProfit();static datetime previousBar;if(previousBar!=Time[0]){previousBar=Time[0];ChartRedraw();}else{return;}if(iVolume(Symbol(),PERIOD_H4,0)>iVolume(Symbol(),PERIOD_H4,1))return;//**********************************if(!BytesToRead>0)return;int pos = -1 ;for(int i = 0 ; i < BytesToRead - 1 ; i++){if(!(data[i][0]<Time[0]))break;pos = i + 1;}//********************************HideTestIndicators(true);double wpr= iWPR(Symbol(),0,4,0);double ao = iAO(Symbol(),0,0);HideTestIndicators(false);double level=NormalizeDouble(data[pos][1],Digits);ObjectDelete("level");MakeLine(level);if(data[pos][1]>Open[0])Comment("BUY - ", data[pos][1]);if(data[pos][1]<Open[0])Comment("SELL - ", data[pos][1]);if(MarketInfo(Symbol(),MODE_SPREAD)>30)return;int order = CheckMarketBuyOrders() + CheckMarketSellOrders();if(pos>0){if(order < MaxOrder){if(data[pos][1]>Open[0])if(IsBuyPinbar())//if(ao<0){double BuySL=NormalizeDouble(Ask - SL*g_Point,Digits);double BuyTP=NormalizeDouble(Ask + TP*g_Point,Digits);if(AccountFreeMarginCheck(Symbol(),OP_BUY,GetLots())>0){ticket=OrderSend(Symbol(),OP_BUY,GetLots(),Ask,Slippage,BuySL,BuyTP,"",MagicID,0,clrGreen);//MainOrders(0,Ask,BuyTP,BuySL);CloseSell();}}if(data[pos][1]<Open[0])if(IsSellPinbar())//if(ao>0){double SellSL=NormalizeDouble(Bid + SL*g_Point,Digits);double SellTP=NormalizeDouble(Bid - TP*g_Point,Digits);if(AccountFreeMarginCheck(Symbol(),OP_SELL,GetLots())>0){ticket=OrderSend(Symbol(),OP_SELL,GetLots(),Bid,Slippage,SellSL,SellTP,"",MagicID,0,clrGreen);//MainOrders(1,Bid,SellTP,SellSL);CloseBuy();}}}}return;}//+------------------------------------------------------------------+void ReadFileHst(string FileName){int j=0;;string strFileContents;int Handle;int LogFileSize;int movehigh[1]= {0};uchar buffer[];int nNumberOfBytesToRead;int read[1]= {0};int i;double mm;//----- -----strFileContents="";Handle=CreateFileW(FileName,(int)0x80000000,3,0,3,0,0);//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+if(Handle==-1){Comment("");return;}LogFileSize=GetFileSize(Handle,0);//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+if(LogFileSize<=0){return;}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+if((LogFileSize-148)/60==BytesToRead){return;}SetFilePointer(Handle,148,movehigh,0);BytesToRead=(LogFileSize-148)/60;ArrayResize(data,BytesToRead,0);nNumberOfBytesToRead=60;ArrayResize(buffer,60,0);for(i=0; i<BytesToRead; i=i+1)//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+{ReadFile(Handle,buffer,nNumberOfBytesToRead,read,NULL);if(read[0]==nNumberOfBytesToRead){result=StringFormat("0x%02x%02x%02x%02x%02x%02x%02x%02x",buffer[7],buffer[6],buffer[5],buffer[4],buffer[3],buffer[2],buffer[1],buffer[0]);m_price.buffer[0] = buffer[32];m_price.buffer[1] = buffer[33];m_price.buffer[2] = buffer[34];m_price.buffer[3] = buffer[35];m_price.buffer[4] = buffer[36];m_price.buffer[5] = buffer[37];m_price.buffer[6] = buffer[38];m_price.buffer[7] = buffer[39];mm=m_price.close;data[j][0] = StringToDouble(result);data[j][1] = mm;j=j+1;strFileContents=TimeToString(StringToTime(result),3)+" "+DoubleToString(mm,8);}else{CloseHandle(Handle);return;}}CloseHandle(Handle);strFileContents=DoubleToString(data[j-1][0],3)+" "+DoubleToString(data[j-1][1],8)+" "+DoubleToString(data[j-2][1],3)+" "+DoubleToString(data[j-2][1],8);result=strFileContents;}//ReadFileHst <<==-------- --------int fnGetLotDigit(){double l_LotStep=MarketInfo(Symbol(),MODE_LOTSTEP);if(l_LotStep == 1)return(0);if(l_LotStep == 0.1)return(1);if(l_LotStep == 0.01)return(2);if(l_LotStep == 0.001)return(3);if(l_LotStep == 0.0001)return(4);return(1);}//+------------------------------------------------------------------+int CheckBuyOrders(int magic){int op=0;for(int i=OrdersTotal()-1; i>=0; i--)//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+{int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);if(OrderMagicNumber()!=magic)continue;if(OrderSymbol()==Symbol()){if(OrderType()==OP_BUY){op++;break;}}}return(op);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int CheckSellOrders(int magic){int op=0;for(int i=OrdersTotal()-1; i>=0; i--)//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+{int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);if(OrderMagicNumber()!=magic)continue;if(OrderSymbol()==Symbol()){if(OrderType()==OP_SELL){op++;break;}}}return(op);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int CheckTotalBuyOrders(int magic){int op=0;for(int i=OrdersTotal()-1; i>=0; i--)//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+{int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);if(OrderMagicNumber()!=magic)continue;if(OrderSymbol()==Symbol()){if(OrderType()==OP_BUY){op++;}}}return(op);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int CheckTotalSellOrders(int magic){int op=0;for(int i=OrdersTotal()-1; i>=0; i--)//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+{int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);if(OrderMagicNumber()!=magic)continue;if(OrderSymbol()==Symbol()){if(OrderType()==OP_SELL){op++;}}}return(op);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int CheckMarketSellOrders(){int op=0;for(int i=OrdersTotal()-1; i>=0; i--)//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+{int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);if(OrderMagicNumber()!=MagicID)continue;if(OrderSymbol()==Symbol()){if(OrderType()==OP_SELL){op++;}}}return(op);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int CheckMarketBuyOrders(){int op=0;for(int i=OrdersTotal()-1; i>=0; i--)//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+{int status=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);if(OrderMagicNumber()!=MagicID)continue;if(OrderSymbol()==Symbol()){if(OrderType()==OP_BUY){op++;}}}return(op);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool MainOrders(int a_cmd_0,double price_24,double price_TP,double price_SL){color color_8=Black;int bClosed;int nAttemptsLeft=Retries;int cmd=0;if(a_cmd_0 ==OP_BUY||a_cmd_0 ==OP_BUYSTOP)cmd=0;if(a_cmd_0 ==OP_SELL||a_cmd_0 ==OP_SELLSTOP)cmd=1;//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+if(a_cmd_0==OP_BUYLIMIT || a_cmd_0==OP_BUY){color_8=Blue;}else{//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+if(a_cmd_0==OP_SELLLIMIT || a_cmd_0==OP_SELL){color_8=Red;}}double lots_32=NormalizeDouble(LOTS,fnGetLotDigit());if(lots_32==0.0)return(false);double gd_532 = MarketInfo(Symbol(), MODE_MAXLOT);double gd_540 = MarketInfo(Symbol(), MODE_MINLOT);if(lots_32 > gd_532)lots_32 = gd_532;if(lots_32 < gd_540)lots_32 = gd_540;bClosed=false;//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+while((bClosed==false) && (nAttemptsLeft>=0)){nAttemptsLeft--;RefreshRates();if(!ecnBroker)bClosed=OrderSend(Symbol(),a_cmd_0,lots_32,price_24,Slippage,price_SL,price_TP,Ordercomment,MagicID,0,color_8);elsebClosed=OrderSend(Symbol(),a_cmd_0,lots_32,price_24,Slippage,0,0,Ordercomment,MagicID,0,color_8);if(bClosed<=0){int nErrResult=GetLastError();if(a_cmd_0==0){Print("FX EA Open New Buy FAILED : Error "+IntegerToString(nErrResult)+" ["+ErrorDescription(nErrResult)+".]");Print(IntegerToString(a_cmd_0)+" "+DoubleToString(lots_32,2)+" "+DoubleToString(price_24,Digits));}else{if(a_cmd_0==1){Print("FX EA Open New Sell FAILED : Error "+IntegerToString(nErrResult)+" ["+ErrorDescription(nErrResult)+".]");Print(IntegerToString(a_cmd_0)+" "+DoubleToString(lots_32,2)+" "+DoubleToString(price_24,Digits));}}if(nErrResult == ERR_TRADE_CONTEXT_BUSY ||nErrResult == ERR_NO_CONNECTION){Sleep(50);continue;}}ticket=bClosed;bClosed=true;}return(true);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void CloseBuy(){bool clo;while(CheckMarketBuyOrders()>0){for(int i=OrdersTotal()-1; i>=0; i--){if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicID)if(OrderType()==OP_BUY)clo=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrAqua);}}}//+------------------------------------------------------------------+void CloseSell(){bool clo;while(CheckMarketSellOrders()>0){for(int i=OrdersTotal()-1; i>=0; i--){if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicID)if(OrderType()==OP_SELL)clo=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrAqua);}}}//+------------------------------------------------------------------+double GetLots(){double lot;double minlot=MarketInfo(Symbol(),MODE_MINLOT);double maxlot=MarketInfo(Symbol(),MODE_MAXLOT);if(risk!=0){lot=NormalizeDouble(AccountBalance()*risk/100/10000,2);if(lot<minlot)lot=minlot;if(lot>maxlot)lot=maxlot;}elselot=LOTS;return(lot);}//+------------------------------------------------------------------+int signal(int mode){int res=0;double var1 = 0;double var2 = 0;double var3 = 0;double var4 = 0;double var5 = 0;double var6 = 0;if(Close[2]>Open[2] && Close[1]>Open[1] && Low[2]<Low[1]){if(mode==2){var5 = Low[2];var6 = Low[1];if(Open[0]Close[2] && Open[1]>Close[1] && High[2]>High[1]){if(mode==2){var5 = High[2];var6 = High[1];if(Open[0]>var6 -(var5-var6)){var2=Low[0];}if(Open[2]>Open[1]){var5 = Open[2];var6 = Open[1];}else{var5 = 0.0;var6 = 0.0;}if(Open[0]>var6 -(var5-var6)){var4=Low[0];}}else{if(mode==0){if(Open[2]>Open[1]){var5 = Open[2];var6 = Open[1];}else{var5 = 0.0;var6 = 0.0;}}else{var5 = High[2];var6 = High[1];}if(Open[0]>var6 -(var5-var6)){var4=Low[0];}}}if((var1>0.0 || var3>0.0)){res=+1;}else{if((var2>0.0 || var4>0.0)){res=-1;}}return res;}//+------------------------------------------------------------------+string CandleStick_Analyzer(){RefreshRates();string CandleStick, Comment1="",Comment2="",Comment3="",Comment4="",Comment5="",Comment6="",Comment7="",Comment8="",Comment9="";if(BullishEngulfingExists())Comment1 =" Bullish Engulfing ";if(BullishHaramiExists())Comment2 =" Bullish Harami ";if(LongUpCandleExists())Comment3 =" Bullish LongUp ";if(DojiAtBottomExists())Comment4 =" MorningStar Doji ";if(DojiAtTopExists())Comment5 =" EveningStar Doji ";if(BearishHaramiExists())Comment6 =" Bearish Harami ";if(BearishEngulfingExists())Comment7 =" Bearish Engulfing ";if(LongDownCandleExists())Comment8 =" Bearish LongDown ";/*if(SpinningTopExists())Comment9 =" Spinning Top ";*/CandleStick =Comment1+Comment2+Comment3+Comment4+Comment5+Comment6+Comment7+Comment8+Comment9;return (CandleStick);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool BullishEngulfingExists(){if(Open[1] <= Close[2] && Close[1] >= Open[2] && Open[2] - Close[2] >= 10*Point && Close[1] - Open[1] >= 10*Point)return (true);return (false);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool BullishHaramiExists(){if(Close[2] < Open[2] && Open[1] < Close[1] && Open[2] - Close[2] > iATR(NULL, 0, 14, 2) && Open[2] - Close[2] > 4*(Close[1] - Open[1]))return (true);return (false);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool DojiAtBottomExists(){if(Open[3] - Close[3] >= 8*Point && MathAbs(Close[2] - Open[2]) <= 1*Point && Close[1] - Open[1] >= 8*Point)return (true);return (false);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool DojiAtTopExists(){if(Close[3] - Open[3] >= 8*Point && MathAbs(Close[2] - Open[2]) <= 1*Point && Open[1] - Close[1] >= 8*Point)return (true);return (false);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool BearishHaramiExists(){if(Close[2] > Close[1] && Open[2] < Open[1] && Close[2] > Open[2] && Open[1] > Close[1] && Close[2] - Open[2] > iATR(NULL, 0, 14, 2) && Close[2] - Open[2] > 4*(Open[1] - Close[1]))return (true);return (false);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool LongUpCandleExists(){if(Open[2] < Close[2] && High[2] - Low[2] >= 40*Point && High[2] - Low[2] > 2.5*iATR(NULL, 0, 14, 2) && Close[1] < Open[1] && Open[1] - Close[1] > 10*Point)return (true);return (false);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool LongDownCandleExists(){if(Open[1] > Close[1] && High[1] -Low[1] >= 40*Point && High[1] - Low[1] > 2.5*iATR(NULL, 0, 14, 1))return (true);return (false);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool BearishEngulfingExists(){if(Open[1] >= Close[2] && Close[1] <= Open[2] && Open[2] -Close[2] >= 10*Point && Close[1]- Open[1] >= 10*Point)return (true);return (false);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+/*bool SpinningTopExists(){HideTestIndicators(true);if(High[1] - Low[1] > 1.5*iATR(NULL, 0, 14, 1))Print("ST Condition 1 Met");if(MathAbs(Open[1] - Close[1])*5 < High[1] - Low[1])Print("ST Condition 2 Met");if(High[1] - Low[1] > 1.5*iATR(NULL, 0, 14, 1) && (High[1] - Low[1] > 30*Point) && MathAbs(Open[1] - Close[1])*5 < High[1]- Low[1])return (true);HideTestIndicators(false);return (false);}*///+------------------------------------------------------------------+void MakeLine(double price){string name="level";if(price>iOpen(Symbol(),PERIOD_M1,0))Comment("BUY ="+DoubleToStr(price,Digits));if(price<iOpen(Symbol(),PERIOD_M1,0))Comment("SELL="+DoubleToStr(price,Digits));if(ObjectFind(name)!=-1){ObjectMove(name,0,iTime(Symbol(),PERIOD_M1,0),price);return;}ObjectCreate(name,OBJ_HLINE,0,0,price);ObjectSet(name,OBJPROP_COLOR,clrAqua);ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);ObjectSet(name,OBJPROP_WIDTH,2);ObjectSet(name,OBJPROP_BACK,TRUE);}//+------------------------------------------------------------------+//+------------------------------------------------------------------+//| User function IsPinbar |//+------------------------------------------------------------------+bool IsBuyPinbar(){//start of declarationsdouble actOp,actCl,actHi,actLo,preHi,preLo,preCl,preOp,actRange,preRange,actHigherPart,actHigherPart1;actOp=Open[1];actCl=Close[1];actHi=High[0];actLo=Low[1];preOp=Open[2];preCl=Close[2];preHi=High[2];preLo=Low[2];//SetProxy(preHi,preLo,preOp,preCl);//Check proxyactRange=actHi-actLo;preRange=preHi-preLo;actHigherPart=actHi-actRange*0.4;//helping variable to not have too much counting in IF partactHigherPart1=actHi-actRange*0.4;//helping variable to not have too much counting in IF part//end of declaratins//start function bodydouble dayRange=AveRange4();if((actCl>actHigherPart1&&actOp>actHigherPart)&& //Close&Open of PB is in higher 1/3 of PB(actRange>dayRange*0.5)&& //PB is not too small//(actHi<(preHi-preRange*0.3))&& //High of PB is NOT higher than 1/2 of previous Bar(actLo+actRange*0.25<preLo)) //Nose of the PB is at least 1/3 lower than previous bar{if(Low[ArrayMinimum(Low,3,3)]>Low[1])return (true);}return(false);}//------------END FUNCTION-------------//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool IsSellPinbar(){//start of declarationsdouble actOp,actCl,actHi,actLo,preHi,preLo,preCl,preOp,actRange,preRange,actLowerPart, actLowerPart1;actOp=Open[1];actCl=Close[1];actHi=High[1];actLo=Low[1];preOp=Open[2];preCl=Close[2];preHi=High[2];preLo=Low[2];//SetProxy(preHi,preLo,preOp,preCl);//Check proxyactRange=actHi-actLo;preRange=preHi-preLo;actLowerPart=actLo+actRange*0.4;//helping variable to not have too much counting in IF partactLowerPart1=actLo+actRange*0.4;//helping variable to not have too much counting in IF part//end of declaratins//start function bodydouble dayRange=AveRange4();if((actCl<actLowerPart1&&actOp<actLowerPart)&& //Close&Open of PB is in higher 1/3 of PB(actRange>dayRange*0.5)&& //PB is not too small//(actLo>(preLo+preRange/3.0))&& //Low of PB is NOT lower than 1/2 of previous Bar(actHi-actRange*0.25>preHi)) //Nose of the PB is at least 1/3 lower than previous bar{if(High[ArrayMaximum(High,3,3)]<High[1])return (true);}return false;}//------------END FUNCTION-------------//+------------------------------------------------------------------+//| User function AveRange4 |//+------------------------------------------------------------------+double AveRange4(){double sum=0;double rangeSerie[4];int i=0;int ind=1;int startYear=1995;while(i<4){//datetime pok=Time[pos+ind];if(TimeDayOfWeek(Time[ind])!=0){sum+=High[ind]-Low[ind];//make summationi++;}ind++;//i++;} //Comment(sum/4.0);return (sum/4.0);//make average, dont count min and max, this is why I divide by 4 and not by 6}//------------END FUNCTION------------- //+------------------------------------------------------------------+void TrailingProfit() {double ta = TrailingStart;double to = TrailingStop;double ts = TrailingStep;for (int i = OrdersTotal() - 1; i >= 0; i--) {if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue;if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicID) continue;if (OrderType() == OP_BUY) {if((Bid - OrderOpenPrice()) / Point < TrailingStart) continue;if(((Bid - OrderStopLoss()) / Point >= (TrailingStep + TrailingStop)) || OrderStopLoss() == 0)if(!OrderModify(OrderTicket(), OrderOpenPrice(), Bid - (TrailingStop * Point), OrderTakeProfit(),0))Print(ErrorDescription(GetLastError()));}if (OrderType() == OP_SELL) {if((OrderOpenPrice() - Ask) / Point < TrailingStart) continue;if(((OrderStopLoss() - Ask) / Point >= (TrailingStop + TrailingStep)) || OrderStopLoss() == 0) if(!OrderModify(OrderTicket(), OrderOpenPrice(), Ask + (TrailingStop * Point), OrderTakeProfit(),0))Print(ErrorDescription(GetLastError()));}}}
11 Des 2021
@BaronKwok:
Mohon maaf pak, karena format editornya berbeda jadi code menjadi tidak beraturan ketika di jalankan di mt4. Bisa minta tolong kirimkan file mql4-nya ke email saya? nanti saya coba bantu lihat penyebabnya. Email saya di muh.nuzul@outlook.com atau bisa ke Telegram saya dengan username @massinar

Kategori Expert Advisor

Pertanyaan Penanya Balasan Dilihat Aktivitas
Cara membuat kunci password pada indicator/EA? Flo 17 19659 2015
Tanya Tentang EA net89? Jemmy 15 40458 2019
Filter open order? Ahmadfx 11 2387 2018
rekomendasi EA gratis? Cicilia 9 16432 2018
Apakah Foward Test Hasilnya Bisa Sama dengan Back Test? Edwin 8 3676 2018
Bagaimana Menghindari Robot EA Abal-Abal? Arif Santoso 8 251 02 Apr 2022