Exemple #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);
                }
Exemple #2
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);
                }
Exemple #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);
                }
Exemple #4
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);
                }
Exemple #5
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);
                }
Exemple #6
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);
                }
Exemple #7
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);
                }
Exemple #8
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);
                }
Exemple #9
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);
                }
Exemple #10
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);
                }
Exemple #11
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);
                }
Exemple #12
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);
                }