커뮤니티

시스템식 문의 드립니다.

프로필 이미지
맴맴잉
2021-08-12 22:22:04
1363
글번호 151502
답변완료

첨부 이미지

제가 만들어서 사용하고 있는 수식 (주식현물)이 있는데.. 업그레이드를 하고 싶은데 막히는 부분이 있어 요청드립니다. 만든식을 대략 설명해드리자면, 전날 매수하고 싶은 금액을 설정해놓으면 다음날 시가와 비교해서 그 금액이 오면 매수 하는 시스템식입니다. 내가 만든식 -------------------------------------------------------- input : 타점1(3000); input : 타점1투자금액(1000000),타점2투자금액(2000000); var : entry(False); if Bdate != Bdate[1] Then entry == 0; if TotalTrades > TotalTrades[1] Then entry = False; if MarketPosition == 0 and DayOpen*0.99 >= 타점1 and sTime < 130000 and entry == 0 Then { Buy("1차매수",AtLimit,타점1,Floor(타점1투자금액/min(NextBarOpen,타점1))); } if MarketPosition == 1 and DayOpen >= 타점1 Then { Buy("2차매수.",AtLimit,타점1*0.98,Floor(타점2투자금액/min(NextBarOpen,타점1*0.98))); } if MarketPosition == 1 Then { ExitLong("2프로익절",AtLimit,avgEntryPrice*1.022,"",Floor(MaxContracts*0.3)); ExitLong("3프로익절",AtLimit,avgEntryPrice*1.032,"",Floor(MaxContracts*0.4)); ExitLong("4프로익절",AtLimit,avgEntryPrice*1.042); ExitLong("-3프로손절",AtStop,avgEntryPrice*0.97); } SetStopEndofday(151800); -------------------------------------------------------------- 여기서 추가하고 싶은 조건은 추가조건 1 위의 그림처럼 타점을 여러개를 설정해놓고 해당되는 조건 ( 당일 시가보다 작은 수중에서 가장 큰수를 선택)에 한가지 타점을 결정해서 선택하는 조건입니다. 추가조건2 그리고 또 추가하고 싶은 조건은 현재 매수후에 1차매수를 하건 2차매수를 하건 2% , 3%, 4% 분할매도하는 식으로 작성하였는데.. 변경하고 싶은건 1차매수를 하면 2%, 3%, 4% 분할매도 하고 만약에 2차매수까지 진행되면 1%, 2%, 3% 로 분할매도 변경하는식으로 조건을 추가하고 싶습니다. 추가조건 3 만약에 손절청산을 했다면, 재진입금지 조건도 추가하고 싶습니다. 해당시스템식 부탁드립니다. 항상 감사드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-08-13 11:16:39

안녕하세요 예스스탁입니다. 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); 2 기존식이 청산후 당일 진입을 금지하는 내용이 있습니다. 손절청산시에만 당일진입을 금지하시면 아래와 같이 변경하시면 됩니다. 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 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); 즐거운 하루되세요 > 맴맴잉 님이 쓴 글입니다. > 제목 : 시스템식 문의 드립니다. > 제가 만들어서 사용하고 있는 수식 (주식현물)이 있는데.. 업그레이드를 하고 싶은데 막히는 부분이 있어 요청드립니다. 만든식을 대략 설명해드리자면, 전날 매수하고 싶은 금액을 설정해놓으면 다음날 시가와 비교해서 그 금액이 오면 매수 하는 시스템식입니다. 내가 만든식 -------------------------------------------------------- input : 타점1(3000); input : 타점1투자금액(1000000),타점2투자금액(2000000); var : entry(False); if Bdate != Bdate[1] Then entry == 0; if TotalTrades > TotalTrades[1] Then entry = False; if MarketPosition == 0 and DayOpen*0.99 >= 타점1 and sTime < 130000 and entry == 0 Then { Buy("1차매수",AtLimit,타점1,Floor(타점1투자금액/min(NextBarOpen,타점1))); } if MarketPosition == 1 and DayOpen >= 타점1 Then { Buy("2차매수.",AtLimit,타점1*0.98,Floor(타점2투자금액/min(NextBarOpen,타점1*0.98))); } if MarketPosition == 1 Then { ExitLong("2프로익절",AtLimit,avgEntryPrice*1.022,"",Floor(MaxContracts*0.3)); ExitLong("3프로익절",AtLimit,avgEntryPrice*1.032,"",Floor(MaxContracts*0.4)); ExitLong("4프로익절",AtLimit,avgEntryPrice*1.042); ExitLong("-3프로손절",AtStop,avgEntryPrice*0.97); } SetStopEndofday(151800); -------------------------------------------------------------- 여기서 추가하고 싶은 조건은 추가조건 1 위의 그림처럼 타점을 여러개를 설정해놓고 해당되는 조건 ( 당일 시가보다 작은 수중에서 가장 큰수를 선택)에 한가지 타점을 결정해서 선택하는 조건입니다. 추가조건2 그리고 또 추가하고 싶은 조건은 현재 매수후에 1차매수를 하건 2차매수를 하건 2% , 3%, 4% 분할매도하는 식으로 작성하였는데.. 변경하고 싶은건 1차매수를 하면 2%, 3%, 4% 분할매도 하고 만약에 2차매수까지 진행되면 1%, 2%, 3% 로 분할매도 변경하는식으로 조건을 추가하고 싶습니다. 추가조건 3 만약에 손절청산을 했다면, 재진입금지 조건도 추가하고 싶습니다. 해당시스템식 부탁드립니다. 항상 감사드립니다.