답변완료
미체결정정 복수개의 차트 적용방법 문의
안녕하세요 매번도움 감사드립니다.
아래와 같은 미체결발생시 주문정정 하는 코드를 검색하였습니다
아래코드를 3개의차트에 적용하는 코드 부탁 드립니다.
(각 차트에서 매수매도 신호발생시 각 차트종목의 주문 미체결에 따른 정정주문)
-------------------------아래-----------------------
var Onum;
var OCode;
var OKind;
//주문응답 수신
function Main_OnOrderResponse(OrderResponse)
{
      //주문번호 저장
    ONum = OrderResponse.orderNum;
      OCode = OrderResponse.code;
      OKind = OrderResponse.orderKind;
      //타이머 실행
      Main.SetTimer(1, 5000);//5초 타이머
}
//타이머 동작
function Main_OnTimer(nEventID)
{
    if (nEventID == 1)
      {
            //타이머 중지
            Main.KillTimer(1);
            //Onum주문번호 미체결 셋팅
            Account1.SetUnfillOrderNumber(ONum);
            //미체결로 남아 있으면
            if (Account1.Unfill.count > 0)
            {
                  //종목객체 요청
                  Main.ReqMarketData(OCode,0,0);                  
            }
      }
}
//종목객체 수신
function Main_OnRcvMarketData(MarketData)
{
      var Object = MarketData;
      //수신받은 종목객체가 Onum과 같으면
    if (MarketData.code == ONum)
      {
            Account1.SetUnfillOrderNumber(ONum);
            //수량이 남아 있고 매도주문이면 매수2호가로 정정
            if (Account1.Unfill.count > 0 && Account1.Unfill.position == 1)
            {
                  Account1.OrderReplacePrice(ONum, MarketData.Bid(2));
            }
            //수량이 남아 있고 매수주문이면 매도2호가로 정정
            if (Account1.Unfill.count > 0 && Account1.Unfill.position == 2)
            {
                  Account1.OrderReplacePrice(ONum, MarketData.Ask(2));
            }
            //사용이 끝났으므로 수신받은 종목객체는 삭제
            Main.RemoveMarketData(Object);
      }
}
2015-09-16
2173
글번호 223654
답변완료
스팟으로 집입횟수 제한
안녕하세요~ 언제나 한결같은 답변 감사드립니다.
예스랭귀지가 아닌 스팟으로 진입횟수를 제한하고 싶습니다.
게시물 살펴보니 "GetUserValue"를 사용해서 제한한다고 나와있던데
아래 샘플 스팟수식은 선물신호발생시 미니선물 거래하는 예제입니다.
당일 스팟 진입청산을 3회로 제한하고 싶습니다. 부탁드립니다.
=================================================================
function Main_OnStart()
{
Main.MessageList("시작");
T = 0;
}
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
T = 1;
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),1,MarketData1.Ask(5), 0);
}
if (T == 1 && Signal.signalKind == 2)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),1,MarketData1.Bid(5), 0);
}
if (Signal.signalKind == 3)
{
T = -1;
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),1,MarketData1.Bid(5), 0);
}
if (T == -1 && Signal.signalKind == 4)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),1,MarketData1.Ask(5), 0);
}
}
=======================================================================
답변 부탁드립니다. ~
2015-09-06
2120
글번호 223647
답변완료
잔고 청산
다음과 같이 선물과 옵션에 대한 잔고청산 로직에 문제점이 있는지요?
if ( lUpd*teID == 20001 && SellCond == 6
&& sItemCode == M1.code && M1.current >= BP )
{
A1.SetBalanceItem(Putcode,0);
if (A1.Balance.count > 0 && A1.Balance.position == 2 )
{
SellCond = 0;
Main.MessageList("SellCond:" ,SellCond);
A1.OrderSell(Putcode, A1.Balance.count, 0, 1);
}
}
if ( lUpd*teID == 20001 && SellCond == 6
&& sItemCode == M1.code && M1.current >= BP )
{
A1.SetBalanceItem(Main.GetOrderCode(M1.code),0);
if (A1.Balance.position == 1 )
{
SellCond = 0;
Main.MessageList("SellCond:" ,SellCond);
A1.OrderBuy(Main.GetOrderCode(M1.code), A1.Balance.count, M1.Ask(5), 0);
}
}
2015-09-04
2119
글번호 223646
답변완료
추가 수식문의드립니다.
아래 당일 고가 답변 감사드립니다.
조금 추가해서 질문드리자면
"현재가가 당일고가를 돌파하면 매수하라"는 식도 아래와 같이 동일하게 사용하면 되는지요?
감사합니다.
function Chart1_OnRiseSignal(Signal)
{
//차트에서 매수신호 발생하고 현재가가 당일최고가이면
if (Signal.signalKind == 1 && MarketData1.current == MarketData1.high )
{
//매도5호가로 1계약 매수
Account1.OrderBuy(Main.GetOrderCode(Signal.Code),1,MarketData1.Ask(5),0);
}
//차트에서 매도신호 발생하고 현재가가 당일최저가이면
if (Signal.signalKind == 1 && MarketData1.current == MarketData1.low )
{
//매수5호가로 1계약 매도
Account1.OrderSell(Main.GetOrderCode(Signal.Code),2,MarketData1.Bid(5),0);
}
}
2015-09-02
2017
글번호 223644
답변완료
수식 문의 합니다.
차트객체 ---> FX
종목객체 ---> MarketDataFX ( 마이크로 FX 최근월물 )
Vol --------> 거래량(변수)
function Main_OnStart()
{
Main.MessageList("Start")
Start = 0;
}
function FX_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
Start = 1;
Account1.OrderBuy( Main.MarketDataFX , Vol , GetAsk(MarketDataFX,2), 0);
}
if (Start == 1 && Signal.signalKind == 2)
{
Account1.OrderSell( Main.MarketDataFX , Vol, GetBid(MarketDataFX,2), 0);
}
if (Signal.signalKind == 3)
{
Start = -1;
Account1.OrderSell( Main.MarketDataFX , Vol, GetBid(MarketDataFX,2), 0);
}
if (Start == -1 && Signal.signalKind == 4)
{
Account1.OrderBuy( Main.MarketDataFX , Vol, GetAsk(MarketDataFX,2), 0);
}
}
//----------------------------------------------------------------------------------
이렇게 FX차트에서 신호가 나오면 마이크로 FX 주문을 넣도록 하려고 했습니다.
그런데
실행하면 종목코드 확인하라는 스크립트 메시지가 나옵니다.
뭐가 잘못되었나요 ?
2015-08-26
2030
글번호 223638