커뮤니티
시스템식 문의드립니다.
2013-09-02 22:04:12
117
글번호 67098
항상 친절한 답변에 감사드립니다.
현물 시스템식을 만들어서 적용하면, 초기의 일정기간은 시스템상의 잔고와 실제잔고가 맞지 않아서, 시스템식에서 부분매도신호가 발생하였으나, 실제 보유종목의 수량이 부족하여 매도주문에러가 발생하는 경우가 있습니다.
이러한 에러를 방지하기 위하여 잔고함수의 GetPisitionQuantity와 GetPositionAveragePrice를 이용하여 실제보유종목의 총금액이 시스템식의 부분매도금액보다 작을경우에는 부분매도신호가 발생하지 않게 하고 싶습니다.
그런데 잔고함수 도움말을 보면 선물계좌(화면창 1201)에서만 설명이 되어 있어서, 현물에서는 불가능하다는 뜻인지? 궁금해서 문의드립니다.
혹시 현물에서도 잔고함수의 활용이 가능하다면, 위의 논리식을 어떻게 만들어야 할지 문의드립니다.
예을들어서
계좌번호 1111-2222-11
보유종목 KODEX200(069500)이라고하고
실제보유종목총금액 = GetPisitionQuantity * GetPositionAveragePrice;
if 시스템부분매도금액 <= 실제보유종목총금액
and
CrossDown(단기평균, 장기평균)
then
ExitLong("매도" ......
답변 1
예스스탁 예스스탁 답변
2013-09-03 10:49:40
안녕하세요
예스스탁입니다.
잔고함수는 현물에서도 사용가능합니다.
잔고함수의 경우 진입신호시에 수량을 지정하는 부분을 제외하고는
실제 사용가능한 부분이 많이 없습니다.
시스템에서는 진입신호시에 발생된 신호상 수량이 모두 청산되지 않으면 다음 진입이 발생하지를 않습니다.
즉 진입에서 100개의 수량으로 진입신호가 발생했다면 신호상 100개를 모두 청산하지 않으면
신호상 현재 보유중이기 때문에 다음 진입이 발생하지 않게 됩니다.
또한 실시간 현재봉을 제외하고 과거봉에서는 잔고함수가 값을 리턴하지 않으므로
과거봉에서 신호를 발생시킬수 있게 분리해서 작성해 주셔야 합니다.
식작성에 유의하시기 바랍니다.
var1 = GetPositionQuantity("069500","1111-2222-11");
var2 = GetPositionAveragePrice("069500","1111-2222-11");
var3 = var1*var2;
if var1 > 0 Then{ //현재봉
if 시스템부분매도금액 <= var3 and CrossDown(단기평균, 장기평균) then
ExitLong("매도",OnClose,def,"",var1,1);
}
else // 과거(시뮬레이션) 봉에서 신호발생
{
if CrossDown(단기평균, 장기평균) then
ExitLong("매도1");
}
즐거운 하루되세요
> 최선 님이 쓴 글입니다.
> 제목 : 시스템식 문의드립니다.
> 항상 친절한 답변에 감사드립니다.
현물 시스템식을 만들어서 적용하면, 초기의 일정기간은 시스템상의 잔고와 실제잔고가 맞지 않아서, 시스템식에서 부분매도신호가 발생하였으나, 실제 보유종목의 수량이 부족하여 매도주문에러가 발생하는 경우가 있습니다.
이러한 에러를 방지하기 위하여 잔고함수의 GetPisitionQuantity와 GetPositionAveragePrice를 이용하여 실제보유종목의 총금액이 시스템식의 부분매도금액보다 작을경우에는 부분매도신호가 발생하지 않게 하고 싶습니다.
그런데 잔고함수 도움말을 보면 선물계좌(화면창 1201)에서만 설명이 되어 있어서, 현물에서는 불가능하다는 뜻인지? 궁금해서 문의드립니다.
혹시 현물에서도 잔고함수의 활용이 가능하다면, 위의 논리식을 어떻게 만들어야 할지 문의드립니다.
예을들어서
계좌번호 1111-2222-11
보유종목 KODEX200(069500)이라고하고
실제보유종목총금액 = GetPisitionQuantity * GetPositionAveragePrice;
if 시스템부분매도금액 <= 실제보유종목총금액
and
CrossDown(단기평균, 장기평균)
then
ExitLong("매도" ......
다음글
이전글