I am trying to develop a Strategy using Multi timeframe Ergo Oscillator. But I am getting error when i compile the below code
#region Using declarations
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Xml.Serialization;
using NinjaTrader.Cbi;
using NinjaTrader.Data;
using NinjaTrader.Indicator;
using NinjaTrader.Gui.Chart;
using NinjaTrader.Strategy;
#endregion
// This namespace holds all strategies and is required. Do not change it.
namespace NinjaTrader.Strategy
{
/// <summary>
/// Enter the description of your strategy here
/// </summary>
[Description("Enter the description of your strategy here")]
public class ErgoStrategy : Strategy
{
#region Variables
// Wizard generated variables
private int fast = 3; // Default setting for Fast 3
private int slow = 14; // Default setting for Slow 14
private int signalLen = 5; // Default setting for SignalLen 5
private DataSeries signalLine;
private DataSeries signal;
private DataSeries myEMA;
// User defined variables (add any user defined variables below)
#endregion
/// <summary>
/// This method is used to configure the strategy and is called once before any strategy method is called.
/// </summary>
protected override void Initialize()
{
Add(ErgodicNew(3, 5, 14, true));
CalculateOnBarClose = true;
Add(PeriodType.Minute, 2);
Add(PeriodType.Minute, 30);
}
/// <summary>
/// Called on each bar update event (incoming tick)
/// </summary>
protected override void OnBarUpdate()
{
double ergo = TSI(Close,fast,slow)[0] ;
double prev_ergo = TSI(Close,fast,slow)[1] ;
double signal = EMA(TSI(Close,fast,slow),signalLen)[0];
double prev_signal = EMA(TSI(Close,fast,slow),signalLen)[1];
if (BarsInProgress == 2)
{
if (Rising(signalLine) && signal(BarsArray[1])[0] > signal(BarsArray[1])[1])
{
EnterLongLimit(100, Low[1] + 3 * TickSize, "");
}
}
if(BarsInProgress == 1)
{
if (Falling(signalLine))
{
ExitLong("Exit Long from 5min", "Enter Long from 15min");
}
}
}
#region Properties
#endregion
}
}
Comment