커뮤니티

원래수식에 추가로 정배열/역배열 조건 추가 식 부탁해요~

프로필 이미지
이형지
2018-08-31 08:40:39
172
글번호 121769
답변완료
RSI를 기본으로 하는 수식입니다.(매수-청산,매도-청산) 기본봉은 30분봉으로 운영하고 성능보고서로 확인하면 상당히 결과가 않좋더군요.. 그래서 한가지 더 조건을 추가하고 싶어요... 도와주시면 감사 아래식은 30분봉으로 운영하나 추가조건은 일봉상 정배열/역배열을 넣고 싶어요.. (1) 정배열 (5일봉>20일봉>60일봉) (2) 역배열( 5일봉<20일봉<60일봉) (3) 혼재 상황 a. 매수-매수청산식에서 + 역배열시 신규 매수 금지 ( 정배열,혼재상황에서 매수) b. 매도-매도청산식에서 + 정배열 신규 매수 금지 ( 역배열 혼재상황 매도) 기존 수식 var1 = RSI(14); if var1 <= 20 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b1",OnClose,def,1); if var1 <= 15 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b2",OnClose,def,2); if var1 <= 10 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b3",OnClose,def,3); if MarketPosition == 1 and var1 >= 70 Then exitlong("bx"); if var1 >= 85 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s1",OnClose,def,1); if var1 >= 90 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s2",OnClose,def,2); if var1 >= 95 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s3",OnClose,def,3); if MarketPosition == -1 and var1 < 50 Then ExitShort("sx");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-08-31 13:15:08

안녕하세요 예스스탁입니다. input : P1(5),P2(20),P3(60); var : count(0); var : sumV1(0),sumV2(0),sumV3(0); var : mav1(0),mav2(0),mav3(0),T(0); sumV1 = 0; sumV2 = 0; sumV3 = 0; for count = 0 to P3{ if count < P1 Then sumV1 = sumV1+DayClose(count); if count < P2 Then sumV2 = sumV2+DayClose(count); if count < P3 Then sumV3 = sumV3+DayClose(count); } maV1 = sumV1 / P1; maV2 = sumV2 / P2; maV3 = sumV3 / P3; if mav1 > mav2 and mav2 > mav3 Then T = 1; Else if mav1 < mav2 and mav2 < mav3 Then T = -1; Else T = 0; var1 = RSI(14); if T >= 0 then { if var1 <= 20 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b1",OnClose,def,1); if var1 <= 15 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b2",OnClose,def,2); if var1 <= 10 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b3",OnClose,def,3); } if MarketPosition == 1 and var1 >= 70 Then exitlong("bx"); if T <= 0 then { if var1 >= 85 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s1",OnClose,def,1); if var1 >= 90 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s2",OnClose,def,2); if var1 >= 95 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s3",OnClose,def,3); } if MarketPosition == -1 and var1 < 50 Then ExitShort("sx"); 즐거운 하루되세요 > 이형지 님이 쓴 글입니다. > 제목 : 원래수식에 추가로 정배열/역배열 조건 추가 식 부탁해요~ > RSI를 기본으로 하는 수식입니다.(매수-청산,매도-청산) 기본봉은 30분봉으로 운영하고 성능보고서로 확인하면 상당히 결과가 않좋더군요.. 그래서 한가지 더 조건을 추가하고 싶어요... 도와주시면 감사 아래식은 30분봉으로 운영하나 추가조건은 일봉상 정배열/역배열을 넣고 싶어요.. (1) 정배열 (5일봉>20일봉>60일봉) (2) 역배열( 5일봉<20일봉<60일봉) (3) 혼재 상황 a. 매수-매수청산식에서 + 역배열시 신규 매수 금지 ( 정배열,혼재상황에서 매수) b. 매도-매도청산식에서 + 정배열 신규 매수 금지 ( 역배열 혼재상황 매도) 기존 수식 var1 = RSI(14); if var1 <= 20 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b1",OnClose,def,1); if var1 <= 15 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b2",OnClose,def,2); if var1 <= 10 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b3",OnClose,def,3); if MarketPosition == 1 and var1 >= 70 Then exitlong("bx"); if var1 >= 85 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s1",OnClose,def,1); if var1 >= 90 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s2",OnClose,def,2); if var1 >= 95 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s3",OnClose,def,3); if MarketPosition == -1 and var1 < 50 Then ExitShort("sx");