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>
/// Trades like a scalper
/// </summary>
[Description("Trades like a Swing Trader")]
public class LineInSand : Strategy
{
#region Variables
// Wizard generated variables
private double pricepivot = 2830.00; // Default setting for Pricepivot
private int tickprofit = 160; // Default setting for Tickprofit
private int tickstoploss = 16; // Default setting for Tickstoploss
private int trailtick = 40; // Default setting for Trailtick
private int quantity = 1;
private int starttime = 83000;
private int stoptime = 160000;
private int startdate = 20190101;
private int stopdate = 20191231;
// 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(CurrentDayOHL());
SetProfitTarget("", CalculationMode.Ticks, Tickprofit);
SetTrailStop("", CalculationMode.Ticks, Tickstoploss, true);
SetTrailStop("", CalculationMode.Ticks, Trailtick, true);
CalculateOnBarClose = true;
}
/// <summary>
/// Called on each bar update event (incoming tick)
/// </summary>
protected override void OnBarUpdate()
{
if (ToDay(Time[0])>= startdate && ToDay(Time[0]) <= stopdate)
{
if ((ToTime(Time[0]) >= starttime && ToTime(Time[0]) <= stoptime))
{
// Condition set 1
if (Close[0] > Pricepivot)
{
DrawText("Buy!" + CurrentBar, "Buy!", 0, -2, Color.ForestGreen);
EnterLong(Quantity, "");
}
// Condition set 2
if (Close[0] < Pricepivot)
{
DrawText("Sell!" + CurrentBar, "Sell!", 0, 2, Color.DeepPink);
EnterShort(Quantity, "");
}
}
}
}
#region Properties
[Description("pivot")]
[GridCategory("Parameters")]
public double Pricepivot
{
get { return pricepivot; }
set { pricepivot = Math.Max(1, value); }
}
[Description("tick profit")]
[GridCategory("Parameters")]
public int Tickprofit
{
get { return tickprofit; }
set { tickprofit = Math.Max(1, value); }
}
[Description("quantity")]
[GridCategory("Parameters")]
public int Quantity
{
get { return quantity; }
set { quantity = Math.Max(1, value); }
}
[Description("tick stoploss")]
[GridCategory("Parameters")]
public int Tickstoploss
{
get { return tickstoploss; }
set { tickstoploss = Math.Max(1, value); }
}
[Description("trail tick stop")]
[GridCategory("Parameters")]
public int Trailtick
{
get { return trailtick; }
set { trailtick = Math.Max(1, value); }
}
[Description("")]
[GridCategory("Parameters")]
public int Startdate
{
get { return startdate; }
set { startdate = Math.Max(1, value); }
}
[Description("")]
[GridCategory("Parameters")]
public int Stoptdate
{
get { return stopdate; }
set { stopdate = Math.Max(1, value); }
}
[Description("")]
[GridCategory("Parameters")]
public int Starttime
{
get { return starttime;}
set { starttime = Math.Max(1, value); }
}
[Description("")]
[GridCategory("Parameters")]
public int Stoptime
{
get { return stoptime; }
set { stoptime = Math.Max(1, value); }
}
#endregion
}
}
Comment