Question #1 am I correctly retrieving chart trader information such as atm strategy, and # of contracts
Your help would be greatly appreciated
/* ################################################## ############################################
############################# CALL STRATEGY TO ENTER TRADES ##################################
################################################## ############################################## */
public void CallStrategy()
{
if (State == State.Historical)
return;
// ################################# BUY TRADE ################################################## ##########
if (nTradeType == 0) // if it is a buy trade
{
int nContractQuantity = 0;
string AtmStrategyName1 = "";
ChartControl.Dispatcher.InvokeAsync((Action)(() =>
{
NinjaTrader.Gui.Tools.QuantityUpDown
quantitySelector = (Window.GetWindow(ChartControl.Parent).FindFirst(" ChartTraderControlQuantitySelector") as NinjaTrader.Gui.Tools.QuantityUpDown);
nContractQuantity = quantitySelector.Value;
Print("Contract quantity is : "+ nContractQuantity.ToString());
}));
ChartControl.Dispatcher.InvokeAsync((Action)(() =>
{
NinjaTrader.Gui.NinjaScript.AtmStrategy.AtmStrateg ySelector selector = (Window.GetWindow(ChartControl.Parent).FindFirst(" ChartTraderControlATMStrategySelector") as NinjaTrader.Gui.NinjaScript.AtmStrategy.AtmStrateg ySelector);
AtmStrategyName1 = selector.Name;
Print("ATMStrategyName is : "+ selector.Name);
}));
ChartControl.InvalidateVisual();
TriggerCustomEvent(o =>
{
Order stopOrder = null;
stopOrder = myAccount.CreateOrder(Instrument,
OrderAction.Buy,
OrderType.StopMarket,
TimeInForce.Day,
nContractQuantity,
0,
0,
string.Empty,
"Entry",
null);
// Submits our entry order with the ATM strategy named "myAtmStrategyName"
NinjaTrader.NinjaScript.AtmStrategy.StartAtmStrate gy(AtmStrategyName1, stopOrder);
myAccount.Submit(new[] { stopOrder });
}, null);
nTradeType = 2;
Draw.TextFixed(this, "TradeType", "Buy Activated", TextPosition.BottomLeft);
}
//################################### SELL TRADE ################################################## ####
else if(nTradeType == 1)
{
int nContractQuantity = 0;
string AtmStrategyName1 = "";
ChartControl.Dispatcher.InvokeAsync((Action)(() =>
{
NinjaTrader.Gui.Tools.QuantityUpDown quantitySelector = (Window.GetWindow(ChartControl.Parent).FindFirst(" ChartTraderControlQuantitySelector") as NinjaTrader.Gui.Tools.QuantityUpDown);
nContractQuantity = quantitySelector.Value;
}));
ChartControl.Dispatcher.InvokeAsync((Action)(() =>
{
NinjaTrader.Gui.NinjaScript.AtmStrategy.AtmStrateg ySelector selector = (Window.GetWindow(ChartControl.Parent).FindFirst(" ChartTraderControlATMStrategySelector") as NinjaTrader.Gui.NinjaScript.AtmStrategy.AtmStrateg ySelector);
AtmStrategyName1 = selector.Name;
Print("ATMStrategyName is : "+ nContractQuantity.ToString());
Print("ATMStrategyName is : "+ selector.Name);
}));
//##### NOT SURE IF I NEED THIS LINE OF CODE
ChartControl.InvalidateVisual();
TriggerCustomEvent(o =>
{
Order stopOrder = null;
stopOrder = myAccount.CreateOrder(Instrument,
OrderAction.Sell,
OrderType.StopMarket,
TimeInForce.Day,
nContractQuantity,
0,
0,
string.Empty,
"Entry",
null);
// Submits our entry order with the ATM strategy named "myAtmStrategyName"
NinjaTrader.NinjaScript.AtmStrategy.StartAtmStrate gy(AtmStrategyName1, stopOrder);
myAccount.Submit(new[] { stopOrder });
}, null);
nTradeType = 2;
Draw.TextFixed(this, "TradeType", "Sell Activated", TextPosition.BottomLeft);
}
}
//################################################## #################################################
protected override void OnBarUpdate()
{
if(IsFirstTickOfBar)
{
if(sTradeType == "Rectangle Trade Activated" && nTradeType == 99)
{
if(dStartConvertedPrice > dEndConvertedPrice )
{
if(Close[0]> dStartConvertedPrice )
{
sEntryType = "Enter Long Market";
nTradeType = 0;
CallStrategy();
}
}
else
{
if(Close[0]< dEndConvertedPrice )
{
sEntryType = "Enter Short Market";
nTradeType = 1;
CallStrategy();
}
}
}
}
}
Comment