Hi Guys!
Please help with the strategy code for NT8 using PriceActionSwingPro. I looked through the forum, in one post there were tips. I tried to create a simple strategy, but it throws an error. Here is the code:
#region Using declarations
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Xml.Serialization;
using
NinjaTrader.Cbi;
using NinjaTrader.Gui;
using NinjaTrader.Gui.Chart;
using NinjaTrader.Gui.SuperDom;
using NinjaTrader.Gui.Tools;
using NinjaTrader.Data;
using NinjaTrader.NinjaScript;
using NinjaTrader.Core.FloatingPoint;
using NinjaTrader.NinjaScript.Indicators;
using NinjaTrader.NinjaScript.DrawingTools;
using PriceActionSwing.Base;
#endregion
//This namespace holds Strategies in this folder and is required. Do not change it.
namespace NinjaTrader.NinjaScript.Strategies
{
public class MyCustomStrategy2 : Strategy
{
private NinjaTrader.NinjaScript.Indicators.PriceActionSwing.PriceActionSwingPro _pasPro;
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = @"Enter the description for your new custom Strategy here.";
Name = "MyCustomStrategy2";
Calculate = Calculate.OnBarClose;
EntriesPerDirection = 1;
EntryHandling = EntryHandling.AllEntries;
IsExitOnSessionCloseStrategy = true;
ExitOnSessionCloseSeconds = 30;
IsFillLimitOnTouch = false;
MaximumBarsLookBack = MaximumBarsLookBack.TwoHundredFiftySix;
OrderFillResolution = OrderFillResolution.Standard;
Slippage = 0;
StartBehavior = StartBehavior.WaitUntilFlat;
TimeInForce = TimeInForce.Gtc;
TraceOrders = false;
RealtimeErrorHandling = RealtimeErrorHandling.StopCancelClose;
StopTargetHandling = StopTargetHandling.PerEntryExecution;
BarsRequiredToTrade = 20;
// Disable this property for performance gains in Strategy Analyzer optimizations
// See the Help Guide for additional information
IsInstantiatedOnEachOptimizationIteration = true;
}
else if (State == State.Configure)
{
_pasPro = PriceActionSwingPro(SwingStyle.
Gann, 5, 20, false, AbcPatternMode.Long_Short, DivergenceMode.Custom, DivergenceDirection.Long_Short, 10, 26, 9, false, false, false, false, SwingLengthStyle.False, SwingDurationStyle.False, false, false, false, SwingTimeStyle.False, SwingVolumeStyle.False, VisualizationStyle.False, 15, 30, 45, 60, 75, 90, DashStyleHelper.Solid, 3, false, 10, DashStyleHelper.Solid, DashStyleHelper.Dash, 2, 2, 50, 92, 61, DashStyleHelper.Solid, 4, 38, true, true, 5, true, true, DashStyleHelper.Dot, DashStyleHelper.Dot, 2, 2, false, DashStyleHelper.Solid, 1, true, true, true, true, Priority.High, Priority.High, "AbcLong.wav", "AbcLongEntry.wav", "AbcShort.wav", "AbcShortEntry.wav", false, Priority.Medium, "DoubleBottom", "DoubleBottom.wav", 0, false, Priority.Medium, "DoubleTop", "DoubleTop.wav", 0, false, Priority.Medium, "HigherLow", "HigherLow.wav", 0, false, Priority.Medium, "LowerHigh", "LowerHigh.wav", 0, false, Priority.Medium, "SwingChange", "SwingChange.wav", 0, true, Priority.Medium, "DivergenceRegularHigh", "DivergenceRegularHigh.wav", 0, true, Priority.Medium, "DivergenceHiddenHigh", "DivergenceHiddenHigh.wav", 0, true, Priority.Medium, "DivergenceRegularLow", "DivergenceRegularLow.wav", 0, true, Priority.Medium, "DivergenceHiddenLow", "DivergenceHiddenLow.wav", 0);
}
}
protected override void OnBarUpdate()
{
//Add your custom strategy logic here.
if (_pasPro.abcSignal[0] == 2)
{
EnterLong(DefaultQuantity, "");
}
}
}
}
Regards,