커뮤니티

시스템식 문의 드립니다.

프로필 이미지
맴맴잉
2021-08-29 15:37:04
1075
글번호 151834
답변완료
기존의 식을 업데이트 하고자 시스템식 작성을 요청드립니다. 기존의 식을 간략하게 요청드리자면 타점을 여러개를 적어놓고 그중에 조건에 부여하는 한 타점에 대해서 분할매수, 분할매도 하거나 손절청산 하는 전략이였는데 해당식을 아래와 같이 업데이트 하고자 합니다. 부탁드리겠습니다. 업데이트 내용 1. 타점선택 조건은 기존과 동일. 2. 타점 1번부터 5번까지중 만약에 조건에 해당되는 타점이 2번이라고 했을경우 타점2 에서 매수후 +1%로 되면 익절청산후 시간이 오후 1시 이전이라면 재매수 가능 만약에 매수후 -1%가 되면 손절청산 3. 위의 2번내용에서 -1%로 손절청산된다면, 시간이 오후 1시 이전이라면 타점3이 매수타점으로 변경 4. 타점3 에서 매수후 +1%로 되면 익절청산후 시간이 오후 1시 이전이라면 재매수 가능 만약에 매수후 -1%가 되면 손절청산 5. 위의 4번내용에서 -1%로 손절청산된다면, 시간이 오후 1시 이전이라면 타점4이 매수타점으로 변경 6. 타점4 에서 매수후 +1%로 되면 익절청산후 시간이 오후 1시 이전이라면 재매수 가능 만약에 매수후 -1%가 되면 손절청산 간략하게 다시 설명 드리자면 조건에 해당되는 타점에서 +1프로면 익절청산, -1프로면 손절청산되고, 다음타점에서 매수대기.. 이런식의 시퀀스대로 흘러가는 시스템식으로 업데이트하고자 합니다. 잘부탁드리겠습니다. 그럼 기존에 작성했던 식을 같이 첨부하겠습니다. ------------------------------------------------------------ input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액1(1000000),투자금액2(2000000); var : entry(False),HH(0); if Bdate != Bdate[1] Then { entry = true; #5개의 타점중 시가보다 작은것 중에 젤 큰값 계산 HH = 0; if 타점1 < DayOpen and 타점1 > HH Then HH = 타점1; if 타점2 < DayOpen and 타점2 > HH Then HH = 타점2; if 타점3 < DayOpen and 타점3 > HH Then HH = 타점3; if 타점4 < DayOpen and 타점4 > HH Then HH = 타점4; if 타점5 < DayOpen and 타점5 > HH Then HH = 타점5; } if TotalTrades > TotalTrades[1] and IsExitName("손절",1) == true Then entry = False; if MarketPosition == 0 and sTime < 130000 and entry == true Then { Buy("1차매수",AtLimit,HH,Floor(투자금액1/min(NextBarOpen,HH))); } if MarketPosition == 1 Then { Buy("2차매수.",AtLimit,HH*0.977,Floor(투자금액2/min(NextBarOpen,HH*0.98))); } if MarketPosition == 1 Then { if MaxEntries == 1 Then { ExitLong("1차매수2프로익절",AtLimit,avgEntryPrice*1.02,"",Floor(MaxContracts*0.3)); ExitLong("1차매수3프로익절",AtLimit,avgEntryPrice*1.03,"",Floor(MaxContracts*0.4)); ExitLong("1차매수4프로익절",AtLimit,avgEntryPrice*1.04); } if MaxEntries == 2 Then { ExitLong("2차매수1프로익절",AtLimit,avgEntryPrice*1.01,"",Floor(MaxContracts*0.3)); ExitLong("2차매수2프로익절",AtLimit,avgEntryPrice*1.02,"",Floor(MaxContracts*0.4)); ExitLong("2차매수3프로익절",AtLimit,avgEntryPrice*1.03); } ExitLong("손절",AtStop,avgEntryPrice*0.97); } SetStopEndofday(151800);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-09-01 09:51:51

안녕하세요 예스스탁입니다. input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액(1000000); var : HH(0),hi(0); Array : VV[6](0); vv[1] = 타점1; vv[2] = 타점2; vv[3] = 타점3; vv[4] = 타점4; vv[5] = 타점5; if Bdate != Bdate[1] Then { HH = 0; hi = 0; if vv[1] < DayOpen and vv[1] > HH Then { HH = vv[1]; hi = 1; } if vv[2] < DayOpen and vv[2] > HH Then { HH = vv[2]; hi = 2; } if vv[3] < DayOpen and vv[3] > HH Then { HH = vv[3]; hi = 3; } if vv[4] < DayOpen and vv[4] > HH Then { HH = vv[4]; hi = 4; } if vv[5] < DayOpen and vv[5] > HH Then { HH = vv[5]; hi = 5; } } if TotalTrades > TotalTrades[1] and IsExitName("손절",1) ==true Then hi = hi-1; if MarketPosition == 0 and sTime < 130000 and hi > 0 Then { Buy("매수",AtLimit,VV[hi],Floor(투자금액/min(NextBarOpen,HH))); } if MarketPosition == 1 Then { ExitLong("익절",AtLimit,avgEntryPrice*1.01); ExitLong("손절",AtStop,avgEntryPrice*0.99); } SetStopEndofday(151800); 즐거운 하루되세요 > 맴맴잉 님이 쓴 글입니다. > 제목 : 시스템식 문의 드립니다. > 기존의 식을 업데이트 하고자 시스템식 작성을 요청드립니다. 기존의 식을 간략하게 요청드리자면 타점을 여러개를 적어놓고 그중에 조건에 부여하는 한 타점에 대해서 분할매수, 분할매도 하거나 손절청산 하는 전략이였는데 해당식을 아래와 같이 업데이트 하고자 합니다. 부탁드리겠습니다. 업데이트 내용 1. 타점선택 조건은 기존과 동일. 2. 타점 1번부터 5번까지중 만약에 조건에 해당되는 타점이 2번이라고 했을경우 타점2 에서 매수후 +1%로 되면 익절청산후 시간이 오후 1시 이전이라면 재매수 가능 만약에 매수후 -1%가 되면 손절청산 3. 위의 2번내용에서 -1%로 손절청산된다면, 시간이 오후 1시 이전이라면 타점3이 매수타점으로 변경 4. 타점3 에서 매수후 +1%로 되면 익절청산후 시간이 오후 1시 이전이라면 재매수 가능 만약에 매수후 -1%가 되면 손절청산 5. 위의 4번내용에서 -1%로 손절청산된다면, 시간이 오후 1시 이전이라면 타점4이 매수타점으로 변경 6. 타점4 에서 매수후 +1%로 되면 익절청산후 시간이 오후 1시 이전이라면 재매수 가능 만약에 매수후 -1%가 되면 손절청산 간략하게 다시 설명 드리자면 조건에 해당되는 타점에서 +1프로면 익절청산, -1프로면 손절청산되고, 다음타점에서 매수대기.. 이런식의 시퀀스대로 흘러가는 시스템식으로 업데이트하고자 합니다. 잘부탁드리겠습니다. 그럼 기존에 작성했던 식을 같이 첨부하겠습니다. ------------------------------------------------------------ input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액1(1000000),투자금액2(2000000); var : entry(False),HH(0); if Bdate != Bdate[1] Then { entry = true; #5개의 타점중 시가보다 작은것 중에 젤 큰값 계산 HH = 0; if 타점1 < DayOpen and 타점1 > HH Then HH = 타점1; if 타점2 < DayOpen and 타점2 > HH Then HH = 타점2; if 타점3 < DayOpen and 타점3 > HH Then HH = 타점3; if 타점4 < DayOpen and 타점4 > HH Then HH = 타점4; if 타점5 < DayOpen and 타점5 > HH Then HH = 타점5; } if TotalTrades > TotalTrades[1] and IsExitName("손절",1) == true Then entry = False; if MarketPosition == 0 and sTime < 130000 and entry == true Then { Buy("1차매수",AtLimit,HH,Floor(투자금액1/min(NextBarOpen,HH))); } if MarketPosition == 1 Then { Buy("2차매수.",AtLimit,HH*0.977,Floor(투자금액2/min(NextBarOpen,HH*0.98))); } if MarketPosition == 1 Then { if MaxEntries == 1 Then { ExitLong("1차매수2프로익절",AtLimit,avgEntryPrice*1.02,"",Floor(MaxContracts*0.3)); ExitLong("1차매수3프로익절",AtLimit,avgEntryPrice*1.03,"",Floor(MaxContracts*0.4)); ExitLong("1차매수4프로익절",AtLimit,avgEntryPrice*1.04); } if MaxEntries == 2 Then { ExitLong("2차매수1프로익절",AtLimit,avgEntryPrice*1.01,"",Floor(MaxContracts*0.3)); ExitLong("2차매수2프로익절",AtLimit,avgEntryPrice*1.02,"",Floor(MaxContracts*0.4)); ExitLong("2차매수3프로익절",AtLimit,avgEntryPrice*1.03); } ExitLong("손절",AtStop,avgEntryPrice*0.97); } SetStopEndofday(151800);