- Background reading: Create your own rules in NinjaTrader scripts
- Using custom signals to inject signals is the new and best way.
- Click here for Discord Forum link
1) Add a reference to the NinjaTrader Editor for the file "\Documents\NinjaTrader 8\bin\CustomATS.NinjaTrader8.AlgoFuturesTrader.dll"
2) Download and save the Algo Entry template "AFTCustomSignal001" to:
d:\Users\Trader\Documents\NinjaTrader 8\MicroTrends\templates\MarketAnalyzer\MTLTradeEntry\AFTCustomSignal001
3) Workspace attached "AFT-CustomSignal-001" - set for playback. Simply change the account in the market analyzer columns to your sim or demo account - save to
\Documents\NinjaTrader 8\workspaces\AFT-CustomSignal-001
CODE EXAMPLE
protected override void OnBarUpdate()
{
if (CurrentBar < 1) return;
if (State != State.Realtime) return;
try {
if (IsTradeSignalLong(TradeSignalMode))
{
Draw.ArrowUp(this, CurrentBar.ToString(), false, 0, Close[0], Brushes.LimeGreen);
// Create a long signal
MicroTrends.NT8.AlgoTradingSignal signal = new MicroTrends.NT8.AlgoTradingSignal();
signal.InstrumentName = Instrument.MasterInstrument.Name;
signal.TradeSignalChannel = TradeSignalChannel;
signal.AFTSignalActionDateTime = Time[0];
signal.AFTSignalAction = AFTSignalAction.Buy;
MicroTrends.NT8.AlgoTradingSignalServices.Submit(signal);
Print("Send: " + signal.ToString());
}
else if (IsTradeSignalShort(TradeSignalMode))
{
Draw.ArrowDown(this, CurrentBar.ToString(), false, 0, Close[0], Brushes.DarkGray);
// Create a short signal
MicroTrends.NT8.AlgoTradingSignal signal = new MicroTrends.NT8.AlgoTradingSignal();
signal.InstrumentName = Instrument.MasterInstrument.Name;
signal.TradeSignalChannel = TradeSignalChannel;
signal.AFTSignalActionDateTime = Time[0];
signal.AFTSignalAction = AFTSignalAction.Sell;
MicroTrends.NT8.AlgoTradingSignalServices.Submit(signal);
Print("Send: " + signal.ToString());
}
}
catch (Exception ex)
{
Print(ex.ToString());
}
// Add your custom indicator logic here.
}