커뮤니티

수식 변경 요청드립니다

프로필 이미지
뽄때
2019-06-17 00:05:50
297
글번호 129481
답변완료
아래수식에서 90분봉의 이평선을 참조할 수 있도록 지표를 추가해 주셨는데(매매는 10분봉), 300분봉의 ADX 지표를 추가하고 싶습니다. 또한 90분봉의 MACD Oscillator 지표식도 추가 부탁드립니다. 항상 아낌없는 지원에 감사를 드립니다. input : ntime1(90),P1(20),P2(60),P(20),dv(2),스탑로스(2.5),손절폭(1.5),매수스톡(25),매도스톡(70); input : 매수이격(18),매도이격(18),매수MAP(10),청산MAP(30),금액(100000000); input : sto1(25),sto2(6),sto3(6); var : cnt(0),sum2(0),sum3(0); var : tsum1(0),tsum2(0),tmav1(0),tmav2(0); var : BBup(0),BBdn(0),BBMid(0); var : S1(0),D1(0),TM(0),TF(0); Var : Lvalue(0), Hvalue(0); var : EP1(0),EP2(0),SK(0),SD(0),T(0),단기mav(0),장기mav(0); Array : C1[100](0),H1[100](0),L1[100](0),FK[100](-1),StoK[100](-1); Ep1 = 2/(sto2+1); Ep2 = 2/(sto3+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%ntime1; if Bdate != Bdate[1] or (ntime1 != 1 and Bdate == Bdate[1] and TF < TF[1]) or (ntime1 == 1 and Bdate == Bdate[1] and TF > TF[1]) Then { H1[0] = H; L1[0] = L; for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; H1[cnt] = H1[cnt-1][1]; L1[cnt] = L1[cnt-1][1]; FK[cnt] = FK[cnt-1][1]; stok[cnt] = stok[cnt-1][1]; } } C1[0] = C; if H > H1[0] Then H1[0] = H; if L < L1[0] Then L1[0] = L; if C1[P2] > 0 then { tsum1 = 0; tsum2 = 0; for cnt = 0 to P2-1 { if cnt < P1 then tsum1 = tsum1+C1[cnt]; if cnt < P2 then tsum2 = tsum2+C1[cnt]; } # 90분봉의 20일 이평선= tmav1, 60일 이평선= tmav2 tmav1 = tsum1/P1; tmav2 = tsum2/P2; } # 단기 이평선 단기mav = ma(C,매수MAP); # 장기 이평선 장기mav = ma(C,청산MAP); # 매수게임============================= if crossup(단기mav,장기mav) and Then buy("매수",OnClose,def,Floor(금액/C)); if crossdown(단기mav,장기mav) Then ExitLong("청산"); # 매도게임============================== if crossdown(단기mav,장기mav) and Then sell("매도",OnClose,def,Floor(금액/C)); if crossup(단기mav,장기mav) Then ExitShort("매도청산");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-06-17 14:37:42

안녕하세요 예스스탁입니다. adx는 타주기로 작성해 드리기 어렵습니다. macd오실레이터만 추가해 드립니다. 변수확인하시고 수식에 조건추가하시면 됩니다. input : ntime1(90),P1(20),P2(60),P(20),dv(2),스탑로스(2.5),손절폭(1.5),매수스톡(25),매도스톡(70); input : 매수이격(18),매도이격(18),매수MAP(10),청산MAP(30),금액(100000000); input : sto1(25),sto2(6),sto3(6); input : short(12),long(26),sig(9); var : cnt(0),sum2(0),sum3(0); var : tsum1(0),tsum2(0),tmav1(0),tmav2(0); var : BBup(0),BBdn(0),BBMid(0); var : S1(0),D1(0),TM(0),TF(0); Var : Lvalue(0), Hvalue(0); var : SK(0),SD(0),T(0),단기mav(0),장기mav(0); Array : C1[100](0),H1[100](0),L1[100](0),FK[100](-1),StoK[100](-1); var : EP1(0),EP2(0),EP3(0),DINDEX1(0),PreJISU1(0),PreJISU2(0),JISU1(0),JISU2(0); var : MACDVal(0),MACDSIG(0),PreMACDSIG(0),MACDosc(0); Ep1 = 2/(short+1); Ep2 = 2/(long+1); Ep3 = 2/(sig+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%ntime1; if Bdate != Bdate[1] or (ntime1 != 1 and Bdate == Bdate[1] and TF < TF[1]) or (ntime1 == 1 and Bdate == Bdate[1] and TF > TF[1]) Then { H1[0] = H; L1[0] = L; for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; H1[cnt] = H1[cnt-1][1]; L1[cnt] = L1[cnt-1][1]; FK[cnt] = FK[cnt-1][1]; stok[cnt] = stok[cnt-1][1]; } DINDEX1 = DINDEX1 + 1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreMACDSIG = MACDSIG[1]; } C1[0] = C; if H > H1[0] Then H1[0] = H; if L < L1[0] Then L1[0] = L; if C1[P2] > 0 then { tsum1 = 0; tsum2 = 0; for cnt = 0 to P2-1 { if cnt < P1 then tsum1 = tsum1+C1[cnt]; if cnt < P2 then tsum2 = tsum2+C1[cnt]; } # 90분봉의 20일 이평선= tmav1, 60일 이평선= tmav2 tmav1 = tsum1/P1; tmav2 = tsum2/P2; } if DINDEX1 <= 1 then { JISU1 = C; JISU2 = C; MACDVal = JiSu1-Jisu2; MACDSIG = MACDVal; MACDosc = MACDval-MACDsig; } else{ JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); MACDVal = JiSu1-Jisu2; MACDSIG = MACDVal * EP3 + PreMACDSIG * (1-EP3); MACDosc = MACDval-MACDsig; } } # 단기 이평선 단기mav = ma(C,매수MAP); # 장기 이평선 장기mav = ma(C,청산MAP); # 매수게임============================= if crossup(단기mav,장기mav) Then buy("매수",OnClose,def,Floor(금액/C)); if crossdown(단기mav,장기mav) Then ExitLong("청산"); # 매도게임============================== if crossdown(단기mav,장기mav) Then sell("매도",OnClose,def,Floor(금액/C)); if crossup(단기mav,장기mav) Then ExitShort("매도청산"); 즐거운 하루되세요 > 뽄때 님이 쓴 글입니다. > 제목 : 수식 변경 요청드립니다 > 아래수식에서 90분봉의 이평선을 참조할 수 있도록 지표를 추가해 주셨는데(매매는 10분봉), 300분봉의 ADX 지표를 추가하고 싶습니다. 또한 90분봉의 MACD Oscillator 지표식도 추가 부탁드립니다. 항상 아낌없는 지원에 감사를 드립니다. input : ntime1(90),P1(20),P2(60),P(20),dv(2),스탑로스(2.5),손절폭(1.5),매수스톡(25),매도스톡(70); input : 매수이격(18),매도이격(18),매수MAP(10),청산MAP(30),금액(100000000); input : sto1(25),sto2(6),sto3(6); var : cnt(0),sum2(0),sum3(0); var : tsum1(0),tsum2(0),tmav1(0),tmav2(0); var : BBup(0),BBdn(0),BBMid(0); var : S1(0),D1(0),TM(0),TF(0); Var : Lvalue(0), Hvalue(0); var : EP1(0),EP2(0),SK(0),SD(0),T(0),단기mav(0),장기mav(0); Array : C1[100](0),H1[100](0),L1[100](0),FK[100](-1),StoK[100](-1); Ep1 = 2/(sto2+1); Ep2 = 2/(sto3+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%ntime1; if Bdate != Bdate[1] or (ntime1 != 1 and Bdate == Bdate[1] and TF < TF[1]) or (ntime1 == 1 and Bdate == Bdate[1] and TF > TF[1]) Then { H1[0] = H; L1[0] = L; for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; H1[cnt] = H1[cnt-1][1]; L1[cnt] = L1[cnt-1][1]; FK[cnt] = FK[cnt-1][1]; stok[cnt] = stok[cnt-1][1]; } } C1[0] = C; if H > H1[0] Then H1[0] = H; if L < L1[0] Then L1[0] = L; if C1[P2] > 0 then { tsum1 = 0; tsum2 = 0; for cnt = 0 to P2-1 { if cnt < P1 then tsum1 = tsum1+C1[cnt]; if cnt < P2 then tsum2 = tsum2+C1[cnt]; } # 90분봉의 20일 이평선= tmav1, 60일 이평선= tmav2 tmav1 = tsum1/P1; tmav2 = tsum2/P2; } # 단기 이평선 단기mav = ma(C,매수MAP); # 장기 이평선 장기mav = ma(C,청산MAP); # 매수게임============================= if crossup(단기mav,장기mav) and Then buy("매수",OnClose,def,Floor(금액/C)); if crossdown(단기mav,장기mav) Then ExitLong("청산"); # 매도게임============================== if crossdown(단기mav,장기mav) and Then sell("매도",OnClose,def,Floor(금액/C)); if crossup(단기mav,장기mav) Then ExitShort("매도청산");