MUV indicator
Forums › ProRealTime English forum › ProBuilder support › MUV indicator
- This topic has 2 replies, 2 voices, and was last updated 4 years ago by Loop.
Viewing 3 posts - 1 through 3 (of 3 total)
-
-
05/18/2020 at 9:15 AM #132089
Hi everybody,
I found these “MUV” indicators for Metatrader interesting:
https://www.mql5.com/en/code/8549
Would it be possible to obtain the corresponding version in Prorealtime code (if not exsisting already).
Thanks a lot in advance
Loop
MT5 MUV123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109+------------------------------------------------------------------+//| 111.mq4 |//| Copyright © 2008, MetaQuotes Software Corp. |//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright "Copyright © 2008, MetaQuotes Software Corp."#property link "http://www.metaquotes.net"#property indicator_separate_window#property indicator_buffers 4#property indicator_color1 Green#property indicator_color2 Yellow#property indicator_color3 Red#property indicator_color4 Blue//extern int MAMetod = 0;extern int MAPeriod = 14;extern int KPeriod = 14;extern bool ShowDif = true;extern bool ShowMUV = true;//---- buffersdouble ExtMapBuffer1[];double ExtMapBuffer2[];double ExtMapBuffer3[];double ExtMapBuffer4[];//double ExtMapBuffer1[];//double ExtMapBuffer2[];//double K[];double K0[];double K1[];double K2[];double K3[];//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init(){//---- indicatorsIndicatorBuffers(8);if (ShowDif) {SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE);}else {SetIndexStyle(0,DRAW_NONE); SetIndexStyle(1,DRAW_NONE);}if (ShowMUV) {SetIndexStyle(2,DRAW_LINE); SetIndexStyle(3,DRAW_LINE);}else {SetIndexStyle(2,DRAW_NONE); SetIndexStyle(3,DRAW_NONE);}SetIndexBuffer(0,ExtMapBuffer1);SetIndexBuffer(1,ExtMapBuffer2);SetIndexBuffer(2,ExtMapBuffer3);SetIndexBuffer(3,ExtMapBuffer4);SetIndexBuffer(4,K0);SetIndexBuffer(5,K1);SetIndexBuffer(6,K2);SetIndexBuffer(7,K3);//----return(0);}//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit(){//----//----return(0);}//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int start(){int counted_bars = IndicatorCounted();if(counted_bars < 0) return(-1);if(counted_bars > 0) counted_bars--;int limit = Bars - counted_bars;if(counted_bars==0) limit-=1+1;//----for (int i = limit;i >=0; i--){K0[i] = iCustom(NULL,0,"MUV",MAPeriod,0,1,i)-iCustom(NULL,0,"MUV",MAPeriod,0,1,i+1);K1[i] = iCustom(NULL,0,"MUV",MAPeriod,1,1,i)-iCustom(NULL,0,"MUV",MAPeriod,1,1,i+1);K2[i] = iCustom(NULL,0,"MUV",MAPeriod,0,1,i);K3[i] = iCustom(NULL,0,"MUV",MAPeriod,1,1,i);double K0mx = K0[ArrayMaximum(K0,KPeriod,i)];double K0mm = K0[ArrayMinimum(K0,KPeriod,i)];double K1mx = K1[ArrayMaximum(K1,KPeriod,i)];double K1mm = K1[ArrayMinimum(K1,KPeriod,i)];double K2mx = K2[ArrayMaximum(K2,MAPeriod,i)];double K2mm = K2[ArrayMinimum(K2,MAPeriod,i)];double K3mx = K3[ArrayMaximum(K3,MAPeriod,i)];double K3mm = K3[ArrayMinimum(K3,MAPeriod,i)];if ((K0mx - K0mm)>0) double k0 = 1-((K0mx-K0[i])/(K0mx-K0mm)); else k0 = 1;if ((K1mx - K1mm)>0) double k1 = 1-((K1mx-K1[i])/(K1mx-K1mm)); else k1 = 1;if ((K2mx - K2mm)>0) double k2 = 1-((K2mx-K2[i])/(K2mx-K2mm)); else k2 = 0;if ((K3mx - K3mm)>0) double k3 = 1-((K3mx-K3[i])/(K3mx-K3mm)); else k3 = 0;ExtMapBuffer1[i] = k0;ExtMapBuffer2[i] = k1;ExtMapBuffer3[i] = k2;ExtMapBuffer4[i] = k3;}//----return(0);MUV'1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677//+------------------------------------------------------------------+//| MUV.mq4 |//| 3 ноября 2008г. Yuriy Tokman |//| ICQ#:481-971-287 yuriytokman@gmail.com |//+------------------------------------------------------------------+#property copyright "Yuriy Tokman"#property link "yuriytokman@gmail.com"#property indicator_chart_window#property indicator_buffers 2#property indicator_color1 LightYellow#property indicator_color2 Redextern int period = 14;extern int ma_method = 0; //MODE_SMA 0 Простое скользящее среднее//MODE_EMA 1 Экспоненциальное скользящее среднее//MODE_SMMA 2 Сглаженное скользящее среднее//MODE_LWMA 3 Линейно-взвешенное скользящее среднееdouble Buf0[];double Buf1[];//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init(){//---- indicatorsSetIndexBuffer(0,Buf0);SetIndexBuffer(1,Buf1);SetIndexStyle(0,DRAW_NONE);SetIndexStyle(1,DRAW_LINE);//----return(0);}//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit(){//----//----return(0);}//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int start(){int limit;int counted_bars=IndicatorCounted();if(counted_bars<0) return(-1);if(counted_bars>0) counted_bars--;limit=Bars-counted_bars;for(int i=0; i<limit; i++){double x=0.0,h = iHigh(NULL,0,i),l = iLow(NULL,0,i),o = iOpen(NULL,0,i),c = iClose(NULL,0,i);if(c<o) { x=(h+l+c+l)/2;}else if(c>o) { x=(h+l+c+h)/2;}else if(c==o){ x=(h+l+c+c)/2;}Buf0[i]=((x-l)+(x-h))/2;}for(i=0; i<limit; i++){Buf1[i]=iMAOnArray(Buf0,0,period,0,ma_method,i);}//----return(0);MT5 MUV diff1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859//+------------------------------------------------------------------+//| 111.mq4 |//| Copyright © 2008, MetaQuotes Software Corp. |//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright "Copyright © 2008, MetaQuotes Software Corp."#property link "http://www.metaquotes.net"#property indicator_separate_window#property indicator_buffers 2#property indicator_color1 Blue#property indicator_color2 Yellow#property indicator_level1 0extern int MAPeriod=14;//---- buffersdouble ExtMapBuffer1[];double ExtMapBuffer2[];//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init(){//---- indicatorsSetIndexStyle(0,DRAW_LINE);SetIndexBuffer(0,ExtMapBuffer1);SetIndexStyle(1,DRAW_LINE);SetIndexBuffer(1,ExtMapBuffer2);//----return(0);}//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit(){//----//----return(0);}//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int start(){int counted_bars=IndicatorCounted();if(counted_bars < 0) return(-1);if(counted_bars>0) counted_bars--;int limit=Bars-counted_bars;if(counted_bars==0) limit-=1+1;//----for(int i=limit;i>=0; i--){ExtMapBuffer1[i] = iCustom(NULL,0,"MUV",MAPeriod,0,1,i)-iCustom(NULL,0,"MUV",MAPeriod,0,1,i+1);ExtMapBuffer2[i] = iCustom(NULL,0,"MUV",MAPeriod,1,1,i)-iCustom(NULL,0,"MUV",MAPeriod,1,1,i+1);}//----return(0);05/18/2020 at 12:05 PM #132127Why interesting please? This MUV indicator is a moving average based of different price calculation depending of the candlestick form:
123456789101112131415161718192021//MUV indicatorperiod = 14mamethod = 0hh = highl = lowo = openc = closeif(c<o) thenx=(hh+l+c+l)/2elsif(c>o) thenx=(hh+l+c+hh)/2elsif(c=o)thenx=(hh+l+c+c)/2endifBuf0=((x-l)+(x-hh))/2Buf1=average[period,mamethod](Buf0)return buf1Then, the other indicators are just difference of this one from a period to another or a stochastic based oscillator.
05/18/2020 at 6:07 PM #132192 -
AuthorPosts
Viewing 3 posts - 1 through 3 (of 3 total)
Find exclusive trading pro-tools on
Similar topics: