커뮤니티

매수시 2봉 걸러서 매수 또는 매도 할수 있는 수식이 있나요??

프로필 이미지
이형지
2018-09-11 08:54:07
112
글번호 121946
답변완료
아래 수식에서 한가지 부탁 드려요~~~ 매수시 RSI 25이하일때 전봉, 전전봉,전전전봉이 마이너스일때 매수 즉 RSI가 25이하라도 플러스봉일때는 매수가 안되고 마이너스봉일때만 매수하는 것인데 if var1 <= 25 and C < C[1] and C < C[2] and C < C[3] 막상 해보니 신호가 너무 집중적으로 떠서 분산 매수가 안되네요.. 1. 요청건 신호(RSI<25)에 만족하는 첫 신호에 1차 매수 다음 만족되는 신호 (RSI <= 25 and C < C[1] and C < C[2] and C < C[3] )는 skip하고 그다음 신호에 2차 매수하는 식으로 신호가 5회 뜨면 3회만 매수 될수 있게 ( 하나걸러서) 할수 있는 식좀 알려주시면 감사해요~ input : P1(5),P2(10),P3(20); 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 <= 25 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 10)) Then buy("매수",OnClose,def,1); } if MarketPosition == 1 and var1 >= 80 Then exitlong("매수청산"); if T >= 0 then { if var1 >= 80 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 10)) Then Sell("매도",OnClose,def,1); } if MarketPosition == -1 and var1 < 20 Then ExitShort("매도청산");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-09-11 16:47:44

안녕하세요 예스스탁입니다. input : P1(5),P2(10),P3(20); var : count(0); var : sumV1(0),sumV2(0),sumV3(0); var : mav1(0),mav2(0),mav3(0),T(0); var : Bcnt(0),Scnt(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 <= 25 and C < C[1] and C < C[2] and C < C[3] Then { if MarketPosition == 0 Then buy("B"); if MarketPosition == 1 Then { Bcnt = Bcnt+1; if Bcnt%2 == 0 and MaxContracts < 10 Then buy("BB",OnClose,def,1); } } } if MarketPosition != 1 Then Bcnt = 0; if MarketPosition == 1 and var1 >= 80 Then ExitLong("매수청산"); if T >= 0 then { if var1 >= 80 and C > C[1] and C > C[2] and C > C[3] then { if MarketPosition == 0 Then Sell("S1"); if MarketPosition == -1 Then { Scnt = Scnt +1; if Scnt%2 == 0 and MaxContracts < 10 Then Sell("SS",OnClose,def,1); } } } if MarketPosition == -1 and var1 < 20 Then ExitShort("매도청산"); if MarketPosition != -1 Then Scnt = 0; 즐거운 하루되세요 > 이형지 님이 쓴 글입니다. > 제목 : 매수시 2봉 걸러서 매수 또는 매도 할수 있는 수식이 있나요?? > 아래 수식에서 한가지 부탁 드려요~~~ 매수시 RSI 25이하일때 전봉, 전전봉,전전전봉이 마이너스일때 매수 즉 RSI가 25이하라도 플러스봉일때는 매수가 안되고 마이너스봉일때만 매수하는 것인데 if var1 <= 25 and C < C[1] and C < C[2] and C < C[3] 막상 해보니 신호가 너무 집중적으로 떠서 분산 매수가 안되네요.. 1. 요청건 신호(RSI<25)에 만족하는 첫 신호에 1차 매수 다음 만족되는 신호 (RSI <= 25 and C < C[1] and C < C[2] and C < C[3] )는 skip하고 그다음 신호에 2차 매수하는 식으로 신호가 5회 뜨면 3회만 매수 될수 있게 ( 하나걸러서) 할수 있는 식좀 알려주시면 감사해요~ input : P1(5),P2(10),P3(20); 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 <= 25 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 10)) Then buy("매수",OnClose,def,1); } if MarketPosition == 1 and var1 >= 80 Then exitlong("매수청산"); if T >= 0 then { if var1 >= 80 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 10)) Then Sell("매도",OnClose,def,1); } if MarketPosition == -1 and var1 < 20 Then ExitShort("매도청산");