커뮤니티
ExitLong에서 계약수량을 지정해도 한꺼번에 청산되는가요?
2011-06-17 17:20:39
676
글번호 39910
다음과 같이 분할매수,분할매도 프로그램을 작성하였습니다.
매수식
Buy("B", OnClose, BuyPrice, Contracts);
Position = Position + 1;
MessageLog("콜매수(%.0f), 종가=%.2f, 주문가격=%.2f", Position, Close, BuyPrice);
매도식
if (DayTrade && stime >= 143900) then // 14시 39분
{
ExitShort("XL",AtMarket,BuyPrice,"B", Contracts);
MessageLog("콜매수 당일청산(%.0f), 종가=%.2f", Position, Close);
Position = Position + 1;
}
시뮬레이션으로 돌리니 메세지로그와 신호표시가 다르게 보입니다.
피라미딩에 모든진입신호허용했으니 2계약 매수되었는데 매도의 경우 차트는 왜 한꺼번에 ExitLong된걸로 표시되는지 알려주세요.
답변 1
예스스탁 예스스탁 답변
2011-06-20 08:52:39
안녕하세요
예스스탁입니다.
청산함수의 5번째/6번째 매개변수는 수량과 수량옵션입니다.
수량옵션을 생략하시거나 0으로 지정하시면
진입당 지정한 수량만큼 빼서 청산하게 되고, 1로 설정하시면
전체수량에서 지정된 수량만큼만 청산하게 됩니다.
가령 매수진입수량이 1계약이고 두번 피라미딩되었고
청산수량을 1계약으로 수량옵션을 0(혹은생략)으로 할경우
진입당 1계약씩 청산하므로 현재 들어간 2개의 진입 모두 청산이되고
수량옵션을 1로 할경우 2계약 중 하나가 청산이 되어 1계약이 남게 됩니다.
현재 작성하신 식은 수량옵션을 0으로 한것과 같으므로
2개의 진입 모두 청산된 것입니다.
ExitLong("XL",AtMarket,def,"B", Contracts,1);
와 같이 작성하셔야 합니다.
참고로 onclose나 atmarket은 따로 신호가격을 설정하는 타입이 아닙니다.
def로 작성하시면 됩니다.
즐거운 하루되세요
> 고무 님이 쓴 글입니다.
> 제목 : ExitLong에서 계약수량을 지정해도 한꺼번에 청산되는가요?
>
다음과 같이 분할매수,분할매도 프로그램을 작성하였습니다.
매수식
Buy("B", OnClose, BuyPrice, Contracts);
Position = Position + 1;
MessageLog("콜매수(%.0f), 종가=%.2f, 주문가격=%.2f", Position, Close, BuyPrice);
매도식
if (DayTrade && stime >= 143900) then // 14시 39분
{
ExitShort("XL",AtMarket,BuyPrice,"B", Contracts);
MessageLog("콜매수 당일청산(%.0f), 종가=%.2f", Position, Close);
Position = Position + 1;
}
시뮬레이션으로 돌리니 메세지로그와 신호표시가 다르게 보입니다.
피라미딩에 모든진입신호허용했으니 2계약 매수되었는데 매도의 경우 차트는 왜 한꺼번에 ExitLong된걸로 표시되는지 알려주세요.