public void CloseTicks() { _ticker.OnConnect -= this.OnTickerConnect; _ticker.OnError -= this.OnTickerError; _ticker.OnTick -= this.OnTick; _ticker.Close(); }
public void CloseTickerTest() { var ticker = new Ticker(TimeSpan.FromMilliseconds(20)); ticker.Start(); ticker.Close(); Assert.ThrowsException <ChannelClosedException>(() => ticker.Start()); }
public void StartTickerTest() { var start = DateTime.Now; var ticker = new Ticker(TimeSpan.FromMilliseconds(20)); ticker.Start(); var now = ticker.Recv(); ticker.Close(); Assert.IsTrue(IsInDiff(start, now, 18, 22)); }
public async Task StartTckerTestAsync() { var start = DateTime.Now; var ticker = new Ticker(TimeSpan.FromMilliseconds(20)); ticker.Start(); var now = await ticker.RecvAsync(); ticker.Close(); Assert.IsTrue(start.AddMilliseconds(19) < now); }
private void btnLogout_Click(object sender, EventArgs e) { if (ticker != null) { ticker.Close(); } TradeUser.DestroyInstance(); Form1 form = new Form1(); form.Show(); this.Hide(); }
public void MultiTicksSkipTest() { var start = DateTime.Now; var ticker = new Ticker(TimeSpan.FromMilliseconds(20)); ticker.Start(); var now = ticker.Recv(); Assert.IsTrue(IsInDiff(start, now, 18, 22)); Thread.Sleep(21); Thread.Sleep(21); var last = now; now = ticker.Recv(); Assert.IsTrue(IsInDiff(last, now, 18, 32)); last = now; now = ticker.Recv(); ticker.Close(); Assert.IsTrue(IsInDiff(last, now, 18, 32)); }
public void TestTickerStopRaceCondition() { // NOTE: This race condition was difficult to reproduce in Release but occurs // almost immediately in Debug. var wg = new WaitGroup(); var rand = new Random(); const int tries = 1000; wg.Add(tries); for (var i = 0; i < tries; i++) { var time = rand.Next(1, 500); var ticker = new Ticker(TimeSpan.FromMilliseconds(time)); Time.AfterFunc(TimeSpan.FromMilliseconds(time), () => { ticker.Close(); wg.Done(); }); } wg.Wait(); }
private void transactionCleanup() { // clean up transactions we can easily account for var wg = new WaitGroup(); wg.Add(_transactions.Count); foreach (var t in _transactions) { var t1 = t; GoFunc.Run(() => { t1.Error = new ErrNotConnected(); t1.finish(); wg.Done(); }, "transactionCleanup: drain _transactions"); } _transactions.Clear(); // spin and free up any writes that might have raced // with the cleanup process (blocked on writing // to transactionChan) // give the runtime a chance to schedule other racing goroutines var ticker = new Ticker(TimeSpan.FromMilliseconds(100)); bool doLoop = true; using (var select = Select .CaseReceive(_transactionChan, t => { wg.Add(1); GoFunc.Run(() => { t.Error = new ErrNotConnected(); t.finish(); wg.Done(); }, "transactionCleanup: finish transaction from _transactionChan"); }) .CaseReceive(ticker.C, _ => { // keep spinning until there are 0 concurrent producers if (_concurrentProducers == 0) { doLoop = false; return; } log(LogLevel.Warning, string.Format( "waiting for {0} concurrent producers to finish", _concurrentProducers)); }) .NoDefault(defer: true) ) { while (doLoop) { select.Execute(); } } ticker.Close(); wg.Wait(); }
static void Main(string[] args) { kite = new Kite(MyAPIKey, Debug: true); // For handling 403 errors kite.SetSessionHook(onTokenExpire); // Initializes the login flow try { initSession(); } catch (Exception e) { // Cannot continue without proper authentication Console.WriteLine(e.Message); Console.ReadKey(); Environment.Exit(0); } kite.SetAccessToken(MyAccessToken); // Initialize ticker initTicker(); // Positions PositionResponse positions = kite.GetPositions(); Console.WriteLine(JsonSerialize(positions.Net[0])); kite.ModifyProduct("NSE", "ASHOKLEY", "BUY", "day", "1", "MIS", "CNC"); // Holdings List <Holding> holdings = kite.GetHoldings(); Console.WriteLine(JsonSerialize(holdings[0])); // Instruments List <Instrument> instruments = kite.GetInstruments(); Console.WriteLine(JsonSerialize(instruments[0])); // Quote Quote quote = kite.GetQuote("NSE", "INFY"); Console.WriteLine(JsonSerialize(quote)); // Get OHLC and LTP of upto 200 scrips Dictionary <string, OHLC> ohlcs = kite.GetOHLC(new string[] { "NSE:INFY", "NSE:ASHOKLEY" }); Console.WriteLine(JsonSerialize(ohlcs)); // Get LTP of upto 200 scrips Dictionary <string, LTP> ltps = kite.GetLTP(new string[] { "NSE:INFY", "NSE:ASHOKLEY" }); Console.WriteLine(JsonSerialize(ltps)); // Trigger Range TrigerRange triggerRange = kite.GetTriggerRange("NSE", "INFY", "BUY"); Console.WriteLine(JsonSerialize(triggerRange)); // Orders List <Order> orders = kite.GetOrders(); Console.WriteLine(JsonSerialize(orders[0])); Dictionary <string, dynamic> response = kite.PlaceOrder("CDS", "USDINR17AUGFUT", "SELL", "1", Price: "64.0000", OrderType: "MARKET", Product: "NRML"); Console.WriteLine("Order Id: " + response["data"]["order_id"]); kite.PlaceOrder("CDS", "USDINR17AUGFUT", "BUY", "1", Price: "63.9000", OrderType: "LIMIT", Product: "NRML"); kite.CancelOrder("1234"); List <OrderInfo> orderinfo = kite.GetOrder("1234"); Console.WriteLine(JsonSerialize(orderinfo[0])); //BO LIMIT order placing kite.PlaceOrder("NSE", "ASHOKLEY", "BUY", Quantity: "1", Price: "115", Product: "MIS", OrderType: "LIMIT", Validity: "DAY", SquareOffValue: "2", StoplossValue: "2", Variety: "bo"); // BO LIMIT exiting kite.CancelOrder("1234", "bo", "5678"); // 1234 is order id and 5678 is parent order id // BO SL order placing kite.PlaceOrder("NSE", "ASHOKLEY", "BUY", Quantity: "1", Price: "117", Product: "MIS", OrderType: "SL", Validity: "DAY", SquareOffValue: "2", StoplossValue: "2", TriggerPrice: "117.5", Variety: "bo"); // BO SL exiting kite.CancelOrder("1234", "bo", "5678"); // 1234 is order id and 5678 is parent order id // CO LIMIT order placing kite.PlaceOrder("NSE", "ASHOKLEY", "BUY", Quantity: "1", Price: "115.5", Product: "MIS", OrderType: "LIMIT", Validity: "DAY", TriggerPrice: "116.5", Variety: "co"); // CO LIMIT exiting kite.CancelOrder("1234", "co", "5678"); // 1234 is order id and 5678 is parent order id // CO MARKET order placing kite.PlaceOrder("NSE", "ASHOKLEY", "BUY", Quantity: "1", Product: "MIS", OrderType: "MARKET", Validity: "DAY", TriggerPrice: "116.5", Variety: "co"); // CO MARKET exiting kite.CancelOrder("1234", "co", "5678"); // 1234 is order id and 5678 is parent order id // Trades List <Trade> trades = kite.GetTrades("1234"); Console.WriteLine(JsonSerialize(trades[0])); // Margins kite.Margins("commodity"); kite.Margins("equity"); // Historical Data With Dates List <Historical> historical = kite.GetHistorical("5633", "2015-12-28", "2016-01-01", "minute"); Console.WriteLine(JsonSerialize(historical[0])); // Historical Data With Timestamps List <Historical> historical_timestamp = kite.GetHistorical("5633", "2016-01-01 11:00:00", "2016-01-01 11:10:00", "minute"); Console.WriteLine(JsonSerialize(historical_timestamp[0])); // Continuous Historical Data List <Historical> historical_continuous = kite.GetHistorical("5633", "2015-12-28", "2016-01-01", "minute", Continuous: true); Console.WriteLine(JsonSerialize(historical_continuous[0])); // Mutual Funds Instruments List <MFInstrument> mfinstruments = kite.GetMFInstruments(); Console.WriteLine(JsonSerialize(mfinstruments[0])); // Mutual Funds Orders List <MFOrder> mforders = kite.GetMFOrders(); Console.WriteLine(JsonSerialize(mforders[0])); MFOrder mforder = kite.GetMFOrder("1234"); Console.WriteLine(JsonSerialize(mforder)); kite.PlaceMFOrder("INF174K01LS2", "BUY", "20000"); kite.CancelMFOrder("1234"); // Mutual Funds SIPs List <MFSIP> mfsips = kite.GetMFSIPs(); Console.WriteLine(JsonSerialize(mfsips[0])); MFSIP sip = kite.GetMFSIP("63429"); Console.WriteLine(JsonSerialize(sip)); kite.PlaceMFSIP("INF174K01LS2", "1000", "5000", "monthly", "1", "-1"); kite.ModifyMFSIP("1234", "1000", "monthly", "1", "10", "paused"); kite.CancelMFSIP("1234"); // Mutual Funds Holdings List <MFHolding> mfholdings = kite.GetMFHoldings(); Console.WriteLine(JsonSerialize(mfholdings[0])); Console.ReadKey(); // Disconnect from ticker ticker.Close(); }
static void Main(string[] args) { kite = new Kite(MyAPIKey, Debug: true); // For handling 403 errors kite.SetSessionExpiryHook(OnTokenExpire); // Initializes the login flow try { initSession(); } catch (Exception e) { // Cannot continue without proper authentication Console.WriteLine(e.Message); Console.ReadKey(); Environment.Exit(0); } kite.SetAccessToken(MyAccessToken); // Initialize ticker initTicker(); // Get all GTTs List <GTT> gtts = kite.GetGTTs(); Console.WriteLine(Utils.JsonSerialize(gtts[0])); // Get GTT by Id GTT gtt = kite.GetGTT(99691); Console.WriteLine(Utils.JsonSerialize(gtt)); // Cacncel GTT by Id var gttCancelResponse = kite.CancelGTT(1582); Console.WriteLine(Utils.JsonSerialize(gttCancelResponse)); // Place GTT GTTParams gttParams = new GTTParams(); gttParams.TriggerType = Constants.GTT_TRIGGER_OCO; gttParams.Exchange = "NSE"; gttParams.TradingSymbol = "SBIN"; gttParams.LastPrice = 288.9m; List <decimal> triggerPrices = new List <decimal>(); triggerPrices.Add(260m); triggerPrices.Add(320m); gttParams.TriggerPrices = triggerPrices; // Only sell is allowed for OCO or two-leg orders. // Single leg orders can be buy or sell order. // Passing a last price is mandatory. // A stop-loss order must have trigger and price below last price and target order must have trigger and price above last price. // Only limit order type and CNC product type is allowed for now. GTTOrderParams order1Params = new GTTOrderParams(); order1Params.OrderType = Constants.ORDER_TYPE_LIMIT; order1Params.Price = 250m; order1Params.Product = Constants.PRODUCT_CNC; order1Params.TransactionType = Constants.TRANSACTION_TYPE_SELL; order1Params.Quantity = 0; GTTOrderParams order2Params = new GTTOrderParams(); order2Params.OrderType = Constants.ORDER_TYPE_LIMIT; order2Params.Price = 320m; order2Params.Product = Constants.PRODUCT_CNC; order2Params.TransactionType = Constants.TRANSACTION_TYPE_SELL; order2Params.Quantity = 1; // Target or upper trigger List <GTTOrderParams> ordersList = new List <GTTOrderParams>(); ordersList.Add(order1Params); ordersList.Add(order2Params); gttParams.Orders = ordersList; var placeGTTResponse = kite.PlaceGTT(gttParams); Console.WriteLine(Utils.JsonSerialize(placeGTTResponse)); var modifyGTTResponse = kite.ModifyGTT(407301, gttParams); Console.WriteLine(Utils.JsonSerialize(modifyGTTResponse)); // Positions PositionResponse positions = kite.GetPositions(); Console.WriteLine(Utils.JsonSerialize(positions.Net[0])); kite.ConvertPosition( Exchange: Constants.EXCHANGE_NSE, TradingSymbol: "ASHOKLEY", TransactionType: Constants.TRANSACTION_TYPE_BUY, PositionType: Constants.POSITION_DAY, Quantity: 1, OldProduct: Constants.PRODUCT_MIS, NewProduct: Constants.PRODUCT_CNC ); // Holdings List <Holding> holdings = kite.GetHoldings(); Console.WriteLine(Utils.JsonSerialize(holdings[0])); // Instruments List <Instrument> instruments = kite.GetInstruments(); Console.WriteLine(Utils.JsonSerialize(instruments[0])); // Get quotes of upto 200 scrips Dictionary <string, Quote> quotes = kite.GetQuote(InstrumentId: new string[] { "NSE:INFY", "NSE:ASHOKLEY" }); Console.WriteLine(Utils.JsonSerialize(quotes)); // Get OHLC and LTP of upto 200 scrips Dictionary <string, OHLC> ohlcs = kite.GetOHLC(InstrumentId: new string[] { "NSE:INFY", "NSE:ASHOKLEY" }); Console.WriteLine(Utils.JsonSerialize(ohlcs)); // Get LTP of upto 200 scrips Dictionary <string, LTP> ltps = kite.GetLTP(InstrumentId: new string[] { "NSE:INFY", "NSE:ASHOKLEY" }); Console.WriteLine(Utils.JsonSerialize(ltps)); // Trigger Range Dictionary <string, TrigerRange> triggerRange = kite.GetTriggerRange( InstrumentId: new string[] { "NSE:ASHOKLEY" }, TrasactionType: Constants.TRANSACTION_TYPE_BUY ); Console.WriteLine(Utils.JsonSerialize(triggerRange)); // Get all orders List <Order> orders = kite.GetOrders(); Console.WriteLine(Utils.JsonSerialize(orders[0])); // Get order by id List <Order> orderinfo = kite.GetOrderHistory("1234"); Console.WriteLine(Utils.JsonSerialize(orderinfo[0])); // Place sell order Dictionary <string, dynamic> response = kite.PlaceOrder( Exchange: Constants.EXCHANGE_CDS, TradingSymbol: "USDINR17AUGFUT", TransactionType: Constants.TRANSACTION_TYPE_SELL, Quantity: 1, Price: 64.0000m, OrderType: Constants.ORDER_TYPE_MARKET, Product: Constants.PRODUCT_MIS ); Console.WriteLine("Order Id: " + response["data"]["order_id"]); // Place buy order kite.PlaceOrder( Exchange: Constants.EXCHANGE_CDS, TradingSymbol: "USDINR17AUGFUT", TransactionType: Constants.TRANSACTION_TYPE_BUY, Quantity: 1, Price: 63.9000m, OrderType: Constants.ORDER_TYPE_LIMIT, Product: Constants.PRODUCT_MIS ); // Cancel order by id kite.CancelOrder("1234"); //BO LIMIT order placing kite.PlaceOrder( Exchange: Constants.EXCHANGE_NSE, TradingSymbol: "ASHOKLEY", TransactionType: Constants.TRANSACTION_TYPE_BUY, Quantity: 1, Price: 115, Product: Constants.PRODUCT_MIS, OrderType: Constants.ORDER_TYPE_LIMIT, Validity: Constants.VALIDITY_DAY, SquareOffValue: 2, StoplossValue: 2, Variety: Constants.VARIETY_BO ); // BO LIMIT exiting kite.CancelOrder( OrderId: "1234", Variety: Constants.VARIETY_BO, ParentOrderId: "5678" ); // BO SL order placing kite.PlaceOrder( Exchange: Constants.EXCHANGE_NSE, TradingSymbol: "ASHOKLEY", TransactionType: Constants.TRANSACTION_TYPE_BUY, Quantity: 1, Price: 117, Product: Constants.PRODUCT_MIS, OrderType: Constants.ORDER_TYPE_SL, Validity: Constants.VALIDITY_DAY, SquareOffValue: 2, StoplossValue: 2, TriggerPrice: 117.5m, Variety: Constants.VARIETY_BO ); // BO SL exiting kite.CancelOrder( OrderId: "1234", Variety: Constants.VARIETY_BO, ParentOrderId: "5678" ); // CO LIMIT order placing kite.PlaceOrder( Exchange: Constants.EXCHANGE_NSE, TradingSymbol: "ASHOKLEY", TransactionType: Constants.TRANSACTION_TYPE_BUY, Quantity: 1, Price: 115.5m, Product: Constants.PRODUCT_MIS, OrderType: Constants.ORDER_TYPE_LIMIT, Validity: Constants.VALIDITY_DAY, TriggerPrice: 116.5m, Variety: Constants.VARIETY_CO ); // CO LIMIT exiting kite.CancelOrder( OrderId: "1234", Variety: Constants.VARIETY_BO, ParentOrderId: "5678" ); // CO MARKET order placing kite.PlaceOrder( Exchange: Constants.EXCHANGE_NSE, TradingSymbol: "ASHOKLEY", TransactionType: Constants.TRANSACTION_TYPE_BUY, Quantity: 1, Product: Constants.PRODUCT_MIS, OrderType: Constants.ORDER_TYPE_MARKET, Validity: Constants.VALIDITY_DAY, TriggerPrice: 116.5m, Variety: Constants.VARIETY_CO ); // CO MARKET exiting kite.CancelOrder( OrderId: "1234", Variety: Constants.VARIETY_BO, ParentOrderId: "5678" ); // Trades List <Trade> trades = kite.GetOrderTrades("1234"); Console.WriteLine(Utils.JsonSerialize(trades[0])); // Margins UserMargin commodityMargins = kite.GetMargins(Constants.MARGIN_COMMODITY); UserMargin equityMargins = kite.GetMargins(Constants.MARGIN_EQUITY); // Order margins OrderMarginParams orderParam = new OrderMarginParams(); orderParam.Exchange = Constants.EXCHANGE_NFO; orderParam.TradingSymbol = "ASHOKLEY21JULFUT"; orderParam.TransactionType = Constants.TRANSACTION_TYPE_SELL; orderParam.Quantity = 1; orderParam.Price = 64.0000m; orderParam.OrderType = Constants.ORDER_TYPE_MARKET; orderParam.Product = Constants.PRODUCT_MIS; List <OrderMargin> margins = kite.GetOrderMargins(new List <OrderMarginParams>() { orderParam }); // Basket margins OrderMarginParams basketParam = new OrderMarginParams(); basketParam.Exchange = Constants.EXCHANGE_NFO; basketParam.TradingSymbol = "NIFTY21JUL15000PE"; basketParam.TransactionType = Constants.TRANSACTION_TYPE_BUY; basketParam.Quantity = 75; basketParam.Price = 300; basketParam.Product = Constants.PRODUCT_MIS; basketParam.OrderType = Constants.ORDER_TYPE_LIMIT; BasketMargin basketMargins = kite.GetBasketMargins(new List <OrderMarginParams>() { basketParam }, ConsiderPositions: true); // Historical Data With Dates List <Historical> historical = kite.GetHistoricalData( InstrumentToken: "5633", FromDate: new DateTime(2016, 1, 1, 12, 50, 0), // 2016-01-01 12:50:00 AM ToDate: new DateTime(2016, 1, 1, 13, 10, 0), // 2016-01-01 01:10:00 PM Interval: Constants.INTERVAL_MINUTE, Continuous: false ); Console.WriteLine(Utils.JsonSerialize(historical[0])); // Mutual Funds Instruments List <MFInstrument> mfinstruments = kite.GetMFInstruments(); Console.WriteLine(Utils.JsonSerialize(mfinstruments[0])); // Mutual funds get all orders List <MFOrder> mforders = kite.GetMFOrders(); Console.WriteLine(Utils.JsonSerialize(mforders[0])); // Mutual funds get order by id MFOrder mforder = kite.GetMFOrders(OrderId: "1234"); Console.WriteLine(Utils.JsonSerialize(mforder)); // Mutual funds place order kite.PlaceMFOrder( TradingSymbol: "INF174K01LS2", TransactionType: Constants.TRANSACTION_TYPE_BUY, Amount: 20000 ); // Mutual funds cancel order by id kite.CancelMFOrder(OrderId: "1234"); // Mutual Funds get all SIPs List <MFSIP> mfsips = kite.GetMFSIPs(); Console.WriteLine(Utils.JsonSerialize(mfsips[0])); // Mutual Funds get SIP by id MFSIP sip = kite.GetMFSIPs("63429"); Console.WriteLine(Utils.JsonSerialize(sip)); // Mutual Funds place SIP order kite.PlaceMFSIP( TradingSymbol: "INF174K01LS2", Amount: 1000, InitialAmount: 5000, Frequency: "monthly", InstalmentDay: 1, Instalments: -1 // -1 means infinite ); // Mutual Funds modify SIP order kite.ModifyMFSIP( SIPId: "1234", Amount: 1000, Frequency: "monthly", InstalmentDay: 1, Instalments: 10, Status: "paused" ); kite.CancelMFSIP(SIPId: "1234"); // Mutual Funds Holdings List <MFHolding> mfholdings = kite.GetMFHoldings(); Console.WriteLine(Utils.JsonSerialize(mfholdings[0])); Console.ReadKey(); // Disconnect from ticker ticker.Close(); }
static void Main(string[] args) { kite = new Kite(MyAPIKey, Debug: true); // For handling 403 errors kite.SetSessionExpiryHook(OnTokenExpire); // Initializes the login flow try { initSession(); } catch (Exception e) { // Cannot continue without proper authentication Console.WriteLine(e.Message); Console.ReadKey(); Environment.Exit(0); } kite.SetAccessToken(MyAccessToken); // Initialize ticker initTicker(); // Positions PositionResponse positions = kite.GetPositions(); Console.WriteLine(Utils.JsonSerialize(positions.Net[0])); kite.ConvertPosition( Exchange: Constants.EXCHANGE_NSE, TradingSymbol: "ASHOKLEY", TransactionType: Constants.TRANSACTION_TYPE_BUY, PositionType: Constants.POSITION_DAY, Quantity: 1, OldProduct: Constants.PRODUCT_MIS, NewProduct: Constants.PRODUCT_CNC ); // Holdings List <Holding> holdings = kite.GetHoldings(); Console.WriteLine(Utils.JsonSerialize(holdings[0])); // Instruments List <Instrument> instruments = kite.GetInstruments(); Console.WriteLine(Utils.JsonSerialize(instruments[0])); // Get quotes of upto 200 scrips Dictionary <string, Quote> quotes = kite.GetQuote(InstrumentId: new string[] { "NSE:INFY", "NSE:ASHOKLEY" }); Console.WriteLine(Utils.JsonSerialize(quotes)); // Get OHLC and LTP of upto 200 scrips Dictionary <string, OHLC> ohlcs = kite.GetOHLC(InstrumentId: new string[] { "NSE:INFY", "NSE:ASHOKLEY" }); Console.WriteLine(Utils.JsonSerialize(ohlcs)); // Get LTP of upto 200 scrips Dictionary <string, LTP> ltps = kite.GetLTP(InstrumentId: new string[] { "NSE:INFY", "NSE:ASHOKLEY" }); Console.WriteLine(Utils.JsonSerialize(ltps)); // Trigger Range Dictionary <string, TrigerRange> triggerRange = kite.GetTriggerRange( InstrumentId: new string[] { "NSE:ASHOKLEY" }, TrasactionType: Constants.TRANSACTION_TYPE_BUY ); Console.WriteLine(Utils.JsonSerialize(triggerRange)); // Get all orders List <Order> orders = kite.GetOrders(); Console.WriteLine(Utils.JsonSerialize(orders[0])); // Get order by id List <Order> orderinfo = kite.GetOrderHistory("1234"); Console.WriteLine(Utils.JsonSerialize(orderinfo[0])); // Place sell order Dictionary <string, dynamic> response = kite.PlaceOrder( Exchange: Constants.EXCHANGE_CDS, TradingSymbol: "USDINR17AUGFUT", TransactionType: Constants.TRANSACTION_TYPE_SELL, Quantity: 1, Price: 64.0000m, OrderType: Constants.ORDER_TYPE_MARKET, Product: Constants.PRODUCT_MIS ); Console.WriteLine("Order Id: " + response["data"]["order_id"]); // Place buy order kite.PlaceOrder( Exchange: Constants.EXCHANGE_CDS, TradingSymbol: "USDINR17AUGFUT", TransactionType: Constants.TRANSACTION_TYPE_BUY, Quantity: 1, Price: 63.9000m, OrderType: Constants.ORDER_TYPE_LIMIT, Product: Constants.PRODUCT_MIS ); // Cancel order by id kite.CancelOrder("1234"); //BO LIMIT order placing kite.PlaceOrder( Exchange: Constants.EXCHANGE_NSE, TradingSymbol: "ASHOKLEY", TransactionType: Constants.TRANSACTION_TYPE_BUY, Quantity: 1, Price: 115, Product: Constants.PRODUCT_MIS, OrderType: Constants.ORDER_TYPE_LIMIT, Validity: Constants.VALIDITY_DAY, SquareOffValue: 2, StoplossValue: 2, Variety: Constants.VARIETY_BO ); // BO LIMIT exiting kite.CancelOrder( OrderId: "1234", Variety: Constants.VARIETY_BO, ParentOrderId: "5678" ); // BO SL order placing kite.PlaceOrder( Exchange: Constants.EXCHANGE_NSE, TradingSymbol: "ASHOKLEY", TransactionType: Constants.TRANSACTION_TYPE_BUY, Quantity: 1, Price: 117, Product: Constants.PRODUCT_MIS, OrderType: Constants.ORDER_TYPE_SL, Validity: Constants.VALIDITY_DAY, SquareOffValue: 2, StoplossValue: 2, TriggerPrice: 117.5m, Variety: Constants.VARIETY_BO ); // BO SL exiting kite.CancelOrder( OrderId: "1234", Variety: Constants.VARIETY_BO, ParentOrderId: "5678" ); // CO LIMIT order placing kite.PlaceOrder( Exchange: Constants.EXCHANGE_NSE, TradingSymbol: "ASHOKLEY", TransactionType: Constants.TRANSACTION_TYPE_BUY, Quantity: 1, Price: 115.5m, Product: Constants.PRODUCT_MIS, OrderType: Constants.ORDER_TYPE_LIMIT, Validity: Constants.VALIDITY_DAY, TriggerPrice: 116.5m, Variety: Constants.VARIETY_CO ); // CO LIMIT exiting kite.CancelOrder( OrderId: "1234", Variety: Constants.VARIETY_BO, ParentOrderId: "5678" ); // CO MARKET order placing kite.PlaceOrder( Exchange: Constants.EXCHANGE_NSE, TradingSymbol: "ASHOKLEY", TransactionType: Constants.TRANSACTION_TYPE_BUY, Quantity: 1, Product: Constants.PRODUCT_MIS, OrderType: Constants.ORDER_TYPE_MARKET, Validity: Constants.VALIDITY_DAY, TriggerPrice: 116.5m, Variety: Constants.VARIETY_CO ); // CO MARKET exiting kite.CancelOrder( OrderId: "1234", Variety: Constants.VARIETY_BO, ParentOrderId: "5678" ); // Trades List <Trade> trades = kite.GetOrderTrades("1234"); Console.WriteLine(Utils.JsonSerialize(trades[0])); // Margins UserMargin commodityMargins = kite.GetMargins(Constants.MARGIN_COMMODITY); UserMargin equityMargins = kite.GetMargins(Constants.MARGIN_EQUITY); // Historical Data With Dates List <Historical> historical = kite.GetHistoricalData( InstrumentToken: "5633", FromDate: new DateTime(2016, 1, 1, 12, 50, 0), // 2016-01-01 12:50:00 AM ToDate: new DateTime(2016, 1, 1, 13, 10, 0), // 2016-01-01 01:10:00 PM Interval: Constants.INTERVAL_MINUTE, Continuous: false ); Console.WriteLine(Utils.JsonSerialize(historical[0])); // Mutual Funds Instruments List <MFInstrument> mfinstruments = kite.GetMFInstruments(); Console.WriteLine(Utils.JsonSerialize(mfinstruments[0])); // Mutual funds get all orders List <MFOrder> mforders = kite.GetMFOrders(); Console.WriteLine(Utils.JsonSerialize(mforders[0])); // Mutual funds get order by id MFOrder mforder = kite.GetMFOrders(OrderId: "1234"); Console.WriteLine(Utils.JsonSerialize(mforder)); // Mutual funds place order kite.PlaceMFOrder( TradingSymbol: "INF174K01LS2", TransactionType: Constants.TRANSACTION_TYPE_BUY, Amount: 20000 ); // Mutual funds cancel order by id kite.CancelMFOrder(OrderId: "1234"); // Mutual Funds get all SIPs List <MFSIP> mfsips = kite.GetMFSIPs(); Console.WriteLine(Utils.JsonSerialize(mfsips[0])); // Mutual Funds get SIP by id MFSIP sip = kite.GetMFSIPs("63429"); Console.WriteLine(Utils.JsonSerialize(sip)); // Mutual Funds place SIP order kite.PlaceMFSIP( TradingSymbol: "INF174K01LS2", Amount: 1000, InitialAmount: 5000, Frequency: "monthly", InstalmentDay: 1, Instalments: -1 // -1 means infinite ); // Mutual Funds modify SIP order kite.ModifyMFSIP( SIPId: "1234", Amount: 1000, Frequency: "monthly", InstalmentDay: 1, Instalments: 10, Status: "paused" ); kite.CancelMFSIP(SIPId: "1234"); // Mutual Funds Holdings List <MFHolding> mfholdings = kite.GetMFHoldings(); Console.WriteLine(Utils.JsonSerialize(mfholdings[0])); Console.ReadKey(); // Disconnect from ticker ticker.Close(); }