커뮤니티

수식부탁드립니다.

프로필 이미지
탄탄시스템
2017-02-07 17:26:40
2649
글번호 224114
답변완료

첨부 이미지

항상 감사를 드리며, 덕분에 많은 발전을 하고 있습니다. 질문은 두가지입니다. 1. 기존 시스템로직에서 특정한 주문만 스팟으로 조건만족시 주문낼 수 있는지 궁금합니다. 아래 그림의 기본수식에서 매수와 매도는 일봉기준으로 봉 완성시 즉 다음날 시초가에 주문나가게 그냥 두고 일부매도 주문만 장중에 조건을 만족하면 즉시 전체 비중의 30% 매도주문이 나가게끔 설정하고 싶습니다. 아니면 기존 시스템로직에 일부매도 주문을 빼고 스팟으로만 일부매도 주문명령을 내려도 됩니다. 2. 시스템로직에서 트레일링스탑이나 스탑로스같은 명령은 그 주문건 전체가 매도가 되는데, 각각 주문건에 대한 주문이 나가는 것이 아니라 전체 주문건에 대한 평균값으로 트레일링스탑탑이나 스탑로스를 걸 수 있는지 궁금합니다. 예를 들어 매수가 5건이 발생된 상황에서 개별주문건에 대한 조건값이 아니라 전체 평균값에 대한 수익 5% 달성시 트레이링스탑주문이 가동되고 1% 하락시 전체비중의 30%에 해당하는 수량을 주문할 수 있는 명령을 알고 싶습니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-03-02 14:41:13

안녕하세요 예스스탁입니다. 올려주신 내용은 따로 스팟에서 구현하는 부분이 아니라 예스랭귀지로 구현하셔야 할 부분입니다. 1 아래식 분봉차트에 적요하시면 됩니다. 일부매도는 전봉대비 현재봉종가가 5%상승하면 매도한다는 내용입니다. 진입만 일봉조건으로 진입하게 수정하고 청산은 전일종가대비 5%상승하면 즉시 일부청산되게 하시면 됩니다. input : P5(5),P20(20); var : cnt(0),sum1(0),sum11(0),sum2(0),sum22(0); var : mav1(0),mav11(0),mav2(0),mav22(0); #일봉이평 계산 sum1 = 0; sum11 = 0; sum2 = 0; sum22 = 0; for cnt = 0 to P20{ if cnt < P5 then{ sum1 = sum1 + DayClose(cnt); sum11 = sum11 + DayClose(cnt+1); } if cnt < P20 then{ sum2 = sum2 + DayClose(cnt); sum22 = sum22 + DayClose(cnt+1); } } mav1 = sum1/P5; mav11 = sum11/P5; mav2 = sum2/P20; mav22 = sum22/P20; if NextBarSdate > sdate then{ if mav1 > mav2 and mav11 < mav22 Then buy("매수",OnClose,def,Floor(2000000/C)); if mav1 < mav2 and mav11 > mav22 Then sell("매도"); } if MarketPosition == 1 Then ExitLong("1/3매도",AtStop,DayClose(1)*1.05,"",Floor(CurrentContracts*0.33),1); 2 마찬가지로 아래도 예스랭귀지 수식입니다. 평단가 기준으로 구동되는 식입니다. input : 손절틱수(20), 최소수익틱수(20), 수익감소틱수(10); var : HH(0),LL(0); if MarketPosition == 1 Then{ ExitLong("bx",AtStop,AvgEntryPrice-PriceScale*손절틱수); if CurrentContracts > CurrentContracts[1] Then HH = H; if H > HH Then HH = H; if HH >= AvgEntryPrice+PriceScale*최소수익틱수 Then ExitLong("btr",AtStop,HH-PriceScale*수익감소틱수); } if MarketPosition == -1 Then{ ExitShort("sx",AtStop,AvgEntryPrice+PriceScale*손절틱수); if CurrentContracts > CurrentContracts[1] Then LL = L; if L < LL Then LL = L; if LL <= AvgEntryPrice-PriceScale*최소수익틱수 Then ExitShort("str",AtStop,LL+PriceScale*수익감소틱수); } 즐거운 하루되세요 > 탄탄시스템 님이 쓴 글입니다. > 제목 : 수식부탁드립니다. > 항상 감사를 드리며, 덕분에 많은 발전을 하고 있습니다. 질문은 두가지입니다. 1. 기존 시스템로직에서 특정한 주문만 스팟으로 조건만족시 주문낼 수 있는지 궁금합니다. 아래 그림의 기본수식에서 매수와 매도는 일봉기준으로 봉 완성시 즉 다음날 시초가에 주문나가게 그냥 두고 일부매도 주문만 장중에 조건을 만족하면 즉시 전체 비중의 30% 매도주문이 나가게끔 설정하고 싶습니다. 아니면 기존 시스템로직에 일부매도 주문을 빼고 스팟으로만 일부매도 주문명령을 내려도 됩니다. 2. 시스템로직에서 트레일링스탑이나 스탑로스같은 명령은 그 주문건 전체가 매도가 되는데, 각각 주문건에 대한 주문이 나가는 것이 아니라 전체 주문건에 대한 평균값으로 트레일링스탑탑이나 스탑로스를 걸 수 있는지 궁금합니다. 예를 들어 매수가 5건이 발생된 상황에서 개별주문건에 대한 조건값이 아니라 전체 평균값에 대한 수익 5% 달성시 트레이링스탑주문이 가동되고 1% 하락시 전체비중의 30%에 해당하는 수량을 주문할 수 있는 명령을 알고 싶습니다.