커뮤니티

분봉에서..

프로필 이미지
롬롬7
2020-10-03 21:24:49
1007
글번호 142817
답변완료
안녕하세요. 항상 감사드립니다. 분봉에서 바이너리MACD 의 일봉, 주봉 값을 계산해서 쓰고 싶은데요. data2로는 안될 것 같은데.. data2말고 계산해서 쓸 수 있는 방법이 있을까요? 가이드 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

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말고 계산해서 쓸 수 있는 방법이 있을까요? 가이드 부탁드립니다.