커뮤니티

55624번글 분할매매 관련 재질문

프로필 이미지
ajs
2017-11-29 20:34:41
141
글번호 114579
답변완료
질문을 통해 아래와 같은 수식(기준자산을 3등분하여 매수/매도)을 받았습니다. input : 기준자산(50000000); if MarketPosition == 0 and stime == 143000 Then{ //새벽 2시30분이면 023000 var1 = 기준자산*(1/3); buy("b1",OnClose,def,Floor(var1/C)); } if MarketPosition == 1 and stime == 143100 Then{ //새벽 2시31분이면 023100 var1 = 기준자산*(1/3); buy("b2",OnClose,def,Floor(var1/C)); } if MarketPosition == 1 and stime == 143200 Then{ //새벽 2시32분이면 023200 var1 = 기준자산*(1/3); buy("b3",OnClose,def,Floor(var1/C)); } if MarketPosition == 1 and sdate > EntryDate then{ if stime == 90500 Then ExitLong("bx1",OnClose,def,"",floor(MaxContracts*(1/3)),1); if stime == 90600 Then ExitLong("bx2",OnClose,def,"",floor(MaxContracts*(1/3)),1); if stime == 90700 Then ExitLong("bx3"); } 1. 수능일처럼 개장시간이 늦추어진 날의 다음날 오류가 발생합니다. (수능일 당연히 매도주문은 나가지 않고, 수능일+1일에 첫번째 매수-b1- 실행되지 않고, 수능일+2일 9시대에 앞선 2일간의 누적량 한꺼번에 매도) 3열의 "MarketPosition == 0 and" 부분을 삭제하면 수능일+1일 b1이 실행되는데, 삭제해도 문제 없을까요? 2. 개장시간이 늦추어져서 9시대의 매도 주문이 실행되지 않은 것이 근본적인 원인인 것 같은데, "9시대의 매도주문이 나가지 않은 경우(개장이 9시 이후로 늦추어진 경우) 개장 시 전량매도"같은 규칙을 넣을 수 있을까요? 3. 거래량이 없어 경우 봉차트가 생성되지 않은 경우 주문이 나가지 않는 것 같습니다. (3열을 예로 들면) if MarketPosition == 0 and stime == 143000 or (stime > 143000 and stime[1] < 143000) Then 이런 식으로 고쳐주면 될까요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-11-30 10:49:49

안녕하세요 예스스탁입니다. 개장시간에 때라 매도시간이 조절되게 작성해 드립니다. 10시전이면 매도를 9시5분,10시6분,10시7분에 하고 10시이후이면 10시5분,10시6분,10시7분에 하게 수정했습니다. 지정한 시간의 봉이 없으면 다음봉에 신호 발생하게 수정해 드립니다. input : 기준자산(50000000); var : ET1(0),ET2(0),ET3(0); if Bdate != Bdate[1] Then{ if stime < 100000 Then { ET1 = 90500; ET2 = 90600; ET3 = 90700; } else { ET1 = 100500; ET2 = 100600; ET3 = 100700; } } if stime == 143000 or (stime > 143000 and stime[1] < 143000) Then{ var1 = 기준자산*(1/3); buy("b1",OnClose,def,Floor(var1/C)); } if stime == 143100 or (stime > 143200 and stime[1] < 143100) Then{ var1 = 기준자산*(1/3); buy("b2",OnClose,def,Floor(var1/C)); } if stime == 143200 or (stime > 143200 and stime[1] < 143200) Then{ var1 = 기준자산*(1/3); buy("b3",OnClose,def,Floor(var1/C)); } if MarketPosition == 1 and sdate > EntryDate then{ if stime == ET1 or (stime > ET1 and stime[1] < ET1) Then ExitLong("bx1",OnClose,def,"",floor(MaxContracts*(1/3)),1); if stime == ET2 or (stime > ET2 and stime[1] < ET2) Then ExitLong("bx2",OnClose,def,"",floor(MaxContracts*(1/3)),1); if stime == ET3 or (stime > ET3 and stime[1] < ET3) Then ExitLong("bx3"); } 즐거운 하루되세요 > ajs 님이 쓴 글입니다. > 제목 : 55624번글 분할매매 관련 재질문 > 질문을 통해 아래와 같은 수식(기준자산을 3등분하여 매수/매도)을 받았습니다. input : 기준자산(50000000); if MarketPosition == 0 and stime == 143000 Then{ //새벽 2시30분이면 023000 var1 = 기준자산*(1/3); buy("b1",OnClose,def,Floor(var1/C)); } if MarketPosition == 1 and stime == 143100 Then{ //새벽 2시31분이면 023100 var1 = 기준자산*(1/3); buy("b2",OnClose,def,Floor(var1/C)); } if MarketPosition == 1 and stime == 143200 Then{ //새벽 2시32분이면 023200 var1 = 기준자산*(1/3); buy("b3",OnClose,def,Floor(var1/C)); } if MarketPosition == 1 and sdate > EntryDate then{ if stime == 90500 Then ExitLong("bx1",OnClose,def,"",floor(MaxContracts*(1/3)),1); if stime == 90600 Then ExitLong("bx2",OnClose,def,"",floor(MaxContracts*(1/3)),1); if stime == 90700 Then ExitLong("bx3"); } 1. 수능일처럼 개장시간이 늦추어진 날의 다음날 오류가 발생합니다. (수능일 당연히 매도주문은 나가지 않고, 수능일+1일에 첫번째 매수-b1- 실행되지 않고, 수능일+2일 9시대에 앞선 2일간의 누적량 한꺼번에 매도) 3열의 "MarketPosition == 0 and" 부분을 삭제하면 수능일+1일 b1이 실행되는데, 삭제해도 문제 없을까요? 2. 개장시간이 늦추어져서 9시대의 매도 주문이 실행되지 않은 것이 근본적인 원인인 것 같은데, "9시대의 매도주문이 나가지 않은 경우(개장이 9시 이후로 늦추어진 경우) 개장 시 전량매도"같은 규칙을 넣을 수 있을까요? 3. 거래량이 없어 경우 봉차트가 생성되지 않은 경우 주문이 나가지 않는 것 같습니다. (3열을 예로 들면) if MarketPosition == 0 and stime == 143000 or (stime > 143000 and stime[1] < 143000) Then 이런 식으로 고쳐주면 될까요?