Conversione in PRT di indicatore MT4
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Conversione in PRT di indicatore MT4
- This topic has 5 replies, 2 voices, and was last updated 4 years ago by
Nicolas.
Viewing 6 posts - 1 through 6 (of 6 total)
-
-
03/24/2021 at 11:26 AM #165148
Salve, potreste tradurre questo indicatore di MT4 chiamato Elliot oscillator – waves 1.02 ?
Vi ringrazio anticipatamente.
Indicatore onde di Elliot123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288//+------------------------------------------------------------------+//| elliot oscillator - waves.mq4 |//+------------------------------------------------------------------+#property copyright "mladen"#property link "mladenfx@gmail.com"#property indicator_separate_window#property indicator_buffers 6#property indicator_color1 DeepSkyBlue#property indicator_color2 PaleVioletRed#property indicator_color3 Gold#property indicator_color4 Gold#property indicator_color5 DimGray#property indicator_color6 DimGray#property indicator_width1 2#property indicator_width2 2#property indicator_width3 2#property indicator_width4 2#property indicator_width5 2#property indicator_width6 2//////////extern int shortPeriod = 5;extern int longPeriod = 35;extern string linesIdentifier = "elliotWaveLines";extern color linesColor = Black;extern int linesStyle = STYLE_DOT;extern int levelsShiftRight = 10;extern int levelsLength = 20;extern color levelsColor = Silver;extern int levelsStyle = STYLE_SOLID;extern bool alertsOn = false;extern bool alertsOnCurrent = true;extern bool alertsMessage = true;extern bool alertsSound = false;extern bool alertsEmail = false;//////////double ellBuffer[];double ellUBuffer[];double ellDBuffer[];double mauBuffer[];double madBuffer[];double peakUp[];double peakDn[];double trend[];//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+//////////int init(){IndicatorBuffers(8);SetIndexBuffer(0,ellUBuffer); SetIndexStyle(0,DRAW_HISTOGRAM);SetIndexBuffer(1,ellDBuffer); SetIndexStyle(1,DRAW_HISTOGRAM);SetIndexBuffer(2,peakUp); SetIndexStyle(2,DRAW_HISTOGRAM);SetIndexBuffer(3,peakDn); SetIndexStyle(3,DRAW_HISTOGRAM);SetIndexBuffer(4,mauBuffer);SetIndexBuffer(5,madBuffer);SetIndexBuffer(6,trend);SetIndexBuffer(7,ellBuffer);IndicatorShortName("Elliot oscillator ( "+shortPeriod+","+longPeriod+")");return(0);}int deinit() { deleteLines(); return(0); }//////////int start(){double alpha = 2.0/(1.0+longPeriod+MathCeil(shortPeriod/2.0));int counted_bars = IndicatorCounted();int limit,i,k;if(counted_bars < 0) return(-1);if(counted_bars > 0) counted_bars--;limit = MathMin(Bars-counted_bars,Bars-longPeriod);//////////int count = 0;int direction = 0;int startFrom = 0;double lastPeakPrice = 0;datetime lastPeakTime = 0;for (;limit<(Bars-longPeriod); limit++){if (peakDn[limit]!=EMPTY_VALUE) { if (count==0) { count ++; continue; } direction=-1; startFrom = limit; break; }if (peakUp[limit]!=EMPTY_VALUE) { if (count==0) { count ++; continue; } direction= 1; startFrom = limit; break; }}//////////for(i = limit; i >= 0; i--){ellBuffer[i] = iMA(NULL,0,shortPeriod,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,longPeriod,0,MODE_SMA,PRICE_MEDIAN,i);ellUBuffer[i] = EMPTY_VALUE;ellDBuffer[i] = EMPTY_VALUE;if (mauBuffer[i+1]==EMPTY_VALUE) if (ellBuffer[i]>0) mauBuffer[i+1] = ellBuffer[i]; else mauBuffer[i+1] = 0;if (madBuffer[i+1]==EMPTY_VALUE) if (ellBuffer[i]<0) madBuffer[i+1] = ellBuffer[i]; else madBuffer[i+1] = 0;madBuffer[i] = madBuffer[i+1];mauBuffer[i] = mauBuffer[i+1];trend[i] = trend[i+1];peakUp[i] = EMPTY_VALUE;peakDn[i] = EMPTY_VALUE;//////////if (ellBuffer[i] < 0) { madBuffer[i] = madBuffer[i+1]+alpha*(ellBuffer[i]-madBuffer[i+1]); ellDBuffer[i] = ellBuffer[i]; }if (ellBuffer[i] > 0) { mauBuffer[i] = mauBuffer[i+1]+alpha*(ellBuffer[i]-mauBuffer[i+1]); ellUBuffer[i] = ellBuffer[i]; }deleteLine(i);//////////if (ellBuffer[i] > 0 && ellBuffer[i]>mauBuffer[i]){if (direction < 0) { markLow(i,startFrom,lastPeakPrice,lastPeakTime); startFrom = i; k++; }direction = 1; trend[i] = 1;}if (ellBuffer[i] < 0 && ellBuffer[i]<madBuffer[i]){if (direction > 0) { markHigh(i,startFrom,lastPeakPrice,lastPeakTime); startFrom = i; k++; }direction = -1; trend[i] = -1;}}if (direction > 0) markHigh(0,startFrom,lastPeakPrice,lastPeakTime);if (direction < 0) markLow (0,startFrom,lastPeakPrice,lastPeakTime);if (alertsOn){if (alertsOnCurrent)int whichBar = 0;else whichBar = 1;if (trend[whichBar] != trend[whichBar+1]){if (trend[whichBar] == 1) doAlert(whichBar,DoubleToStr(mauBuffer[whichBar],5)+" crossed up");if (trend[whichBar] ==-1) doAlert(whichBar,DoubleToStr(madBuffer[whichBar],5)+" crossed down");}}//////////return(0);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+//////////void markLow(int start, int end, double& lastPeakPrice, datetime& lastPeakTime){while (ellBuffer[start+1]>0 && start<Bars) start++;while (ellBuffer[end+1] <0 && end <Bars) end++;int peakAt = ArrayMinimum(Low,end-start+1,start); peakDn[peakAt] = ellBuffer[peakAt];//////////if (lastPeakPrice!=0) drawLine(lastPeakPrice,lastPeakTime,Low[peakAt],Time[peakAt]);lastPeakPrice = Low[peakAt];lastPeakTime = Time[peakAt];}void markHigh(int start, int end, double& lastPeakPrice, datetime& lastPeakTime){while (ellBuffer[start+1]<0 && start<Bars) start++;while (ellBuffer[end+1] >0 && end <Bars) end++;int peakAt = ArrayMaximum(High,end-start+1,start); peakUp[peakAt] = ellBuffer[peakAt];//////////if (lastPeakPrice!=0) drawLine(lastPeakPrice,lastPeakTime,High[peakAt],Time[peakAt]);lastPeakPrice = High[peakAt];lastPeakTime = Time[peakAt];}//////////void drawLine(double startPrice, datetime startTime, double endPrice, datetime endTime){string name = linesIdentifier+":"+startTime;ObjectCreate(name,OBJ_TREND,0,startTime,startPrice,endTime,endPrice);ObjectSet(name,OBJPROP_STYLE,linesStyle);ObjectSet(name,OBJPROP_COLOR,linesColor);ObjectSet(name,OBJPROP_RAY,false);}void deleteLine(int i){ObjectDelete(linesIdentifier+":"+Time[i]);}void deleteLines(){string lookFor = linesIdentifier+":";for (int i=ObjectsTotal(); i>=0; i--){string name = ObjectName(i);if (StringFind(name,lookFor)==0) ObjectDelete(name);}}//+-------------------------------------------------------------------//|//+-------------------------------------------------------------------//////////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)," Elliot oscillator level ",doWhat);if (alertsMessage) Alert(message);if (alertsEmail) SendMail(StringConcatenate(Symbol(),"Elliot oscillator "),message);if (alertsSound) PlaySound("alert2.wav");}}03/24/2021 at 11:40 AM #165150Allego una foto dell’indicatore,
03/24/2021 at 1:18 PM #165164Salve, vorrei sapere se potete convertire questo indicatore di MT4 in linguaggio Pro Real Time.
03/24/2021 at 1:30 PM #165167Allego una foto dell’indicatore.
03/29/2021 at 11:50 AM #165618Come non detto, meno male che ci sono riuscito da solo.
03/29/2021 at 12:01 PM #165624 -
AuthorPosts
Viewing 6 posts - 1 through 6 (of 6 total)
Find exclusive trading pro-tools on
Similar topics: