I think I followed the examples properly, but upon running my strategy, I get the error ... in strategy while executing OnBarUpdate() Object reference not set to instance of object.
It occurs as soon as I un-comment the line bolded below longSeries.Set(longTrigger1);
I've included the other code where longSeries is declared and initialized. Please help. thank you.
// User defined variables (add any user defined variables below)
private DataSeries shortSeries;
private DataSeries longSeries;
string someString = "";
string barStatsString = "";
string barStatsTitle = "";
string openingTimeString = "";
int barsAgo = 0;
double thisClosingPrice = 0;
double stop1Price = 0;
double stop2Price = 0;
double shortTrigger1 = 0;
double longTrigger1 = 0;
double shortTarget1 = 0;
double longTarget1 = 0;
double shortTarget2 = 0;
double longTarget2 = 0;
int shortFailures = 0;
int longFailures = 0;
// Order Management Variables:
private IOrder entryOrder = null; // This variable holds an object representing our entry order
private IOrder stopOrder = null; // This variable holds an object representing our stop loss order
private IOrder targetOrder = null; // This variable holds an object representing our profit target order
private IOrder stopOrder2 = null; // This variable holds an object representing our stop loss order
private IOrder targetOrder2 = null; // This variable holds an object representing our profit target order
private IOrder exitOrder = null; // may use this to process exiting trades in ATM market following strategies.
#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()
{
Log("starting Strategy at " + DateTime.Now.ToString(), LogLevel.Error);
Add(ADXVMA(ADX_Per));
CalculateOnBarClose = true;
DataSeries shortSeries = new DataSeries(this);
DataSeries longSeries = new DataSeries(this);
}
/// <summary>
/// Called on each bar update event (incoming tick)
/// </summary>
protected override void OnBarUpdate()
{
someString = (entryOrder != null) ? "there are " : "there are no ";
Log("At " + Time[0].ToString() + ", the market position is " + }
someString = (entryOrder != null) ? "there are " : "there are no ";
Log("At " + Time[0].ToString() + ", the market position is " + Position.MarketPosition.ToString() + ", and " + someString + "orders open. There have been " + longFailures.ToString() + " long failures and " + shortFailures.ToString() + " short failures." , LogLevel.Information);
if (Position.MarketPosition == MarketPosition.Flat) {
// Condition set 1
thisClosingPrice = Close[0];
longTrigger1 = (10000*thisClosingPrice - 10000*entryRange)/10000;
shortTrigger1 = (10000*thisClosingPrice + 10000*entryRange)/10000;
longSeries.Set(longTrigger1);
//shortSeries.Set(shortTrigger1);
Comment