수고하십니다.
장시작전에
지정가 AA에 매도를 XX주 , BB에 XX주 매도 주문을 내고
현재가가 AA에 오면 +NN호가 위에 XX주 매도 주문을 내고
지정가 AA에 걸어둔 XX주가 매도 체결이 되면 -MM호가 아래 XX주 매수주문을 내는 식 부탁드립니다.
항상 고맙습니다.
답변 1
예스스탁
예스스탁 답변
2018-06-21 16:56:41
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
1
NN호가위 MM호가 아래는 NN과 MM에 해당하는 가격을 지정해 주셔야 합니다.
수식에서 몇틱위아래로 작성하면 현재가격으로 기준으로 1틱값이 계산되
가격번위를 넘어가면 호가가 달라져 주문에러가 발생합니다.
2
문의하신 내용이 예약주문과 같은 형태이시면 스팟으로
가능한 내용이 아닙니다.
스팟에는 예약주문등이 제공되지 않아
낮은가격 매도와 높은가격 매수는 바로 체결될수 있습니다.
3
수식에 게시판 금칙어가 있습니다.
영문업데이트가 Up*date로 중간에 *가 추가되어 있으므로 제거하시기 바랍니다.
4
스크립트객체화면 설정
종목객체 MarketData1 --> 속성에서 주문낼 종목으로 지정
계좌객체 Account --? 속성에서 주문낼 계좌지정
//값지정
var AA = 10000;
var BB = 9900;
var XX = 10;
var NN = 10100;
var MM = 9900;
var SID1,SID2,cur,pre;
var Num1;
//스팟시작
function Main_OnStart()
{
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
//9시 이전이면
if (HHMMSS > 90000)
{
//1번 타이머셋팅
Main.SetTimer(1, 5000);
}
}
//타이머동작
function Main_OnTimer(nEventID)
{
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
//1번 타이머 동작하고 8시에서 9시 사이이면
if (nEventID == 1 && HHMMSS > 80000 HHMMSS < 90000)
{
//타이머중지
Main.KillTimer(1);
//AA가격으로 XX주 매도주문하고 주문아이디는 SID1에 저장
SID1 = Account1.OrderSell(MarketData1.code, XX, AA, 0);
//BB가격으로 XX주 매도주문하고 주문아이디는 SID2에 저장
SID2 = Account1.OrderSell(MarketData1.code, XX, BB, 0);
}
}
//종목객체 업데이트
function Main_OnUp*dateMarket(sItemCode, lUp*dateID)//*삭제
{
//장시작후 시세가 업데이트될때
if (MarketData1.open > 0 && lUp*dateID == 200011)//*삭제
{
//직전 체결시세 현재가
var pre = cur;
//현재 체결시세 현재가
var cur = MarketData1.current;
//AA가격을 터치하는 시세가 발생했으면
if ((cur >= AA && pre < AA) || (cur <= AA && pre > AA))
{
//NN가격으로 XX주 매도
Account1.OrderSell(MarketData1.code, XX, NN, 0);
}
}
}
//주문응답 발생
function Main_OnOrderResponse(OrderResponse)
{
//주문아이디가 S1과 같은 주문응답이 수신되면
if (OrderResponse.orderID == S1)
{
//Num1에 주문번호 저장
Num1 = OrderResponse.orderNum;
}
}
//체결응답 발생
function Main_OnNotifyFill(NotifyFill)
{
//체결번호가 Num1과 같은 체결응답이 수신되면
if (NotifyFill.orderNum == Num1)
{
//Num1의 미체결 객체 셋팅
Account1.SetUnfill(Num1);
//미체결수량이 0이면(전량체결)
if (Account1.Unfill.count == 0)
{
//MM 가격으로 XX주 매도주
Account1.OrderSell(MarketData1.code, XX, MM, 0);
}
}
}
즐거운 하루되세요
> 여세우 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 수고하십니다.
장시작전에
지정가 AA에 매도를 XX주 , BB에 XX주 매도 주문을 내고
현재가가 AA에 오면 +NN호가 위에 XX주 매도 주문을 내고
지정가 AA에 걸어둔 XX주가 매도 체결이 되면 -MM호가 아래 XX주 매수주문을 내는 식 부탁드립니다.
항상 고맙습니다.