커뮤니티

시스템 수정 문의

프로필 이미지
대한이
2021-04-12 17:27:06
467
글번호 147944
답변완료
진심으로 감사드립니다. 아래 수식 작성하여 주셨는데, 제가 기간변경을 하기 위해서 어느 부분을 수정하면 되는지 알려 주시면 감사하겠습니다. 예) 주,일,60분 봉 -> 일,30분, 3분 다양한 기간을 설정 하면서 테스트 해보고 싶어서 부탁드립니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. Input : Wshort(12),Wlong(26),Wsig(9); Input : dshort(12),dlong(26),dsig(9); Input : short(12),long(26),sig(9); var : widx(0); Var : wEp1(0), Wema1(0), PreWema1(0); Var : wEp2(0), Wema2(0), PreWema2(0); Var : wEp3(0),PreWMACDS(0),WMACDv(0),WMACDs(0),preWMACDo(0),WMACDO(0); var : didx(0); Var : dEp1(0), dema1(0), Predema1(0); Var : dEp2(0), dema2(0), Predema2(0); Var : dEp3(0),PredMACDS(0),dMACDv(0),dMACDs(0),predMACDo(0),dMACDO(0); Var : MACDv(0), MACDs(0),macdo(0) ; wEp1 = 2/(Wshort+1); wEp2 = 2/(Wlong+1); wEp3 = 2/(Wsig+1); if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then { widx = widx + 1; PreWema1 = Wema1[1]; PreWema2 = Wema2[1]; PreWMACDS = WMACDs[1]; PreWMACDO = WMACDo[1]; } if widx <= 1 then { Wema1 = C; Wema2 = C; WMACDv = Wema1-Wema2; WMACDs = WMACDv; WMACDO = WMACDV-WMACDS; } else{ Wema1 = C * wEP1 + PreWema1 * (1-wEP1); Wema2 = C * wEP2 + PreWema2 * (1-wEP2); WMACDV = Wema1-Wema2; WMACDS = WMACDV * wEP3 + PreWMACDS * (1-wEP3); WMACDO = WMACDV-WMACDS; } dEp1 = 2/(dshort+1); dEp2 = 2/(dlong+1); dEp3 = 2/(dsig+1); if bdate != bdate[1] Then { didx = didx + 1; Predema1 = dema1[1]; Predema2 = dema2[1]; PredMACDS = dMACDs[1]; PredMACDO = dMACDo[1]; } if didx <= 1 then { dema1 = C; dema2 = C; dMACDv = dema1-dema2; dMACDs = dMACDv; dMACDO = dMACDV-dMACDS; } else{ dema1 = C * dEP1 + Predema1 * (1-dEP1); dema2 = C * dEP2 + Predema2 * (1-dEP2); dMACDV = dema1-dema2; dMACDS = dMACDV * dEP3 + PredMACDS * (1-dEP3); dMACDO = dMACDV-dMACDS; } MACDv = MACD(short, long); MACDs = ema(MACDv,sig); macdo = MACDv-MACDs; if WMACDO > PreWMACDO and DMACDO > PreDMACDO and MACDO > MACDO[1] Then Buy(); if MACDO < MACDO[1] and MACDO[1] > MACDO[2] Then ExitLong(); 즐거운 하루되세요 > 대한이 님이 쓴 글입니다. > 제목 : 시스템 작성 부탁드립니다. > 안녕하십니까? 시스템 작성 부탁드립니다. 조건 주봉 MACD오실레이터 상승 AND 일봉 MACD오실레이터 상승 AND 60분봉 MACD오실레이터 상승 일때 매수 60분봉 MACD오실레이터 하락 반전 매도 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-04-13 11:48:52

