EUR/USD 1.070   |   USD/JPY 155.380   |   GBP/USD 1.246   |   AUD/USD 0.650   |   Gold 2,329.82/oz   |   Silver 27.43/oz   |   Wall Street 38,085.80   |   Nasdaq 15,611.76   |   IDX 7,100.13   |   Bitcoin 64,481.71   |   Ethereum 3,156.51   |   Litecoin 83.80   |   PT PLN (Persero) segera melantai ke Bursa Karbon Indonesia alias IDX Carbon, dengan membuka hampir 1 juta ton unit karbon, 1 jam lalu, #Saham Indonesia   |   PT Sinar Mas Agro Resources and Technology Tbk. (SMAR) meraih fasilitas pinjaman dari Bank BNI (BBNI) senilai $250 juta, 1 jam lalu, #Saham Indonesia   |   Induk perusahaan Google, Alphabet Inc (NASDAQ: GOOGL), menguat sekitar 12%, mencapai rekor tertinggi di sekitar $174.70, 1 jam lalu, #Saham AS   |   Nasdaq naik 1.2% menjadi 17,778, sementara S&P 500 naik 0.8% menjadi 5,123 pada pukul 18.49 ET (22.49 WIB). Dow Jones Futures naik 0.1% menjadi 38,323, 1 jam lalu, #Saham AS

Pertanyaan Seputar Script Robot EA

Expert Advisor

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

//+------------------------------------------------------------------+ 
//| DOPE.mq4 | 
//| [email protected] | //| [email protected]| 
//+------------------------------------------------------------------+#property copyright "[email protected]"#property link "[email protected]"#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 [email protected]");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()));}}}
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 [email protected] 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 20770 2015
Tanya Tentang EA net89? Jemmy 15 41400 2019
Apakah Robot EA akan sering loss? Ari Sucipto 12 620 2022
Filter open order? Ahmadfx 11 3096 2018
rekomendasi EA gratis? Cicilia 9 17289 2018
Apakah Foward Test Hasilnya Bisa Sama dengan Back Test? Edwin 9 4708 2018