// Copyright (C) 2024, NinjaTrader LLC <www.ninjatrader.com>.
// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release.
//
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.Data;
using NinjaTrader.NinjaScript;
using NinjaTrader.Core.FloatingPoint;
using NinjaTrader.NinjaScript.Indicators;
using NinjaTrader.NinjaScript.DrawingTools;
#endregion
//This namespace holds strategies in this folder and is required. Do not change it.
namespace NinjaTrader.NinjaScript.Strategies
{
public class SampleMultiTimeFrameTwoStochastics : Strategy
{
private Series<double> primarySeries;
private Series<double> secondarySeries;
private Stochastics fifteenSecNineStochastic;
private Stochastics OneMinNineStochastic;
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
//Description = NinjaTrader.Custom.Resource.NinjaScriptStrategyDes criptionSampleMultiTimeFrameFourStoch;
Name = "SampleMultiTimeFrameTwoStochastics"; //NinjaTrader.Custom.Resource.NinjaScriptStrategyNam eSampleMultiTimeFrameFourStoch;
// This strategy has been designed to take advantage of performance gains in Strategy Analyzer optimizations
// See the Help Guide for additional information
IsInstantiatedOnEachOptimizationIteration = false;
}
else if (State == State.Configure)
{
// Add a 15 minute Bars object to the strategy
AddDataSeries(Data.BarsPeriodType.Second, 30);
// Add a 5 minute Bars object to the strategy
AddDataSeries(Data.BarsPeriodType.Minute, 1);
}
else if (State == State.DataLoaded)
{
fifteenSecNineStochastic = Stochastics(BarsArray[1], 3,9,1);
fifteenSecNineStochastic.IsOverlay = false;
fifteenSecNineStochastic.Panel = 2;
AddChartIndicator(fifteenSecNineStochastic);
OneMinNineStochastic = Stochastics(BarsArray[2],3, 14,1);
OneMinNineStochastic.IsOverlay = false;
OneMinNineStochastic.Panel = 3;
AddChartIndicator(OneMinNineStochastic);
}
}
protected override void OnBarUpdate()
{
if (OneMinNineStochastic.D[0] < 20 && fifteenSecNineStochastic.D[0] < 20)
{
Draw.ArrowUp(this, "SwingHigh_" + CurrentBar, false, 0, Low[0] - TickSize * 2, Brushes.Green);
}
}
}
}
[/CODE]
Comment