i created a strategy that creates Atm strategies.
Position.MarketPosition does not work in this case, so I want to check if I am flat with GetAtmStrategyMarketPosition.
However I get ann error : Value cannot be null. Parameter name : key
I generate a unique atm strategy Id for every trade.
What do i do wrong?
if
(
atmStrategyId != null &&
(GetAtmStrategyMarketPosition(atmStrategyId) == MarketPosition.Flat ) &&
EMA1[0] > EMA2[0]
&& EMA2[0] > EMA3[0]
)
{
atmStrategyId = GetAtmStrategyUniqueId();
atmStrategyOrderId = GetAtmStrategyUniqueId();
ChartControl.Dispatcher.InvokeAsync((Action)(() =>
{
NinjaTrader.Gui.Tools.QuantityUpDown quantitySelector = (Window.GetWindow(ChartControl.Parent).FindFirst("ChartTraderControlQuantitySelector") as NinjaTrader.Gui.Tools.QuantityUpDown);
contr = quantitySelector.Value ;
AtmStrategyCreate(OrderAction.Buy, OrderType.Market, 0, 0, TimeInForce.Day,
atmStrategyOrderId, atmname, atmStrategyId, (atmCallbackErrorCode, atmCallbackId) => {
// checks that the call back is returned for the current atmStrategyId stored
if (atmCallbackId == atmStrategyId)
{
// check the atm call back for any error codes
if (atmCallbackErrorCode == Cbi.ErrorCode.NoError)
{
// if no error, set private bool to true to indicate the atm strategy is created
isAtmStrategyCreated = true;
}
}
});
}
)

Comment