초보단계임을 감안해주시기 바라며 문의드립니다.
매수 3개를 주문했는데 2개가 체결되고 1개가 미체결 상태라면 신규 매수는 않되도록 하고 나머지 1개가 매수조건에 만족하면 체결되거나, 매도 조건이 되면 매도 조건에 따라 지정한 수량으로 매수된 수량한도내에서 청산되도록 하고,다른 예로 매도 3개 체결된 상태에서 청산조건이 되어 2개는 매수청산되고 1개는 매수 청산대기 상태에서 신규 매수조건에 만족되더라도 매수대기상태 즉 미체결 주문이 있다면 신규 매수주문이 않되도톡 하는 참조수식 부탁드립니다
답변 1
예스스탁
예스스탁 답변
2018-07-26 17:32:02
안녕하세요
예스스탁입니다.
올려주신 내용은 미체결셋팅함수와 잔고셋팅 함수를 활용하시면 됩니다.
이벤트와 진입/청산조건은 알수 없어차트 신호발생으로 지정했습니다.
아래 내용 참고하셔서 응용하시기 바랍니다.
function Chart1_OnRiseSignal(Signal)
{
//잔고셋팅
Account1.SetBalance(Main.GetOrderCode(MarketData1.code),0);
//매수진입신호 발생
//잔고 포지션이 매수가 아닐때만 실행
if (Signal.signalKind == 1 && Account1.Balance.position != 2 )
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Signal.count,MarketData1.Ask(3),0);
}
//매수포지션 청산신호 발생
if (Signal.signalKind == 2)
{
//해당 종목 미체결 취소
var num = Account1.GetTheNumberOfUnfills();
for (var i = 0; i < num; i++)
{
Account1.SetUnfill(i);
if (Account1.Unfill.code == Main.GetOrderCode(MarketData1.code) &&
Account1.Unfill.count > 0)
{
Account1.OrderCancel(Account1.Unfill.orderNum)
}
}
//잔고에 있는 매수포지션 수량만큼만 청산
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,MarketData1.Bid(3),0);
}
}
//매도진입신호 발생
//잔고 포지션이 매도포지션이 아닐때만 실
if (Signal.signalKind == 3 && Account1.Balance.position != 1)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Signal.count,MarketData1.Bid(3),0);
}
//매도포지션 청산신호 발생
if (Signal.signalKind == 4)
{
//해당 종목 미체결 취소
var num = Account1.GetTheNumberOfUnfills();
for (var i = 0; i < num; i++)
{
Account1.SetUnfill(i);
if (Account1.Unfill.code == Main.GetOrderCode(MarketData1.code) &&
Account1.Unfill.count > 0)
{
Account1.OrderCancel(Account1.Unfill.orderNum)
}
}
//잔고에 있는 매도포지션 수량만큼만 청산
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,MarketData1.Ask(3),0);
}
}
}
즐거운 하루되세요
> 파일럿 님이 쓴 글입니다.
> 제목 : 스팟식 문의
> 초보단계임을 감안해주시기 바라며 문의드립니다.
매수 3개를 주문했는데 2개가 체결되고 1개가 미체결 상태라면 신규 매수는 않되도록 하고 나머지 1개가 매수조건에 만족하면 체결되거나, 매도 조건이 되면 매도 조건에 따라 지정한 수량으로 매수된 수량한도내에서 청산되도록 하고,다른 예로 매도 3개 체결된 상태에서 청산조건이 되어 2개는 매수청산되고 1개는 매수 청산대기 상태에서 신규 매수조건에 만족되더라도 매수대기상태 즉 미체결 주문이 있다면 신규 매수주문이 않되도톡 하는 참조수식 부탁드립니다