커뮤니티

시스템식 문의 드립니다.

프로필 이미지
맴맴잉
2021-07-15 23:38:45
1023
글번호 150794
답변완료
업무에 노고가 많으십니다. 항상 감사드립니다. (--)(__) 예전에 분봉에서 일봉상 이평선을 터치했을때 매수 하는 시스템식을 요청한적이 있었는데 아래와 같이 알려주셨습니다. 여기서 조금더 업그레이드 하고 싶어서 요청드립니다. 제가 원하는 이동평균선과 금액을 변수로 해서 매수하는 식을 요청드립니다. 예를들면 분봉차트에서 일봉5일이동평균선 100만원, 일봉7일이동평균선 200만원 매수, 일봉10일이동평균선 300만원 매수 이런식으로 작성하고 싶습니다. 예전에 요청드렸던 식을 같이 보내드립니다. ------------------------------------------------------------------------ input : N(10),금액(10000000); var : cnt(0),sum(0),mav(0); sum = 0; For cnt = 0 to N-1 { sum = sum + DayClose(cnt); } mav = sum/N; if MarketPosition == 0 and CrossUp(C,mav) Then Buy("b",OnClose,DEF,Floor(금액/C)); if MarketPosition == 1 Then { ExitLong("Bp1",AtLimit,avgEntryPrice*1.04,"",Floor(MaxContracts*0.5)); ExitLong("Bp2",AtLimit,avgEntryPrice*1.05); ExitLong("Bl",AtStop,avgEntryPrice*0.95); if CrossDown(c,mav) Then ExitLong("bx"); } -------------------------------------------------------------------------- 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-07-16 10:17:07

안녕하세요 예스스탁입니다. input : N1(5),N2(7),N3(10); input : 금액1(1000000),금액2(2000000),금액3(3000000); var : cnt(0),sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0); sum1 = 0; For cnt = 0 to max(N1,N2,N3) { if cnt < N1 Then sum1 = sum1 + DayClose(cnt); if cnt < N2 Then sum2 = sum2 + DayClose(cnt); if cnt < N3 Then sum3 = sum3 + DayClose(cnt); } mav1 = sum1/N1; mav2 = sum2/N2; mav3 = sum3/N3; if (MarketPosition == 0 or (MarketPosition == 1 and CountIf(CrossUp(C,mav1),BarsSinceEntry+1) < 1)) and CrossUp(C,mav1) Then Buy("b1",OnClose,DEF,Floor(금액1/C)); if (MarketPosition == 0 or (MarketPosition == 1 and CountIf(CrossUp(C,mav2),BarsSinceEntry+1) < 1)) and CrossUp(C,mav2) Then Buy("b2",OnClose,DEF,Floor(금액2/C)); if (MarketPosition == 0 or (MarketPosition == 1 and CountIf(CrossUp(C,mav3),BarsSinceEntry+1) < 1)) and CrossUp(C,mav3) Then Buy("b3",OnClose,DEF,Floor(금액3/C)); if MarketPosition == 1 Then { ExitLong("Bp1",AtLimit,avgEntryPrice*1.04,"",Floor(MaxContracts*0.5)); ExitLong("Bp2",AtLimit,avgEntryPrice*1.05); ExitLong("Bl",AtStop,avgEntryPrice*0.95); if CrossDown(c,mav1) Then ExitLong("bx1",OnClose,DEF,"b1"); if CrossDown(c,mav2) Then ExitLong("bx2",OnClose,DEF,"b2"); if CrossDown(c,mav3) Then ExitLong("bx3",OnClose,DEF,"b3"); } 즐거운 하루되세요 > 맴맴잉 님이 쓴 글입니다. > 제목 : 시스템식 문의 드립니다. > 업무에 노고가 많으십니다. 항상 감사드립니다. (--)(__) 예전에 분봉에서 일봉상 이평선을 터치했을때 매수 하는 시스템식을 요청한적이 있었는데 아래와 같이 알려주셨습니다. 여기서 조금더 업그레이드 하고 싶어서 요청드립니다. 제가 원하는 이동평균선과 금액을 변수로 해서 매수하는 식을 요청드립니다. 예를들면 분봉차트에서 일봉5일이동평균선 100만원, 일봉7일이동평균선 200만원 매수, 일봉10일이동평균선 300만원 매수 이런식으로 작성하고 싶습니다. 예전에 요청드렸던 식을 같이 보내드립니다. ------------------------------------------------------------------------ input : N(10),금액(10000000); var : cnt(0),sum(0),mav(0); sum = 0; For cnt = 0 to N-1 { sum = sum + DayClose(cnt); } mav = sum/N; if MarketPosition == 0 and CrossUp(C,mav) Then Buy("b",OnClose,DEF,Floor(금액/C)); if MarketPosition == 1 Then { ExitLong("Bp1",AtLimit,avgEntryPrice*1.04,"",Floor(MaxContracts*0.5)); ExitLong("Bp2",AtLimit,avgEntryPrice*1.05); ExitLong("Bl",AtStop,avgEntryPrice*0.95); if CrossDown(c,mav) Then ExitLong("bx"); } -------------------------------------------------------------------------- 감사합니다.