예스스탁
예스스탁 답변
2023-02-07 14:06:18
안녕하세요
예스스탁입니다.
input : MaPeriod(6),MaPeriod2(2);
var : maOpen(0),maClose(0),maLow(0),maHigh(0);
var : haOpen(0),haClose(0),haLow(0),haHigh(0);
var : ExtMapBuffer5(0),ExtMapBuffer6(0),ExtMapBuffer4(0),ExtMapBuffer3(0),ExtMapBuffer2(0),ExtMapBuffer1(0);
var : ExtMapBuffer7(0),ExtMapBuffer8(0);
var : r(0),g(0),b(0);
var : sumc(0),sumi(0),mav(0);
if Bdate != Bdate[1] Then
{
sumc = 0;
sumi = 0;
}
sumc = sumc+c;
sumi = sumi+1;
if sumi <= MaPeriod-1 Then
mav = sumc/sumi;
Else
mav = ma(C,MaPeriod-1);
if Index == 0 Then
{
maOpen=Open;
maClose=Close;
maLow=Low;
maHigh=High;
}
Else
{
maOpen=(mav+Open)/2;
maClose=(mav+Close)/2;
maLow=(mav+Low)/2;
maHigh=(mav+High)/2;
haOpen=(ExtMapBuffer5[1]+ExtMapBuffer6[1])/2;
haClose=(maOpen+maHigh+maLow+maClose)/4;
haHigh=Max(maHigh, Max(haOpen, haClose));
haLow=Min(maLow, Min(haOpen, haClose));
if (haOpen<haClose) then
{
r=255;
g=94;
b=0;
ExtMapBuffer7=haLow;
ExtMapBuffer8=haHigh;
}
else
{
r=92;
g=209;
b=229;
ExtMapBuffer7=haHigh;
ExtMapBuffer8=haLow;
}
ExtMapBuffer5=haOpen;
ExtMapBuffer6=haClose;
ExtMapBuffer1=WMA(ExtMapBuffer7,MAperiod2);
ExtMapBuffer2=WMA(ExtMapBuffer8,MAperiod2);
ExtMapBuffer3=WMA(ExtMapBuffer5,MAperiod2);
ExtMapBuffer4=WMA(ExtMapBuffer6,MAperiod2);
}
PlotPaintBar(ExtMapBuffer2,ExtMapBuffer1,ExtMapBuffer3,ExtMapBuffer4,"강조",Rgb(r,g,b));
즐거운 하루되세요
> 흑수돌 님이 쓴 글입니다.
> 제목 : 수식 문의
> 아래 지표는 하케아쉬에 이평을 넣어 더욱 스무드하게 만든 지표입니다.
문제는, 본 지표를 분봉에 적용할 때, 전일 종가를 반영해서 계산하다 보니
시가봉~n봉까지는 움직임과는 다르게 표현될 때가 있습니다.
이에, 본 수식을 수정하여,
예를 들어, ma5를 적용한다 했을 때,
5째봉까지는 누적으로 이평값을 계산해서 적용하고
5째봉 이후 부터는 쭉 ma5를 적용하고 싶습니다.
즉,
시가가 양봉이면 양봉으로, 음봉이면 음봉으로 표시
시가+2봉 : ma2를 적용
시가+2+3봉 : ma3을 적용
시가+2+3+4봉 : ma4를 적용
시가+2+3+4+5봉 : ma5를 적용
6봉 부터는 종가까지 ma5를 적용하여 뿌려줍니다.
-------- 아래 ------------
input : MaPeriod(6),MaPeriod2(2);
var : maOpen(0),maClose(0),maLow(0),maHigh(0);
var : haOpen(0),haClose(0),haLow(0),haHigh(0);
var : ExtMapBuffer5(0),ExtMapBuffer6(0),ExtMapBuffer4(0),ExtMapBuffer3(0),ExtMapBuffer2(0),ExtMapBuffer1(0);
var : ExtMapBuffer7(0),ExtMapBuffer8(0);
var : r(0),g(0),b(0);
if Index == 0 Then
{
maOpen=Open;
maClose=Close;
maLow=Low;
maHigh=High;
}
Else
{
maOpen=(maOpen[1]*(MAperiod-1)+Open)/MAPeriod;
maClose=(maClose[1]*(MAperiod-1)+Close)/MAPeriod;
maLow=(maLow[1]*(MAperiod-1)+Low)/MAPeriod;
maHigh=(maHigh[1]*(MAperiod-1)+High)/MAPeriod;
haOpen=(ExtMapBuffer5[1]+ExtMapBuffer6[1])/2;
haClose=(maOpen+maHigh+maLow+maClose)/4;
haHigh=Max(maHigh, Max(haOpen, haClose));
haLow=Min(maLow, Min(haOpen, haClose));
if (haOpen<haClose) then
{
r=255;
g=94;
b=0;
ExtMapBuffer7=haLow;
ExtMapBuffer8=haHigh;
}
else
{
r=92;
g=209;
b=229;
ExtMapBuffer7=haHigh;
ExtMapBuffer8=haLow;
}
ExtMapBuffer5=haOpen;
ExtMapBuffer6=haClose;
ExtMapBuffer1=WMA(ExtMapBuffer7,MAperiod2);
ExtMapBuffer2=WMA(ExtMapBuffer8,MAperiod2);
ExtMapBuffer3=WMA(ExtMapBuffer5,MAperiod2);
ExtMapBuffer4=WMA(ExtMapBuffer6,MAperiod2);
}
PlotPaintBar(ExtMapBuffer2,ExtMapBuffer1,ExtMapBuffer3,ExtMapBuffer4,"강조",Rgb(r,g,b));