예스스탁
예스스탁 답변
2022-04-15 16:59:23
안녕하세요
예스스탁입니다.
아래 내용 참고하셔서 수정보완해 사용하시기 바랍니다.
신호발생시 매수주문은 현재가-1틱, 매도주문은 현재가+1틱으로 주문 후에
30초 뒤에 미체결이 있으면 취소하고 미체결 수량만큼 시장가로 주문을 하게 됩니다.
var BEID,BXID,SEID,SXID;
var BENM,BXNM,SENM,SXNM;
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
BEID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.current-MarketData1.GetTickSize(), 2);
BEUV = 0;
Main.SetTimer(1, 30000);
}
if (Signal.signalKind == 2)
{
BXID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.current+MarketData1.GetTickSize(), 2);
BXUV = 0;
Main.SetTimer(2, 30000);
}
if (Signal.signalKind == 3)
{
SEID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.current+MarketData1.GetTickSize(), 2);
SEUV = 0;
Main.SetTimer(3, 30000);
}
if (Signal.signalKind == 4)
{
BXID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.current-MarketData1.GetTickSize(), 2);
SXUV = 0;
Main.SetTimer(4, 30000);
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == BEID)
{
BENM = OrderResponse.orderNum;
}
if (OrderResponse.orderID == BXID)
{
BXNM = OrderResponse.orderNum;
}
if (OrderResponse.orderID == SEID)
{
SENM = OrderResponse.orderNum;
}
if (OrderResponse.orderID == SXID)
{
SXNM = OrderResponse.orderNum;
}
if (OrderResponse.orderID == BECID)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), BEUV, 0, 1);
}
if (OrderResponse.orderID == BXCID)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), BXUV, 0, 1);
}
if (OrderResponse.orderID == SECID)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), SEUV, 0, 1);
}
if (OrderResponse.orderID == SXCID)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), SXUV, 0, 1);
}
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
Main.KillTimer(1);
Account1.SetUnfillOrderNumber(BENM);
if (Account1.Unfill.count > 0)
{
BEUV = Account1.Unfill.count;
BECID = Account1.OrderCancel(BENM);
}
}
if (nEventID == 2)
{
Main.KillTimer(2);
Account1.SetUnfillOrderNumber(BXNM);
if (Account1.Unfill.count > 0)
{
BXUV = Account1.Unfill.count;
BXCID = Account1.OrderCancel(BXNM);
}
}
if (nEventID == 3)
{
Main.KillTimer(3);
Account1.SetUnfillOrderNumber(SENM);
if (Account1.Unfill.count > 0)
{
SEUV = Account1.Unfill.count;
SECID = Account1.OrderCancel(SENM);
}
}
if (nEventID == 4)
{
Main.KillTimer(4);
Account1.SetUnfillOrderNumber(SXNM);
if (Account1.Unfill.count > 0)
{
SXUV = Account1.Unfill.count;
SXCID = Account1.OrderCancel(SXNM);
}
}
}
즐거운 하루되세요
> 쌈팔광땡 님이 쓴 글입니다.
> 제목 : 현재가보다 하나 낮은 단계로 매수, 30초후 미체결시 시장가 매매 방법
> 안녕하세요?
한국투자 증권 이용하고 있으며, 나스닥 매매하고 있습니다.
현재 5분봉으로 예스트레이더에서 신호 발생시키고 있습니다.
현재가보다 하나 낮은 단계로 매수, 매도 신호 주고,
30초 후에 미체결시 시장가로 매매하는 프로그램을 만들고 싶습니다.
예제만 보고 하려니 많이 어렵네요.
부탁드립니다.