Could you help me, please?
I have used Addon Framework to create an order replicator from one account to another. In this section of the code I have entered two conditions so that if the ATM Strategy is selected, the order is sent with the selected ATM and when nothing has been selected, the order is sent without ATM Strategy but I am receiving an error message that I share more down. I'd like to know if you are able to help me with a posible solution for this issue. Thank you.
private void OnOrderUpdate2(object sender, OrderEventArgs e) { try { #region MANEJO DE ORDENES A MERCADO //Entra ordenes a mercado solamente if (entryOrder == null) { if ((e.Order.Name == "" && e.OrderState == OrderState.Submitted && e.Order.IsMarket) || (e.Order.Name == "Entry" && e.OrderState == OrderState.Submitted && e.Order.IsMarket)) { if [B][COLOR=#e74c3c](atmStrategySelector.SelectedAtmStrategy != null) [/COLOR] [/B] [THIS IS THE PART OF THE CODE THAT SEND ME AN ERROR] { Dispatcher.InvokeAsync(() => { outputBox.AppendText(string.Format("{0}Entrada Copiada con ATM", Environment.NewLine)); entryOrder = accountSelector.SelectedAccount.CreateOrder(Instru ment, e.Order.OrderAction, e.Order.OrderType, tifSelector.SelectedTif, qudSelector.Value, e.LimitPrice, e.StopPrice, string.Empty, "Entry", null); selectedAtmStrategy = NinjaTrader.NinjaScript.AtmStrategy.StartAtmStrate gy(atmStrategySelector.SelectedAtmStrategy, entryOrder); }); } else { Dispatcher.InvokeAsync(() => { outputBox.AppendText(string.Format("{0}Entrada copiada sin ATM", Environment.NewLine)); entryOrder = accountSelector.SelectedAccount.CreateOrder(Instru ment, e.Order.OrderAction, e.Order.OrderType, tifSelector.SelectedTif, qudSelector.Value, e.LimitPrice, e.StopPrice, string.Empty, "Entry", null); accountSelector.SelectedAccount.Submit(new[] { entryOrder}); }); } } }
AddOnFramework_Working - OnOrderUpdate2 Exception: System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it. at System.Windows.Threading.Dispatcher.VerifyAccess() at System.Windows.DependencyObject.GetValue(Dependenc yProperty dp) at NinjaTrader.Gui.NinjaScript.AtmStrategy.AtmStrateg ySelector.get_SelectedAtmStrategy() at NinjaTrader.Gui.NinjaScript.AddOnFramework_Working Tab.OnOrderUpdate2(Object sender, OrderEventArgs e) in c:\Users\Jeziel\Documents\NinjaTrader 8\bin\Custom\AddOns\AddOnFramework_Working.cs:line 1881
Comment