Exemplo n.º 1
0
                public CallResult <string[]> UnSubscribe(string[] codes)
                {
                    string str = "";

                    if (codes != null && codes.Length > 0)
                    {
                        foreach (var s in codes)
                        {
                            str += s + ",";
                        }
                    }

                    IntPtr r  = TqapiDll.dapi_unsubscribe(handle, str);
                    var    cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);
                    CallResult <string[]> ret;

                    if (cr.value_type != 0)
                    {
                        ret = new CallResult <string[]>(TqapiDll.CopyArray <string>(cr));
                    }
                    else
                    {
                        ret = new CallResult <string[]>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 2
0
                public DataApiImpl(IntPtr handle, bool is_owner)
                {
                    this.is_owner = is_owner;
                    this.handle   = handle;
                    on_quote      = (quote) => { if (OnMarketQuote != null)
                                                 {
                                                     OnMarketQuote(quote);
                                                 }
                    };
                    on_bar = (cycle, bar) => { if (OnBar != null)
                                               {
                                                   OnBar(cycle, bar);
                                               }
                    };

                    TqapiDll.dapi_set_callback(this.handle, on_quote, on_bar);
                }
Exemplo n.º 3
0
                public CallResult <MarketQuote[]> GetTick(string code, int trading_day, int number)
                {
                    IntPtr r  = TqapiDll.dapi_get_tick(handle, code, trading_day, number);
                    var    cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);

                    CallResult <MarketQuote[]> ret;

                    if (cr.value_type != 0)
                    {
                        ret = new CallResult <MarketQuote[]>(TqapiDll.CopyArray <MarketQuote>(cr));
                    }
                    else
                    {
                        ret = new CallResult <MarketQuote[]>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 4
0
                public CallResult <Bar[]> GetBar(string code, string cycle, int trading_day, bool align)
                {
                    IntPtr r  = TqapiDll.dapi_get_bar(handle, code, cycle, trading_day, align);
                    var    cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);

                    CallResult <Bar[]> ret;

                    if (cr.value_type != 0)
                    {
                        ret = new CallResult <Bar[]>(TqapiDll.CopyArray <Bar>(cr));
                    }
                    else
                    {
                        ret = new CallResult <Bar[]>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 5
0
                public CallResult <bool> CancelOrder(string account_id, string code, string entrust_no, int order_id = 0)
                {
                    IntPtr r  = TqapiDll.tapi_cancel_order1(this.handle, account_id, code, entrust_no, order_id);
                    var    cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);

                    CallResult <bool> ret;

                    if (cr.value != IntPtr.Zero)
                    {
                        ret = new CallResult <bool>(Marshal.ReadByte(cr.value) != 0);
                    }
                    else
                    {
                        ret = new CallResult <bool>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 6
0
                public CallResult <MarketQuote> GetQuote(string code)
                {
                    IntPtr r  = TqapiDll.dapi_get_quote(handle, code);
                    var    cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);

                    CallResult <MarketQuote> ret;

                    if (cr.value != IntPtr.Zero)
                    {
                        ret = new CallResult <MarketQuote>(Marshal.PtrToStructure <MarketQuote>(cr.value));
                    }
                    else
                    {
                        ret = new CallResult <MarketQuote>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 7
0
                public CallResult <DailyBar[]> GetDailyBar(string code, string price_adj, bool align, int number)
                {
                    IntPtr r  = TqapiDll.dapi_get_daily_bar(handle, code, price_adj, align, number);
                    var    cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);

                    CallResult <DailyBar[]> ret;

                    if (cr.value_type != 0)
                    {
                        ret = new CallResult <DailyBar[]>(TqapiDll.CopyArray <DailyBar>(cr));
                    }
                    else
                    {
                        ret = new CallResult <DailyBar[]>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 8
0
                public CallResult <Trade[]> QueryTrades(string account_id, string[] codes)
                {
                    IntPtr r = TqapiDll.tapi_query_trades(this.handle, account_id, codes_to_str(codes));

                    var cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);

                    CallResult <Trade[]> ret;

                    if (cr.value_type != 0)
                    {
                        ret = new CallResult <Trade[]>(TqapiDll.CopyPointerArray <Trade>(cr));
                    }
                    else
                    {
                        ret = new CallResult <Trade[]>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 9
0
                public CallResult <Balance> QueryBalance(string account_id)
                {
                    IntPtr r = TqapiDll.tapi_query_balance(this.handle, account_id);

                    var cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);

                    CallResult <Balance> ret;

                    if (cr.value_type != 0)
                    {
                        ret = new CallResult <Balance>(Marshal.PtrToStructure <Balance>(cr.value));
                    }
                    else
                    {
                        ret = new CallResult <Balance>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 10
0
                public CallResult <AccountInfo[]> QueryAccountStatus()
                {
                    IntPtr r = TqapiDll.tapi_query_account_status(this.handle);

                    var cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);

                    CallResult <AccountInfo[]> ret;

                    if (cr.value_type != 0)
                    {
                        ret = new CallResult <AccountInfo[]>(TqapiDll.CopyArray <AccountInfo>(cr));
                    }
                    else
                    {
                        ret = new CallResult <AccountInfo[]>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 11
0
                public CallResult <string> Query(string account_id, string command, string data)
                {
                    IntPtr r = TqapiDll.tapi_query(this.handle, account_id, command, data);

                    var cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);

                    CallResult <string> ret;

                    if (cr.value_type != 0)
                    {
                        ret = new CallResult <string>(Marshal.PtrToStringAuto(cr.value));
                    }
                    else
                    {
                        ret = new CallResult <string>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 12
0
                public CallResult <Position[]> QueryPositions(string account_id)
                {
                    IntPtr r = TqapiDll.tapi_query_positions(this.handle, account_id);

                    var cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);

                    CallResult <Position[]> ret;

                    if (cr.value_type != 0)
                    {
                        ret = new CallResult <Position[]>(TqapiDll.CopyArray <Position>(cr));
                    }
                    else
                    {
                        ret = new CallResult <Position[]>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 13
0
                public CallResult <OrderID> PlaceOrder(string account_id, string code, double price, long size, string action, string price_type, int order_id)
                {
                    IntPtr r = TqapiDll.tapi_place_order(this.handle, account_id,
                                                         code, price, size, action, price_type, order_id);

                    var cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r);

                    CallResult <OrderID> ret;

                    if (cr.value_type != 0)
                    {
                        ret = new CallResult <OrderID>(Marshal.PtrToStructure <OrderID>(cr.value));
                    }
                    else
                    {
                        ret = new CallResult <OrderID>(cr.msg);
                    }

                    TqapiDll.destroy_callresult(r);
                    return(ret);
                }
Exemplo n.º 14
0
                public TradeApiImpl(IntPtr handle, bool is_owner)
                {
                    this.handle     = handle;
                    this.is_owner   = is_owner;
                    on_order_status = (order) => { if (OnOrderStatus != null)
                                                   {
                                                       OnOrderStatus(order);
                                                   }
                    };
                    on_order_trade = (trade) => { if (OnOrderTrade != null)
                                                  {
                                                      OnOrderTrade(trade);
                                                  }
                    };
                    on_account_status = (account) => { if (OnAccountStatus != null)
                                                       {
                                                           OnAccountStatus(account);
                                                       }
                    };

                    TqapiDll.tapi_set_callback(this.handle, on_order_status, on_order_trade, on_account_status);
                }
Exemplo n.º 15
0
            public static TradeApi CreateTradeApi(string addr)
            {
                var h = TqapiDll.tapi_create(addr);

                return(h != IntPtr.Zero ? new TradeApiImpl(h, true) : null);
            }
Exemplo n.º 16
0
            public static DataApi CreateDataApi(string addr)
            {
                var h = TqapiDll.dapi_create(addr);

                return(h != IntPtr.Zero ? new DataApiImpl(h, true) : null);
            }
Exemplo n.º 17
0
 public static void SetParams(string key, string value)
 {
     TqapiDll.tqapi_set_params(key, value);
 }