작업 종료됨
실행 시간 6 일
명시
I need to convert mt4 indicator into pinescript , version should be exactly as mt4 and not repainting and without any error.
//+----------------------------------------------------------------------+ //| tradelikemarketmaker.mq4 | //| Copyright 2020, tradelikemarketmaker.com | //| http://tradelikemarketmaker.com/ | //+----------------------------------------------------------------------+ #property copyright "Copyright © 2020 tradelikemarketmaker.com" #property link "http://tradelikemarketmaker.com/" #property indicator_chart_window #property indicator_buffers 6 #property indicator_color1 Blue // up[] #property indicator_width1 2 #property indicator_color2 Red // down[] #property indicator_width2 2 #property indicator_color3 DodgerBlue // atrlo[] #property indicator_width3 1 #property indicator_color4 Red // atrhi[] #property indicator_width4 1 #property indicator_color5 Gold // arrup[] #property indicator_width5 3 #property indicator_color6 Gold // arrdwn[] #property indicator_width6 3 extern string SSI = "Broker Order Book Readings"; extern int Oanda = 1; extern int IGGroup = 1; extern int Dukas = 1; extern int Saxo = 1; extern int Alpari = 1; extern int Myfxbook = 1; extern int FiboGroup = 1; extern int Gravitational = 2; extern int Amplitude = 2; extern bool ShowBars = false; extern bool ShowArrows = true; extern int FiboSignalRange = 45; extern int StoppClusterSet = 77; extern int CurrentRatioSet = 33000; extern int ProfitRatioSet = 94000; extern int ScalpRatioSet = 45; extern bool ScalpModel = false; extern bool NeuralBuffer = false; extern int NeuralBufferSizeMB = 10; extern bool MarketMakerMode = false; extern bool alertsOn = true; extern bool alertsOnCurrent = false; extern bool alertsMessage = true; extern bool alertsSound = true; extern bool alertsEmail = true; bool nexttrend; double minhighprice,maxlowprice; double up[],down[],atrlo[],atrhi[],trend[]; double arrup[],arrdwn[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() {if (AccountNumber()!=170145) return(INIT_PARAMETERS_INCORRECT); //codes} Comment(" Copyright © 2020 | Tradelikemarketmaker.com"); IndicatorBuffers(7); // +1 buffer - trend[] SetIndexBuffer(0,up); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(1,down); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(2,atrlo); SetIndexBuffer(3,atrhi); SetIndexBuffer(6,trend); SetIndexBuffer(4,arrup); SetIndexBuffer(5,arrdwn); SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0); SetIndexEmptyValue(6,0.0); if(ShowBars) { SetIndexStyle(2,DRAW_HISTOGRAM, STYLE_SOLID); SetIndexStyle(3,DRAW_HISTOGRAM, STYLE_SOLID); } else { SetIndexStyle(2,DRAW_NONE); SetIndexStyle(3,DRAW_NONE); } if(ShowArrows) { SetIndexStyle(4,DRAW_ARROW,STYLE_SOLID); SetIndexArrow(4,110); SetIndexStyle(5,DRAW_ARROW,STYLE_SOLID); SetIndexArrow(5,110); } else { SetIndexStyle(4,DRAW_NONE); SetIndexStyle(5,DRAW_NONE); } nexttrend=0; minhighprice= High[Bars-1]; maxlowprice = Low[Bars-1]; return (0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class CFix { } ExtFix; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double atr,lowprice_i,highprice_i,lowma,highma; int workbar=0; int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; int limit = MathMin(Bars-counted_bars,Bars-1); for(int i=Bars-1; i>=0; i--) { lowprice_i=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,Amplitude,i)); highprice_i=iHigh(Symbol(),Period(),iHighest(Symbol(),Period(),MODE_HIGH,Amplitude,i)); lowma=NormalizeDouble(iMA(NULL,0,Amplitude,0,MODE_SMA,PRICE_LOW,i),Digits()); highma=NormalizeDouble(iMA(NULL,0,Amplitude,0,MODE_SMA,PRICE_HIGH,i),Digits()); trend[i]=trend[i+1]; atr=iATR(Symbol(),0,100,i)/2; arrup[i] = EMPTY_VALUE; arrdwn[i] = EMPTY_VALUE; if(nexttrend==1) { maxlowprice=MathMax(lowprice_i,maxlowprice); if(highma<maxlowprice && Close[i]<Low[i+1]) { trend[i]=1.0; nexttrend=0; minhighprice=highprice_i; } } if(nexttrend==0) { minhighprice=MathMin(highprice_i,minhighprice); if(lowma>minhighprice && Close[i]>High[i+1]) { trend[i]=0.0; nexttrend=1; maxlowprice=lowprice_i; } } if(trend[i]==0.0) { if(trend[i+1]!=0.0) { up[i]=down[i+1]; up[i+1]=up[i]; arrup[i] = up[i] - 2*atr; } else { up[i]=MathMax(maxlowprice,up[i+1]); } atrhi[i] = up[i] - atr; atrlo[i] = up[i]; down[i]=0.0; } else { if(trend[i+1]!=1.0) { down[i]=up[i+1]; down[i+1]=down[i]; arrdwn[i] = down[i] + 2*atr; } else { down[i]=MathMin(minhighprice,down[i+1]); } atrhi[i] = down[i] + atr; atrlo[i] = down[i]; up[i]=0.0; } } manageAlerts(); return (0); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------- //| //+------------------------------------------------------------------- // // // // // void manageAlerts() { if (alertsOn) { if (alertsOnCurrent) int whichBar = 0; else whichBar = 1; if (arrup[whichBar] != EMPTY_VALUE) doAlert(whichBar,"LONG"); if (arrdwn[whichBar] != EMPTY_VALUE) doAlert(whichBar,"SHORT"); } } // // // // // void doAlert(int forBar, string doWhat) { static string previousAlert="nothing"; static datetime previousTime; string message; if (previousAlert != doWhat || previousTime != Time[forBar]) { previousAlert = doWhat; previousTime = Time[forBar]; // // // // // message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," Possible Trend ",doWhat); if (alertsMessage) Alert(message); if (alertsEmail) SendMail(StringConcatenate(Symbol(),"HalfTrend "),message); if (alertsSound) PlaySound("alert2.wav"); } }
응답함
1
등급
프로젝트
1459
72%
중재
122
29%
/
48%
기한 초과
356
24%
작업중
게재됨: 3 기고글
2
등급
프로젝트
1
0%
중재
0
기한 초과
1
100%
무료
프로젝트 정보
예산
40+ USD