예스스탁
예스스탁 답변
2020-10-05 16:31:58
안녕하세요
예스스탁입니다.
1 일봉
Input : maPeriod(20), ROCPeriod(12), stoPeriod1(5), stoPeriod2(3);
var : sPeriod(12), IPeriod(26),sigPeriod(9);
var : Ep(0),cnt(0),hVaLL(0), lVaLL(0), StoFastK(0), StoK(0);
var : JISU(0), DINDEX(0), PreStoK(0),sum(0),mav(0);
Var : Ep1(0), ema1(0), Preema1(0);
Var : Ep2(0), ema2(0), Preema2(0);
Var : Ep3(0),PreMACDv1(0),PreMACDs1(0),MACDV(0),MACDS(0);
var : BWvalue(0),EP11(0),EP22(0),EP33(0);
Var : BWema1(0), PreBWema1(0);
Var : BWema2(0), PreBWema2(0);
Var : PreBWMACDv1(0),PreBWMACDs1(0),BWMACDV(0),BWMACDS(0);
Array : HH[50](0),LL[50](0),CC[50](0);
if bdate != bdate[1] Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
DINDEX = DINDEX + 1;
PreStoK = StoK[1];
Preema1 = ema1[1];
Preema2 = ema2[1];
PreMACDv1 = MACDv[1];
PreMACDS1 = MACDs[1];
PreBWema1 = BWema1[1];
PreBWema2 = BWema2[1];
PreBWMACDv1 = BWMACDv[1];
PreBWMACDS1 = BWMACDs[1];
}
if HH[0] > 0 and H > HH[0] Then
HH[0] = H;
if LL[0] > 0 and L < LL[0] Then
LL[0] = L;
CC[0] = C;
Ep1 = 2/(12+1);
Ep2 = 2/(26+1);
Ep3 = 2/(9+1);
if DINDEX <= 1 then
{
ema1 = CC[0];
ema2 = CC[0];
MACDv = ema1-ema2;
MACDs = MACDv;
}
else{
ema1 = CC[0] * EP1 + Preema1 * (1-EP1);
ema2 = CC[0] * EP2 + Preema2 * (1-EP2);
MACDV = ema1-ema2;
MACDS = MACDV * EP3 + PreMACDS1 * (1-EP3);
}
BWvalue = 0;
If MACDV > MACDS Then
BWvalue = BWvalue +1;
Else
BWvalue = BWvalue -1;
if CC[maPeriod-1] > 0 Then
{
sum = 0;
For cnt = 0 to maPeriod-1
{
sum = sum + CC[cnt];
}
mav = sum/maPeriod;
If CC[0] > mav Then
BWvalue = BWvalue + 1;
Else
BWvalue = BWvalue - 1;
}
if CC[ROCPeriod] > 0 Then
{
If (CC[0] - CC[ROCPeriod]) / CC[ROCPeriod] * 100 > 0 Then
BWvalue = BWvalue + 1;
Else
BWvalue = BWvalue - 1;
}
Ep = 2/(stoPeriod2+1);
if HH[stoPeriod1-1] > 0 and LL[stoPeriod1-1] > 0 Then
{
hVaLL = HH[0];
lVaLL = LL[0];
for cnt = 0 to stoPeriod1-1
{
if HH[cnt] > hVaLL then
hVaLL = HH[cnt];
if LL[cnt] < lvaLL then
LVaLL = LL[cnt];
}
StoFastK = (CC[0]-lVaLL)/(hVaLL-lVaLL)*100;
if DINDEX <= 1 then
{
StoK = StoFastK ;
}
else
{
StoK = StoFastK * EP + PreStoK * (1-EP);
}
If StoK > 50 Then
BWvalue = BWvalue + 1;
Else
BWvalue = BWvalue - 1;
}
Ep11 = 2/(sPeriod+1);
Ep22 = 2/(IPeriod+1);
Ep33 = 2/(sigPeriod+1);
if DINDEX <= 1 then
{
BWema1 = BWvalue;
BWema2 = BWvalue;
BWMACDv = BWema1-BWema2;
BWMACDs = BWMACDv;
}
else{
BWema1 = BWvalue * EP11 + PreBWema1 * (1-EP11);
BWema2 = BWvalue * EP22 + PreBWema2 * (1-EP22);
BWMACDV = BWema1-BWema2;
BWMACDS = BWMACDV * EP33 + PreBWMACDS1 * (1-EP33);
}
Plot1(BWMACDv,"BW MACD");
Plot2(BWMACDs,"BW MACD_Sig");
PlotBaseLine1(0, "기준선0");
2 주봉
Input : maPeriod(20), ROCPeriod(12), stoPeriod1(5), stoPeriod2(3);
var : sPeriod(12), IPeriod(26),sigPeriod(9);
var : Ep(0),cnt(0),hVaLL(0), lVaLL(0), StoFastK(0), StoK(0);
var : JISU(0), DINDEX(0), PreStoK(0),sum(0),mav(0);
Var : Ep1(0), ema1(0), Preema1(0);
Var : Ep2(0), ema2(0), Preema2(0);
Var : Ep3(0),PreMACDv1(0),PreMACDs1(0),MACDV(0),MACDS(0);
var : BWvalue(0),EP11(0),EP22(0),EP33(0);
Var : BWema1(0), PreBWema1(0);
Var : BWema2(0), PreBWema2(0);
Var : PreBWMACDv1(0),PreBWMACDs1(0),BWMACDV(0),BWMACDS(0);
Array : HH[50](0),LL[50](0),CC[50](0);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
DINDEX = DINDEX + 1;
PreStoK = StoK[1];
Preema1 = ema1[1];
Preema2 = ema2[1];
PreMACDv1 = MACDv[1];
PreMACDS1 = MACDs[1];
PreBWema1 = BWema1[1];
PreBWema2 = BWema2[1];
PreBWMACDv1 = BWMACDv[1];
PreBWMACDS1 = BWMACDs[1];
}
if HH[0] > 0 and H > HH[0] Then
HH[0] = H;
if LL[0] > 0 and L < LL[0] Then
LL[0] = L;
CC[0] = C;
Ep1 = 2/(12+1);
Ep2 = 2/(26+1);
Ep3 = 2/(9+1);
if DINDEX <= 1 then
{
ema1 = CC[0];
ema2 = CC[0];
MACDv = ema1-ema2;
MACDs = MACDv;
}
else{
ema1 = CC[0] * EP1 + Preema1 * (1-EP1);
ema2 = CC[0] * EP2 + Preema2 * (1-EP2);
MACDV = ema1-ema2;
MACDS = MACDV * EP3 + PreMACDS1 * (1-EP3);
}
BWvalue = 0;
If MACDV > MACDS Then
BWvalue = BWvalue +1;
Else
BWvalue = BWvalue -1;
if CC[maPeriod-1] > 0 Then
{
sum = 0;
For cnt = 0 to maPeriod-1
{
sum = sum + CC[cnt];
}
mav = sum/maPeriod;
If CC[0] > mav Then
BWvalue = BWvalue + 1;
Else
BWvalue = BWvalue - 1;
}
if CC[ROCPeriod] > 0 Then
{
If (CC[0] - CC[ROCPeriod]) / CC[ROCPeriod] * 100 > 0 Then
BWvalue = BWvalue + 1;
Else
BWvalue = BWvalue - 1;
}
Ep = 2/(stoPeriod2+1);
if HH[stoPeriod1-1] > 0 and LL[stoPeriod1-1] > 0 Then
{
hVaLL = HH[0];
lVaLL = LL[0];
for cnt = 0 to stoPeriod1-1
{
if HH[cnt] > hVaLL then
hVaLL = HH[cnt];
if LL[cnt] < lvaLL then
LVaLL = LL[cnt];
}
StoFastK = (CC[0]-lVaLL)/(hVaLL-lVaLL)*100;
if DINDEX <= 1 then
{
StoK = StoFastK ;
}
else
{
StoK = StoFastK * EP + PreStoK * (1-EP);
}
If StoK > 50 Then
BWvalue = BWvalue + 1;
Else
BWvalue = BWvalue - 1;
}
Ep11 = 2/(sPeriod+1);
Ep22 = 2/(IPeriod+1);
Ep33 = 2/(sigPeriod+1);
if DINDEX <= 1 then
{
BWema1 = BWvalue;
BWema2 = BWvalue;
BWMACDv = BWema1-BWema2;
BWMACDs = BWMACDv;
}
else{
BWema1 = BWvalue * EP11 + PreBWema1 * (1-EP11);
BWema2 = BWvalue * EP22 + PreBWema2 * (1-EP22);
BWMACDV = BWema1-BWema2;
BWMACDS = BWMACDV * EP33 + PreBWMACDS1 * (1-EP33);
}
Plot1(BWMACDv,"BW MACD");
Plot2(BWMACDs,"BW MACD_Sig");
PlotBaseLine1(0, "기준선0");
즐거운 하루되세요
> 롬롬7 님이 쓴 글입니다.
> 제목 : 분봉에서..
> 안녕하세요. 항상 감사드립니다.
분봉에서 바이너리MACD 의 일봉, 주봉 값을 계산해서 쓰고 싶은데요.
data2로는 안될 것 같은데..
data2말고 계산해서 쓸 수 있는 방법이 있을까요?
가이드 부탁드립니다.