커뮤니티

수식문의드립니다

프로필 이미지
jshwang2
2022-08-16 18:04:37
1378
글번호 161543
답변완료
안녕하세요~ 수식 관련해서 몇가지 질문드립니다 1. 조건문이 한번만 작동하고 꺼졌으면 하는데 이렇게 하면 되는지 H > HB+30을 충족했을 때 Bsystem이 false => true로 바뀌고 false가 된 상황에서 조건에 다시 도달하더라도 true로 바뀌진 않음 input : HB(13000) var : Bsystem(false), condition1(true) ; if H > HB+30 && condition1 == true Then { Bsystem = true; condition1 = False; } => 위 수식처럼 condition1의 초기치를 true로 해놓고, 조건이 만족되면 false로 바뀌게 하면 1회만 작동하고 꺼지나요? 2. 1분봉 차트 상에서 5분봉의 macd signal을 사용해 조건식 만들려면 어떻게 해야하는지? var : Bsystem(true); if (5분봉 macd signal) < 0 Then Bsystem = False; => 1분봉 차트에서 이 조건을 구현하려면?? 3. RSI가 조건을 충족한 해당 봉의 종가에 진입하려면 이렇게 하는게 맞는지? input : MDD(100000); var : unitP(0); unitP = floor(MDD/(2*ATR(14)*2*1400)); if RSI(14) <= 30 Then Buy("b3-1", OnClose, c, unitP); 답변 주시면 감사하겠습니다 감사합니다~
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-08-17 14:11:52

안녕하세요 예스스탁입니다. 1 작성하신 내용은 차트 전체에서 한번만 조건만족하게 제어하는 내용입니다. 수식은 차트에 적용되면 첫봉부터 마지막봉쪽으로 계산해서 오게 됩니다. 차트전체에서 처음 만족하면 이후 봉에서 체크하지 않은 내용이면 해당내용이 맞습니다. 2 input : 타주기분(5),short(12),long(26),sig(9); var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0),MACDO(0); var : TF(0),xma1(0),xma2(0),idx(0),Prexma1(0),Prexma2(0),MACDV(0),MACDS(0),PreMACDS(0); var : Bsystem(true); //타분봉 macd계산 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%타주기분; 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]; PreMACDS = MACDS[1]; } if idx <= 1 then { xma1 = C; xma2 = C; MACDV = xma1-xma2; MACDS = MACDV; MACDO = MACDV-MACDS; } else { xma1 = C * EP1 + Prexma1 * (1-EP1); xma2 = C * EP2 + Prexma2 * (1-EP2); MACDV = xma1-xma2; MACDS = MACDV * EP3 + PreMACDS * (1-EP3); MACDO = MACDV-MACDS; } if MACDS < 0 Then Bsystem = False; } 3 Buy("b3-1", OnClose, c, unitP); 작성하신 내용이 봉완성시 종가입니다. 신호함수에 onclose타입이 봉완성시 종가입니다. onclose뒤에 c는 필요가 없습니다. def로 지정하시면 됩니다. 즐거운 하루되세요 > jshwang2 님이 쓴 글입니다. > 제목 : 수식문의드립니다 > 안녕하세요~ 수식 관련해서 몇가지 질문드립니다 1. 조건문이 한번만 작동하고 꺼졌으면 하는데 이렇게 하면 되는지 H > HB+30을 충족했을 때 Bsystem이 false => true로 바뀌고 false가 된 상황에서 조건에 다시 도달하더라도 true로 바뀌진 않음 input : HB(13000) var : Bsystem(false), condition1(true) ; if H > HB+30 && condition1 == true Then { Bsystem = true; condition1 = False; } => 위 수식처럼 condition1의 초기치를 true로 해놓고, 조건이 만족되면 false로 바뀌게 하면 1회만 작동하고 꺼지나요? 2. 1분봉 차트 상에서 5분봉의 macd signal을 사용해 조건식 만들려면 어떻게 해야하는지? var : Bsystem(true); if (5분봉 macd signal) < 0 Then Bsystem = False; => 1분봉 차트에서 이 조건을 구현하려면?? 3. RSI가 조건을 충족한 해당 봉의 종가에 진입하려면 이렇게 하는게 맞는지? input : MDD(100000); var : unitP(0); unitP = floor(MDD/(2*ATR(14)*2*1400)); if RSI(14) <= 30 Then Buy("b3-1", OnClose, c, unitP); 답변 주시면 감사하겠습니다 감사합니다~