안녕하세요 예스스탁입니다. 각 주기별로 아래 변수에 값이 저장됩니다. 주봉은 WMACD,WMACDS,WMACDO, 전봉값은 preWMACD,preWMACDS,preWMACDO 일봉은 DMACD,DMACDS,DMACDO, 전봉값은 preDMACD,preDMACDS,preDMACDO 타분봉 XMACD,XMACDS,XMACDO, 전봉값은 preXMACD,preXMACDS,preXMACDO 기본차트 MACD,MACDS,MACDO, 전봉값은 MACD[1],MACDS[1],MACDO[1] 각 MACD값들중 필요한 값으로 진입청산 조건만들어 사용하셔야 합니다. Input : Wshort(12),Wlong(26),Wsig(9); Input : dshort(12),dlong(26),dsig(9); input : 타분봉(30),Xshort(12),Xlong(26),Xsig(9); Input : short(12),long(26),sig(9); var : widx(0); Var : wEp1(0), Wema1(0), PreWema1(0); Var : wEp2(0), Wema2(0), PreWema2(0); Var : wEp3(0), PreWMACDV(0),PreWMACDS(0),WMACDv(0),WMACDs(0),preWMACDo(0),WMACDO(0); var : didx(0); Var : dEp1(0), dema1(0), Predema1(0); Var : dEp2(0), dema2(0), Predema2(0); Var : dEp3(0),PredMACDV(0),PredMACDS(0),dMACDv(0),dMACDs(0),predMACDo(0),dMACDO(0); Var : MACDv(0), MACDs(0),macdo(0) ; var : S1(0),D1(0),TM(0),TF(0),XEP1(0),XEP2(0),XEP3(0),XMACDO(0); var : xma1(0),xma2(0),idx(0),Prexma1(0),Prexma2(0),XMACDV(0),XMACDS(0),PreXMACDS(0),PreXMACDV(0),PreXMACDO(0); #주봉 MACD wEp1 = 2/(Wshort+1); wEp2 = 2/(Wlong+1); wEp3 = 2/(Wsig+1); if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then { widx = widx + 1; PreWema1 = Wema1[1]; PreWema2 = Wema2[1]; PreWMACDV = WMACDV[1]; PreWMACDS = WMACDs[1]; PreWMACDO = WMACDo[1]; } if widx <= 1 then { Wema1 = C; Wema2 = C; WMACDv = Wema1-Wema2; WMACDs = WMACDv; WMACDO = WMACDV-WMACDS; } else{ Wema1 = C * wEP1 + PreWema1 * (1-wEP1); Wema2 = C * wEP2 + PreWema2 * (1-wEP2); WMACDV = Wema1-Wema2; WMACDS = WMACDV * wEP3 + PreWMACDS * (1-wEP3); WMACDO = WMACDV-WMACDS; } #일봉 MACD dEp1 = 2/(dshort+1); dEp2 = 2/(dlong+1); dEp3 = 2/(dsig+1); if bdate != bdate[1] Then { didx = didx + 1; Predema1 = dema1[1]; Predema2 = dema2[1]; PredMACDV = dMACDV[1]; PredMACDS = dMACDs[1]; PredMACDO = dMACDo[1]; } if didx <= 1 then { dema1 = C; dema2 = C; dMACDv = dema1-dema2; dMACDs = dMACDv; dMACDO = dMACDV-dMACDS; } else{ dema1 = C * dEP1 + Predema1 * (1-dEP1); dema2 = C * dEP2 + Predema2 * (1-dEP2); dMACDV = dema1-dema2; dMACDS = dMACDV * dEP3 + PredMACDS * (1-dEP3); dMACDO = dMACDV-dMACDS; } #타분봉 MACD XEp1 = 2/(Xshort+1); XEp2 = 2/(Xlong+1); XEp3 = 2/(Xsig+1); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타분봉; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타분봉 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타분봉 > 1 and TM >= TM[1]+타분봉) or (Bdate == Bdate[1] and 타분봉 == 1 and TM > TM[1]) Then { idx = idx + 1; Prexma1 = xma1[1]; Prexma2 = xma2[1]; PreXMACDV = XMACDV[1]; PreXMACDS = XMACDS[1]; PreXMACDO = XMACDO[1]; } if idx <= 1 then { xma1 = C; xma2 = C; MACDV = xma1-xma2; MACDS = MACDV; MACDO = MACDV-MACDS; } else{ xma1 = C * XEP1 + Prexma1 * (1-XEP1); xma2 = C * XEP2 + Prexma2 * (1-XEP2); XMACDV = xma1-xma2; XMACDS = XMACDV * XEP3 + PreXMACDS * (1-XEP3); XMACDO = XMACDV-XMACDS; } } #기본차트 MACD MACDv = MACD(short, long); MACDs = ema(MACDv,sig); macdo = MACDv-MACDs; if WMACDO > PreWMACDO and DMACDO > PreDMACDO and MACDO > MACDO[1] Then Buy(); if MACDO < MACDO[1] and MACDO[1] > MACDO[2] Then ExitLong(); 즐거운 하루되세요 > 대한이 님이 쓴 글입니다. > 제목 : 시스템 수정 문의 > 진심으로 감사드립니다. 아래 수식 작성하여 주셨는데, 제가 기간변경을 하기 위해서 어느 부분을 수정하면 되는지 알려 주시면 감사하겠습니다. 예) 주,일,60분 봉 -> 일,30분, 3분 다양한 기간을 설정 하면서 테스트 해보고 싶어서 부탁드립니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. Input : Wshort(12),Wlong(26),Wsig(9); Input : dshort(12),dlong(26),dsig(9); Input : short(12),long(26),sig(9); var : widx(0); Var : wEp1(0), Wema1(0), PreWema1(0); Var : wEp2(0), Wema2(0), PreWema2(0); Var : wEp3(0),PreWMACDS(0),WMACDv(0),WMACDs(0),preWMACDo(0),WMACDO(0); var : didx(0); Var : dEp1(0), dema1(0), Predema1(0); Var : dEp2(0), dema2(0), Predema2(0); Var : dEp3(0),PredMACDS(0),dMACDv(0),dMACDs(0),predMACDo(0),dMACDO(0); Var : MACDv(0), MACDs(0),macdo(0) ; wEp1 = 2/(Wshort+1); wEp2 = 2/(Wlong+1); wEp3 = 2/(Wsig+1); if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then { widx = widx + 1; PreWema1 = Wema1[1]; PreWema2 = Wema2[1]; PreWMACDS = WMACDs[1]; PreWMACDO = WMACDo[1]; } if widx <= 1 then { Wema1 = C; Wema2 = C; WMACDv = Wema1-Wema2; WMACDs = WMACDv; WMACDO = WMACDV-WMACDS; } else{ Wema1 = C * wEP1 + PreWema1 * (1-wEP1); Wema2 = C * wEP2 + PreWema2 * (1-wEP2); WMACDV = Wema1-Wema2; WMACDS = WMACDV * wEP3 + PreWMACDS * (1-wEP3); WMACDO = WMACDV-WMACDS; } dEp1 = 2/(dshort+1); dEp2 = 2/(dlong+1); dEp3 = 2/(dsig+1); if bdate != bdate[1] Then { didx = didx + 1; Predema1 = dema1[1]; Predema2 = dema2[1]; PredMACDS = dMACDs[1]; PredMACDO = dMACDo[1]; } if didx <= 1 then { dema1 = C; dema2 = C; dMACDv = dema1-dema2; dMACDs = dMACDv; dMACDO = dMACDV-dMACDS; } else{ dema1 = C * dEP1 + Predema1 * (1-dEP1); dema2 = C * dEP2 + Predema2 * (1-dEP2); dMACDV = dema1-dema2; dMACDS = dMACDV * dEP3 + PredMACDS * (1-dEP3); dMACDO = dMACDV-dMACDS; } MACDv = MACD(short, long); MACDs = ema(MACDv,sig); macdo = MACDv-MACDs; if WMACDO > PreWMACDO and DMACDO > PreDMACDO and MACDO > MACDO[1] Then Buy(); if MACDO < MACDO[1] and MACDO[1] > MACDO[2] Then ExitLong(); 즐거운 하루되세요 > 대한이 님이 쓴 글입니다. > 제목 : 시스템 작성 부탁드립니다. > 안녕하십니까? 시스템 작성 부탁드립니다. 조건 주봉 MACD오실레이터 상승 AND 일봉 MACD오실레이터 상승 AND 60분봉 MACD오실레이터 상승 일때 매수 60분봉 MACD오실레이터 하락 반전 매도 감사합니다.