public static string TDOrderInsert(string csExchange, string csCode, double dPrice, int nVolume, ORDER_DIRECTION eDirection, ORDER_OFFSET eOffset) { nVolume *= 100; IntPtr szErrMsg = Marshal.AllocHGlobal(2560); IntPtr szIdentity = Marshal.AllocHGlobal(256); IntPtr szLocalHandleID = Marshal.AllocHGlobal(256); if (g_hTDClient != IntPtr.Zero) { if (csExchange != "" && csCode != "" && eDirection != ORDER_DIRECTION.UNKNOWNDIRECTION && eOffset != ORDER_OFFSET.UNKNOWNOFFSET && nVolume > 0) { if (WinfairTdApi_ReqOrderInsert(g_hTDClient, Marshal.StringToHGlobalAnsi(csExchange), Marshal.StringToHGlobalAnsi(csCode), dPrice, nVolume, eDirection, eOffset, Marshal.StringToHGlobalAnsi(""), Marshal.StringToHGlobalAnsi(""), Marshal.StringToHGlobalAnsi(""), Marshal.StringToHGlobalAnsi(""), szIdentity, szLocalHandleID, szErrMsg)) { Console.WriteLine(Marshal.PtrToStringAnsi(szIdentity)); Console.WriteLine(Marshal.PtrToStringAnsi(szLocalHandleID)); Console.WriteLine(Marshal.PtrToStringAnsi(szErrMsg)); string sszLocalHandleID = Marshal.PtrToStringAnsi(szLocalHandleID); return(sszLocalHandleID); } } else { Console.WriteLine("Invalid Params"); } } return(""); }
public extern static bool WinfairTdApi_ReqOrderInsert(IntPtr hClient, IntPtr pszExchangeID, IntPtr pszInstrumentID, double dOrderPrice, int nOrderVolume, ORDER_DIRECTION eDirection, ORDER_OFFSET eOffset, IntPtr pszAdapterTag, IntPtr pszStockPoolTag, IntPtr pszFundID, IntPtr pszCombiID, IntPtr pszIdentity, IntPtr pszLocalIntPtrID, IntPtr pszErrorMsg);