예전에 청산식 질문 답변해주신적이 있는데, 추가 질문 드려봅니다.
예스렝기지 시험가동으로 아래의 신호를 받아다가,
if stime>=153400 and stime<153500 then { buy(); }
예스스팟에서,
k200 선물 + k200 미니선물 두종목 기준으로
현재 포지션을 죄다 청산하고 싶습니다. 구현가능하다면, 수정좀 부탁드립니다.
종종 증거금을 넘어서서 주문이 들어가면 주문거부로 포지션이 꼬이는 경우가 발생해서
꼭 필요할듯합니다.
감사합니다. !!
//연계차트에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수청산신호발생
if (Signal.signalKind == 2 )
{
//잔고 종목수
var num = Account1.GetTheNumberOfBalances();
//1종목 이상
if (num > 0)
{
for (var i = 0; i < num; i++ )
{
//종목별로 잔고셋팅
Account1.SetBalance(i);
//수량이 1이상이고 매수포지션이고 옵션종목이면
if (Account1.Balance.count > 0 && Account1.Balance.position == 2 && Option1.GetCurrent(Account1.Balance,code) > 0 )
{
//매수3호가로 잔고수량 잔량 매도
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,Option1.GetBid(Account1.Balance,code,3),0)
}
}
}
}
}
답변 1
예스스탁
예스스탁 답변
2022-07-14 13:28:43
안녕하세요
예스스탁입니다.
종목객체 MarketData1,MarketData2에
KP200연결선물과 KP200미니 연결선물 데이타를 지정하고
아래와 같이 작성해 사용하시면 됩니다.
//연계차트에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수청산신호발생
if (Signal.signalKind == 1)
{
//잔고 종목수
var num = Account1.GetTheNumberOfBalances();
//1종목 이상
if (num > 0)
{
for (var i = 0; i < num; i++ )
{
//종목별로 잔고셋팅
Account1.SetBalance(i);
//수량이 1이상이고 매수포지션이고
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
//잔고종목이 MarketData1 종목이면
if (Account1.Balance.code == Main.GetOrderCode(MarketData1.code))
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,MarketData1.Bid(3),0);
}
//잔고종목이 MarketData2 종목이면
if (Account1.Balance.code == Main.GetOrderCode(MarketData2.code))
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,MarketData2.Bid(3),0);
}
}
}
}
}
}
즐거운 하루되세요
> 캣피쉬 님이 쓴 글입니다.
> 제목 : 수식 질문드립니다.
>
예전에 청산식 질문 답변해주신적이 있는데, 추가 질문 드려봅니다.
예스렝기지 시험가동으로 아래의 신호를 받아다가,
if stime>=153400 and stime<153500 then { buy(); }
예스스팟에서,
k200 선물 + k200 미니선물 두종목 기준으로
현재 포지션을 죄다 청산하고 싶습니다. 구현가능하다면, 수정좀 부탁드립니다.
종종 증거금을 넘어서서 주문이 들어가면 주문거부로 포지션이 꼬이는 경우가 발생해서
꼭 필요할듯합니다.
감사합니다. !!
//연계차트에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수청산신호발생
if (Signal.signalKind == 2 )
{
//잔고 종목수
var num = Account1.GetTheNumberOfBalances();
//1종목 이상
if (num > 0)
{
for (var i = 0; i < num; i++ )
{
//종목별로 잔고셋팅
Account1.SetBalance(i);
//수량이 1이상이고 매수포지션이고 옵션종목이면
if (Account1.Balance.count > 0 && Account1.Balance.position == 2 && Option1.GetCurrent(Account1.Balance,code) > 0 )
{
//매수3호가로 잔고수량 잔량 매도
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,Option1.GetBid(Account1.Balance,code,3),0)
}
}
}
}
}