커뮤니티

궁금한점이 있어 요청드립니다.

프로필 이미지
맴맴잉
2021-09-24 14:32:44
892
글번호 152438
답변완료
안녕하세요 항상감사드립니다. 지난번에 요청드린 시스템식에서 좀더 필요한조건이 있는데.. 수식작성이 어려워 요청드립니다. 아래의 기존식에서 1차 매수후 1타점 익절, 2타점 익절 , 마지막 3타점 익절이 남았는데 3타점 익절이 오기전에 하락하게 되면 2차매수가 진행되도록 수식이 짜여져 있습니다. 여기서 2타점 익절후에 하락하더라도 2차매수가 진행 안되도록 수식을 수정하고 싶습니다. (참고로 1타점 익절 후에는 하락해도 기존식과 동일하게 2차매수가 진행) 부탁드립니다. ------------------------------------------------- 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] Then entry = False; if MarketPosition == 0 and HH > 0 and DayOpen > HH and sTime < 130000 and entry == 0 Then { Buy("1차매수",AtLimit,HH,Floor(투자금액1/min(NextBarOpen,HH))); } if MarketPosition == 1 and DayOpen > HH Then { Buy("2차매수.",AtLimit,HH*0.98,Floor(투자금액2/min(NextBarOpen,타점1*0.98))); } if MarketPosition == 1 Then { if MaxEntries == 1 Then { ExitLong("1차익절1",AtLimit,avgEntryPrice*1.02,"",Floor(MaxContracts*0.3)); ExitLong("1차익절2",AtLimit,avgEntryPrice*1.03,"",Floor(MaxContracts*0.4)); ExitLong("1차익절3",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-24 15:04:23

안녕하세요 예스스탁입니다. input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액1(1000000),투자금액2(2000000); var : entry(False),HH(0),X2(False); 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] Then entry = False; if MarketPosition == 0 and HH > 0 and DayOpen > HH and sTime < 130000 and entry == 0 Then { Buy("1차매수",AtLimit,HH,Floor(투자금액1/min(NextBarOpen,HH))); } if MarketPosition == 1 Then { if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "1차익절2" Then X2 = true; if DayOpen > HH and X2 == False Then { Buy("2차매수.",AtLimit,HH*0.98,Floor(투자금액2/min(NextBarOpen,타점1*0.98))); } if MaxEntries == 1 Then { ExitLong("1차익절1",AtLimit,avgEntryPrice*1.02,"",Floor(MaxContracts*0.3)); ExitLong("1차익절2",AtLimit,avgEntryPrice*1.03,"",Floor(MaxContracts*0.4)); ExitLong("1차익절3",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); } Else X2 = False; SetStopEndofday(151800); 즐거운 하루되세요 > 맴맴잉 님이 쓴 글입니다. > 제목 : 궁금한점이 있어 요청드립니다. > 안녕하세요 항상감사드립니다. 지난번에 요청드린 시스템식에서 좀더 필요한조건이 있는데.. 수식작성이 어려워 요청드립니다. 아래의 기존식에서 1차 매수후 1타점 익절, 2타점 익절 , 마지막 3타점 익절이 남았는데 3타점 익절이 오기전에 하락하게 되면 2차매수가 진행되도록 수식이 짜여져 있습니다. 여기서 2타점 익절후에 하락하더라도 2차매수가 진행 안되도록 수식을 수정하고 싶습니다. (참고로 1타점 익절 후에는 하락해도 기존식과 동일하게 2차매수가 진행) 부탁드립니다. ------------------------------------------------- 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] Then entry = False; if MarketPosition == 0 and HH > 0 and DayOpen > HH and sTime < 130000 and entry == 0 Then { Buy("1차매수",AtLimit,HH,Floor(투자금액1/min(NextBarOpen,HH))); } if MarketPosition == 1 and DayOpen > HH Then { Buy("2차매수.",AtLimit,HH*0.98,Floor(투자금액2/min(NextBarOpen,타점1*0.98))); } if MarketPosition == 1 Then { if MaxEntries == 1 Then { ExitLong("1차익절1",AtLimit,avgEntryPrice*1.02,"",Floor(MaxContracts*0.3)); ExitLong("1차익절2",AtLimit,avgEntryPrice*1.03,"",Floor(MaxContracts*0.4)); ExitLong("1차익절3",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); ----------------------------------------------------