커뮤니티

검토 부탁

프로필 이미지
마식
2021-08-19 02:23:14
1456
글번호 151616
답변완료

첨부 이미지

1분봉(data1) 5분봉 (data2)를 사용하여 수식 작성중인데 오분봉의 첫번째 봉이 양봉(8%미만, 3%이상)으로 끝나면 진입시작 1분봉에서 직전봉이 음봉으로 끝나고 음봉의 저점이 ee와 dd 사이에 있었다면 종가에 진입인데... 계속해봤는데 뭐가 틀렸는지 모르겠내요;; 이미지도 첨부했는데 제가 생각한 진입이 진행이 안 되내요 수식 확인 부탁드립니다... -------------------------------------------------------------------------------- var : Trade(False),BBBup(0),BBBup2(0),MAv(0),BBup(0),BBdn(0); var : aa(0),bb(0),dd(0),ee(0),ff(0); dd= (ee) + ((data1(DayHigh) - ee) * 0.25); ee= (data1(DayHigh) + data1(DayLow)) * 0.5; ff=ee*0.985; BBBup = data1(BollBandUp(80,2)); BBBup2 = data2(BollBandUp(80,2)); MAv = data1(ma(C,20)); BBup = data1(BollBandUp(20,2)); BBdn = data1(BollBandDown(20,2)); if Bdate != Bdate[1] Then { trade = False; if data2(C) / data2(O) > 1.03 and data2(C) / data2(O) < 1.08 and data2(O)/ data2(C[1]) < 1.05 and (data2(O)/ data2(C[1])) > 0.99 Then Trade = true; } if trade == true then { if close[1] < open[1] and data1(c[1]) > BBBup and data1(c[1]) > MAv and data2(c[1]) > BBBup2 and ( data1(low[1])> ee and data1(low[1]) < dd ) then Buy("매수진입",OnClose); } if MarketPosition == 1 Then { if crossdown (data1(close),BBBup) Then ExitLong("청산1",OnClose); } if MarketPosition == 1 Then { if crossdown (data1(close),dd) Then ExitLong("청산2",OnClose); } if MarketPosition == 1 Then { if crossdown (data1(close),ff) Then ExitLong("청산3",OnClose); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-08-19 15:50:22

안녕하세요 예스스탁입니다. 1 수식에서 데이타는 모두 완성봉 기준으로만 호출해 사용가능합니다. if Bdate != Bdate[1] Then { trade = False; if data2(C) / data2(O) > 1.03 and data2(C) / data2(O) < 1.08 if Bdate != Bdate[1] Then 는 기본차트봉의 첫봉을 의미합니다. 기본차트는 첫봉 완성시에는 아직 참조데이타의 첫봉은 미완성봉이라 data2(c),data2(O)는 모두 전일 마지막봉의 값이 됩니다. 아래와 같이 짧은 주기인 기본차트 첫봉완성시에 false로 만들고 긴주기인 data2 첫봉 완성시에 조건에 따라 true가 되게 하시면 됩니다. 2 나머지 조건내용은 조건만족여부를 확인하셔서 수정보완하시기 바랍니다. 첨부하신 그림의 종목은 data2의 첫봉에서 data2(O)/ data2(C[1]) < 1.05조건은 충족되지 않습니다. 또한 해당 조건을 제외해도 그림에 지정하신 봉에 매수조건이 충족이 되지 않습니다. 3 var : Trade(False,Data1),BBBup(0,Data1),BBBup2(0,Data2),MAv(0,Data1),BBup(0,Data1),BBdn(0,Data1); var : aa(0),bb(0),dd(0,Data1),ee(0,Data1),ff(0,Data1); dd= (ee) + ((data1(DayHigh) - ee) * 0.25); ee= (data1(DayHigh) + data1(DayLow)) * 0.5; ff=ee*0.985; BBBup = data1(BollBandUp(80,2)); BBBup2 = data2(BollBandUp(80,2)); MAv = data1(ma(C,20)); BBup = data1(BollBandUp(20,2)); BBdn = data1(BollBandDown(20,2)); if data1(Bdate != Bdate[1]) Then { trade = False; } if Data2(Bdate != Bdate[1]) Then { if data2(C) / data2(O) > 1.03 and data2(C) / data2(O) < 1.08 and data2(O)/ data2(C[1]) < 1.05 and (data2(O)/ data2(C[1])) > 0.99 Then Trade = true; } if trade == true then { if close[1] < open[1] and data1(c[1]) > BBBup and data1(c[1]) > MAv and data2(c[1]) > BBBup2 and ( data1(low[1])> ee and data1(low[1]) < dd ) then Buy("매수진입",OnClose); } if MarketPosition == 1 Then { if crossdown (data1(close),BBBup) Then ExitLong("청산1",OnClose); } if MarketPosition == 1 Then { if crossdown (data1(close),dd) Then ExitLong("청산2",OnClose); } if MarketPosition == 1 Then { if crossdown (data1(close),ff) Then ExitLong("청산3",OnClose); } 즐거운 하루되세요 > 마식 님이 쓴 글입니다. > 제목 : 검토 부탁 > 1분봉(data1) 5분봉 (data2)를 사용하여 수식 작성중인데 오분봉의 첫번째 봉이 양봉(8%미만, 3%이상)으로 끝나면 진입시작 1분봉에서 직전봉이 음봉으로 끝나고 음봉의 저점이 ee와 dd 사이에 있었다면 종가에 진입인데... 계속해봤는데 뭐가 틀렸는지 모르겠내요;; 이미지도 첨부했는데 제가 생각한 진입이 진행이 안 되내요 수식 확인 부탁드립니다... -------------------------------------------------------------------------------- var : Trade(False),BBBup(0),BBBup2(0),MAv(0),BBup(0),BBdn(0); var : aa(0),bb(0),dd(0),ee(0),ff(0); dd= (ee) + ((data1(DayHigh) - ee) * 0.25); ee= (data1(DayHigh) + data1(DayLow)) * 0.5; ff=ee*0.985; BBBup = data1(BollBandUp(80,2)); BBBup2 = data2(BollBandUp(80,2)); MAv = data1(ma(C,20)); BBup = data1(BollBandUp(20,2)); BBdn = data1(BollBandDown(20,2)); if Bdate != Bdate[1] Then { trade = False; if data2(C) / data2(O) > 1.03 and data2(C) / data2(O) < 1.08 and data2(O)/ data2(C[1]) < 1.05 and (data2(O)/ data2(C[1])) > 0.99 Then Trade = true; } if trade == true then { if close[1] < open[1] and data1(c[1]) > BBBup and data1(c[1]) > MAv and data2(c[1]) > BBBup2 and ( data1(low[1])> ee and data1(low[1]) < dd ) then Buy("매수진입",OnClose); } if MarketPosition == 1 Then { if crossdown (data1(close),BBBup) Then ExitLong("청산1",OnClose); } if MarketPosition == 1 Then { if crossdown (data1(close),dd) Then ExitLong("청산2",OnClose); } if MarketPosition == 1 Then { if crossdown (data1(close),ff) Then ExitLong("청산3",OnClose); }