0% found this document useful (0 votes)
29 views3 pages

Trendy 31

trading strategy

Uploaded by

fornabin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views3 pages

Trendy 31

trading strategy

Uploaded by

fornabin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

#region Using declarations

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Forms;
using System.Windows.Media;
using System.Xml.Serialization;
using NinjaTrader.Cbi;
using NinjaTrader.Gui;
using NinjaTrader.Gui.Chart;
using NinjaTrader.Gui.NinjaScript;
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 NinjaTrader.NinjaScript.Strategies;
#endregion

/*
Trendy v3.0 MA
Version: 3.0 Oct 19, 2024
Strategy by Khanh Nguyen
*/

namespace NinjaTrader.NinjaScript.Strategies.KCStrategies
{
public class Trendy31 : KCAlgoBase
{
// Strategy variables
private T3TrendFilter T3TrendFilter1;
private double Up;
private double Down;

protected override void OnStateChange()


{
base.OnStateChange();

if (State == State.SetDefaults)
{
Description = "Strategy based on the T3TrendFilter indicator.";
Name = "Trendy v3.1";
StrategyName = "Trendy";
Version = "3.1 Nov. 2024";
Credits = "Strategy by Khanh Nguyen";
StrategySettings = "Unirenko 1-44-46";

Contracts = 1;
InitialStop = 62;
ProfitTarget = 16;
// Filter settings
Factor = 0.5;
Period1 = 1;
Period2 = 1;
Period3 = 1;
Period4 = 1;
Period5 = 9;
}
else if (State == State.DataLoaded)
{
InitializeIndicators();
}
}

protected override void OnBarUpdate()


{
if (CurrentBars[0] < BarsRequiredToTrade)
return;

// Update trend filter values


Up = T3TrendFilter1.Values[0][0];
Down = T3TrendFilter1.Values[1][0];

base.OnBarUpdate();
}

protected override bool validateEntryLong()


{
// Validate long entry based on T3TrendFilter
return Up >= 5 && Down == 0 && Uptrend;
}

protected override bool validateEntryShort()


{
// Validate short entry based on T3TrendFilter
return Down <= -5 && Up == 0 && Downtrend;
}

protected override bool validateExitLong()


{
// Logic for validating long exits
// return isLong && momoDown;
return false;
}

protected override bool validateExitShort()


{
// Logic for validating short exits
// return isShort && momoUp;
return false;
}

#region Indicators
protected override void InitializeIndicators()
{
// Initialize the T3TrendFilter indicator
T3TrendFilter1 = T3TrendFilter(Close, Factor, Period1, Period2,
Period3, Period4, Period5, false);
AddChartIndicator(T3TrendFilter1);
}
#endregion

#region Properties

[NinjaScriptProperty]
[Display(Name = "Factor", Order = 1, GroupName = "04. Filters Settings -
T3TrendFilter")]
public double Factor { get; set; }

[NinjaScriptProperty]
[Display(Name = "Period1", Order = 2, GroupName = "04. Filters Settings -
T3TrendFilter")]
public int Period1 { get; set; }

[NinjaScriptProperty]
[Display(Name = "Period2", Order = 3, GroupName = "04. Filters Settings -
T3TrendFilter")]
public int Period2 { get; set; }

[NinjaScriptProperty]
[Display(Name = "Period3", Order = 4, GroupName = "04. Filters Settings -
T3TrendFilter")]
public int Period3 { get; set; }

[NinjaScriptProperty]
[Display(Name = "Period4", Order = 5, GroupName = "04. Filters Settings -
T3TrendFilter")]
public int Period4 { get; set; }

[NinjaScriptProperty]
[Display(Name = "Period5", Order = 6, GroupName = "04. Filters Settings -
T3TrendFilter")]
public int Period5 { get; set; }

#endregion
}
}

You might also like