커뮤니티

수식 질문드립니다.

프로필 이미지
캣피쉬
2021-03-05 14:09:39
510
글번호 146814
답변완료
아래 식에서 , 현재 봉 기준 이전봉이 c3가 연속 양봉 n 개 이면 sell 진입을 못하게하고, c3가 연속 음봉 n 개 이면 buy 진입을 못하게 하고 싶습니다. 변수n 으로 시뮬레이션 돌려보고 싶습니다. 방법이 있을까요? ---------------------- input : StartTime(93000),EndTime(144000); Input : shortPeriod(13), longPeriod(120), Period(3); var : Tcond(false,Data1); var : C2(0,Data2); var : C3(0,Data3); value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; C2 = Data2(c); C3 = Data3(c); if Tcond == true Then { if data2(c) <= aaa and CrossUP(value1, value2) then Buy(); if data2(c) >= bbb and CrossDown(value1, value2) then Sell(); } SetStopEndofday(EndTime);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-03-05 16:03:45

안녕하세요 예스스탁입니다. 아래는 양음봉을 종가와 시가를 비교합니다. 만약 C3가 숫자 0기준 +-를 가지는 값이고 양수이면 양봉, 음수이면 음봉이면 아래식에서 시가를 숫자 0으로 변경하시면 됩니ㅏㄷ. input : StartTime(93000),EndTime(144000); Input : shortPeriod(13), longPeriod(120), Period(3); input : N(3); var : Tcond(false,Data1),MACDV(0,Data1),MACDS(0,Data1); var : C2(0,Data2); var : C3(0,Data3); MACDV = data1(MACD(shortPeriod, longPeriod)); MACDS = data1(ema(MACDV, Period)); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; C2 = Data2(c); C3 = Data3(c); if Tcond == true Then { if data2(c) <= aaa and CrossUP(MACDV, MACDS) and Data3(CountIf(C<O,N) < N) then Buy(); if data2(c) >= bbb and CrossDown(MACDV, MACDS) and Data2(CountIf(C>O,N) < N) then Sell(); } SetStopEndofday(EndTime); 즐거운 하루되세요 > 캣피쉬 님이 쓴 글입니다. > 제목 : 수식 질문드립니다. > 아래 식에서 , 현재 봉 기준 이전봉이 c3가 연속 양봉 n 개 이면 sell 진입을 못하게하고, c3가 연속 음봉 n 개 이면 buy 진입을 못하게 하고 싶습니다. 변수n 으로 시뮬레이션 돌려보고 싶습니다. 방법이 있을까요? ---------------------- input : StartTime(93000),EndTime(144000); Input : shortPeriod(13), longPeriod(120), Period(3); var : Tcond(false,Data1); var : C2(0,Data2); var : C3(0,Data3); value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; C2 = Data2(c); C3 = Data3(c); if Tcond == true Then { if data2(c) <= aaa and CrossUP(value1, value2) then Buy(); if data2(c) >= bbb and CrossDown(value1, value2) then Sell(); } SetStopEndofday(EndTime);