커뮤니티
55624번글 분할매매 관련 재질문
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
이런 식으로 고쳐주면 될까요?
다음글
이전글