답변완료
문의 드립니다.
안녕하세요.
질문 1.
예스스팟을 이용해서,
가령 코스피200선물을 거래하는 경우,
주간장에서는 10분봉 차트를 이용하고
야간장에서는 5분봉 차트를 이용하는 것이, 예스스팟에 의해 자동으로 선택되게 하는 것이 가능한지요?
가능하다면 소스를 어떻게 짜야 할지 알려 주시면 대단히 감사하겠습니다.
(좀더 일반적으로 표현한다면,
예스스팟을 이용하여,
지정한 시간대에,
지정한 분봉차트 내지 지정한 틱 차트를 바탕으로
매매되게하는 방법)
질문 2.
미체결 주문의 주문번호를 알아 내는 방법 부탁드립니다.
미체결 주문을 취소하기 위해서 주문번호가 필요한데,
SetUnfillIndex를 써서, 루프를 돌려서
// A. Buy 신호 발생.
if (Signal.signalKind == 1)
{
// 전체 미체결 객체 중에 차트 주종목과 같은 종목으로 주문낸 미체결 매수 주문, 미체결 매도 주문이 있는지를 찾음
A_Unfill_Buy_Cond = false; // 미체결 매수 주문이 있으면 true, 없으면 false
A_Unfill_Sell_Cond = false;// 미체결 매도 주문이 있으면 true, 없으면 false
// 사실 이 부분을 위해선, Unfill.count를 이용하는 것도 가능할 텐데...
var NumberOfUnfills = Account1.GetTheNumberOfUnfills();
for (var i=1; i<=NumberOfUnfills; i++)
{
Account1.SetUnfillIndex(i);
var ChartCode = Main.GetOrderCode(Chart1.GetCode(1));
if (Account1.Unfill.code == ChartCode && Account1.Unfill.orderKind == 2)
// 여기에서의 Unfill은 미체결 매수주문을 의미.
{
A_Unfill_Buy_Cond = true;
// 이 때의 i번째 Unfill은 차트 주종목(과 같은 종목)이고, 또 매수 미체결이다.
A_Unfill_Buy_OrderNumber = Account1.Unfill.orderNum
}
if (Account1.Unfill.code == ChartCode && Account1.Unfill.orderKind == 1)
// 여기에서의 Unfill은 미체결 매도 주문을 의미.
{
A_Unfill_Sell_Cond = true;
// 이 때의 i번째 Unfill은 차트 주종목(과 같은 종목)이고, 또 매도 미체결이다.
A_Unfill_Sell_OrderNumber = Account1.Unfill.orderNum
}
이렇게 해 보고 있는데, 실제 적용을 해 보면,
ReferenceError: A_Unfill_Buy_Cond is not defined
ReferenceError: C_Unfill_Buy_OrderNumber is not defined
이런 오류보고가 계속 나옵니다.
(위의 A는 Buy 신호 발생의 경우이고, C는 Sell 신호 발생의 경우입니다).
오타는 최대한 검토해서 없는 것으로 보이는데, 논리적인 문제가 있는 것 같습니다.
위 소스의 문제점을 지적해 주시고 수정해 주셔도 대단히 감사하겠고,
위 소스를 완전히 무시하시고, 미체결 주문의 주문번호를 알아 내는 다른 방법을 알려 주셔도 대단히 감사하겠습니다.
질문 3.
특히, 2번 질문에 대해, Unfill.count를 이용해서 하는 방법이 가능하다면 코드를 알려 주시면 대단히 감사하겠습니다.
감사합니다.
2013-07-31
633
글번호 222478
답변완료
문의 드립니다.
안녕하세요.
매수진입(롱포)-매수청산(롱포청산)-매수진입(롱포)-매수청산(롱포청산)... 이런 과정이 계속되도록 하고 싶은데,
실제로 시스템과 스팟을 실행시키면, 매도(숏)포지션이 발생하고, 또 그 게 두 개 세 개로 쌓이기까지 합니다.
YesSpotHelp 파일 속의 예제4번(취소주문)이나, 또 이 곳의 질의응답 글을 보면서 방법을 찾고 있는데, 이리 저리 해서 고치고 실행시켜도 계속 실제 매매포지션이 쌓이는 현상이 계속되고 있습니다.
아마도
Balance,
Unfill,
NotifyFill,
GetTheNumberOfBalances,
GetTheNumberOfUnfills,
SetBalanceIndex,
SetUnfillIndex
등등을 잘 이용하면 될 듯도 한데 아직까지 성공하지 못했습니다.
그래서, 두 가지로 질문을 요약하여 올리오니, 만일 여러 가지 다양한 방법들이 가능하다면, 가능한 대로 이런 저런 조금씩 다른 방법들도 알려 주시면 대단히 감사하겠습니다.
1. 이미 매도(숏)포지션이 계좌 잔고에 존재한다면, 절대로 다시 스팟에 의한 매도 주문이 나가지 않도록 하는 방법.
2. 또한, 이미 미체결인 매도주문이 존재한다면, 절대로 다시 스팟에 의한 매도 주문이 나가지 않도록 하는 방법.
이 두 문제에 대해서, 위에서 언급드린 Unfill 등을 사용해서라든지, 여하튼 어떤 방법으로라도, 하나만이 아니라 여러가지 가능한 방법들이 있다면 가능하면 다양하게, 해결할 수 있는 방법을 알려 주시면 대단히 감사하겠습니다.
감사합니다.
2013-07-25
1357
글번호 222459