You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to translate a index used in stock market, although I also write it in MQL4 language, but it doesn't work.
I made notes for the original syntax, please help.
[code]
RSV:=(CLOSE-LLV(LOW,5))/(HHV(HIGH,5)-LLV(LOW,5))100; --CLOSE is the close price for the period. HHV is the highest value of the "Highest Value" in the timeframe(in this case, the time frame is 5); And LLV is the lowest value of the "lowest Value" in the timeframe.
K0:=SMA(RSV,3,1); --SMA(x,N,M), the M days moving average;M stands for the weight;for example Y=(xM +(N-M)Y'); Y'is the previous period's SMA;
K:=K0;
D:=SMA(K0,2,1);
J1:(3K0-2D),COLORYELLOW;
J2:MA(J1,2),COLORRED;
MAV:=(2C+H+L)/4; ---C is the latest CLose price;H is the latest Highest Price;L is the latest Lowest price.;
VAR1:=LLV(LOW,21); --the smallest price in the past 21 periods' lowest price
VAR2:=HHV(HIGH,21);--the biggest price in the past 21 periods' highest price
SK: EMA((MAV-VAR1)/(VAR2-VAR1)100,8),COLORWHITE; --EMA is the exponential moving average
SD: EMA(0.667REF(SK,1)+0.333*SK,1),COLORCYAN;
Hello, Everyone,
I am trying to translate a index used in stock market, although I also write it in MQL4 language, but it doesn't work.
I made notes for the original syntax, please help.
[code]
RSV:=(CLOSE-LLV(LOW,5))/(HHV(HIGH,5)-LLV(LOW,5))100; --CLOSE is the close price for the period. HHV is the highest value of the "Highest Value" in the timeframe(in this case, the time frame is 5); And LLV is the lowest value of the "lowest Value" in the timeframe.
K0:=SMA(RSV,3,1); --SMA(x,N,M), the M days moving average;M stands for the weight;for example Y=(xM +(N-M)Y'); Y'is the previous period's SMA;
K:=K0;
D:=SMA(K0,2,1);
J1:(3K0-2D),COLORYELLOW;
J2:MA(J1,2),COLORRED;
MAV:=(2C+H+L)/4; ---C is the latest CLose price;H is the latest Highest Price;L is the latest Lowest price.;
VAR1:=LLV(LOW,21); --the smallest price in the past 21 periods' lowest price
VAR2:=HHV(HIGH,21);--the biggest price in the past 21 periods' highest price
SK: EMA((MAV-VAR1)/(VAR2-VAR1)100,8),COLORWHITE; --EMA is the exponential moving average
SD: EMA(0.667REF(SK,1)+0.333*SK,1),COLORCYAN;
SJ:=3SK-2SD;
50,POINTDOT,COLORRED;
70,POINTDOT,COLORRED;
90,COLOR00AA00;
WWW:SJ<20,COLOR00AA00;
IF(WWW,0,20),COLOR00AA00,LINETHICK2;
[/code]
here is what I wrote in MQL4:
[code]
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 White
#property indicator_color2 Yellow
#property indicator_color3 LightPink
#property indicator_color4 LightGreen
//---- indicator buffers
double MAV[];
double rsv[];
double VAR1[];
double VAR2[];
double k0[];
double sk0[];
double d0[];
double sd0[];
double j1[];
double j2[];
double sk[];
double sd[];
double sj[];
int init()
{
// IndicatorBuffers(4);
SetIndexDrawBegin(0,30);
SetIndexDrawBegin(1,30);
SetIndexDrawBegin(2,30);
SetIndexDrawBegin(3,30);
//----
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,1);
//----
SetIndexBuffer(0,j1);
SetIndexLabel(0,"j1");
SetIndexBuffer(1,j2);
SetIndexLabel(1,"j2");
SetIndexBuffer(2,sk);
SetIndexLabel(2,"sk");
SetIndexBuffer(3,sd);
SetIndexLabel(3,"sd");
// ArraySetAsSeries(fastTrigger, true);
//---- name for DataWindow and indicator subwindow label
//---- initialization done
return(0);
}
int start()
{
int limit;
int i;
limit=Bars-IndicatorCounted();
for (i=0; i<limit; i++)
{
rsv[i]=(Close[i]-Low[iLowest(NULL,0,MODE_LOW,5,i)])/
(High[iHighest(NULL,0,MODE_HIGH,5,i)]-Low[iLowest(NULL,0,MODE_LOW,5,i)])100;
MAV[i]=(2Close[i]+High[i]+Low[i])/4;
VAR1[i]=High[iLowest(NULL,0,MODE_LOW,21,i)];
VAR2[i]=Low[iHighest(NULL,0,MODE_HIGH,21,i)];
}
for (i=0; i<limit; i++)
{
k0[i]=iMAOnArray(rsv,0,3,1,MODE_SMMA,i);
sk0[i]=(MAV[i]-VAR1[i])/(VAR2[i]-VAR1[i])100;
}
for (i=0; i<limit; i++)
{
d0[i]=iMAOnArray(k0,0,2,1,MODE_SMMA,i);
sd0[i]=0.667sk[i+1]+0.333sk[i];
}
for (i=0; i<limit; i++)
{
j1[i]=3k0[i]-2d0[i];
}
for (i=0; i<limit; i++)
{
j2[i]=iMAOnArray(j1,0,2,0,MODE_SMA,i);;
}
for (i=0; i<limit; i++)
{
sk[i]=iMAOnArray(sk0,0,8,0,MODE_EMA,i);
sd[i]=iMAOnArray(sd0,0,1,0,MODE_EMA,i);
sj[i]=3sk[i]-2*sd[i];
}
return(0);
}
[/code]
The text was updated successfully, but these errors were encountered: