コード例 #1
0
    public static CThostFtdcTraderApi CreateFtdcTraderApi()
    {
        global::System.IntPtr cPtr = thosttradeapiPINVOKE.CThostFtdcTraderApi_CreateFtdcTraderApi__SWIG_1();
        CThostFtdcTraderApi   ret  = (cPtr == global::System.IntPtr.Zero) ? null : new CThostFtdcTraderApi(cPtr, false);

        return(ret);
    }
コード例 #2
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(CThostFtdcTraderApi obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: yiweiming-github/CTACSharp
        static void Main(string[] args)
        {
            Console.WriteLine("Start testing CTP Trade API");
            const string ctpServerAddress = "tcp://ctpfz1-front1.citicsf.com:51205";
            var          api = CThostFtdcTraderApi.CreateFtdcTraderApi();
            var          spi = new CTPTradeCallbackImpl();

            api.RegisterSpi(spi);

            api.SubscribePrivateTopic(THOST_TE_RESUME_TYPE.THOST_TERT_QUICK);
            api.SubscribePublicTopic(THOST_TE_RESUME_TYPE.THOST_TERT_QUICK);
            api.RegisterFront(ctpServerAddress);
            api.Init();

            while (!spi.IsConnected)
            {
                Thread.Sleep(100);
                Console.WriteLine("is not connected...");
            }

            var userLogin = new CThostFtdcReqUserLoginField();

            userLogin.BrokerID = "66666";
            userLogin.UserID   = "11782";
            userLogin.Password = "******";

            int requestId = 0;

            api.ReqUserLogin(userLogin, requestId++);

            while (!spi.IsReady)
            {
                Thread.Sleep(100);
                Console.WriteLine("is not ready...");
            }

            Thread.Sleep(1100);

            var settlementConfirm = new CThostFtdcSettlementInfoConfirmField()
            {
                BrokerID   = userLogin.BrokerID,
                InvestorID = userLogin.UserID
            };

            api.ReqSettlementInfoConfirm(settlementConfirm, requestId++);

            Thread.Sleep(3000);

            var order = new CThostFtdcInputOrderField();

            order.BrokerID            = userLogin.BrokerID;
            order.InvestorID          = userLogin.UserID;
            order.InstrumentID        = "IF1803";
            order.OrderRef            = spi.GetNextOrderRef();
            order.UserID              = userLogin.UserID;
            order.Direction           = '0';
            order.CombOffsetFlag      = "0";
            order.CombHedgeFlag       = "1";
            order.LimitPrice          = 4000.0;
            order.VolumeTotalOriginal = 1;
            order.VolumeCondition     = '1';
            order.MinVolume           = 1;
            order.ForceCloseReason    = '0';
            order.IsAutoSuspend       = 0;
            order.UserForceClose      = 0;
            order.GTDDate             = "";
            order.ContingentCondition = '1';
            order.OrderPriceType      = '2';
            order.TimeCondition       = '3';
            order.StopPrice           = 0;
            order.RequestID           = requestId++;

            api.ReqOrderInsert(order, order.RequestID);

            while (true)
            {
                Thread.Sleep(100);
            }
        }
コード例 #4
0
 public string GetApiVersion()
 {
     return(CThostFtdcTraderApi.GetApiVersion());
 }
コード例 #5
0
 public CTPTradeApi(CThostFtdcTraderApi traderApi)
 {
     _traderApi = traderApi;
 }
コード例 #6
0
 public ITradeApi CreateTradeApi()
 {
     _api = CThostFtdcTraderApi.CreateFtdcTraderApi();
     return(new CTPTradeApi(_api));
 }