Kind Regards
#region Variables
// Wizard generated variables
private bool onlyGoLong = true; // Default setting for OnlyGoLong
private int aDXStrength = 18; // Default setting for ADXStrength
private int trailingStopLoss = 30; // Default setting for TrailingStopLoss
private int stopLoss = 30; // Default setting for StopLoss
// 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()
{
SetStopLoss("", CalculationMode.Ticks, StopLoss, false);
SetTrailStop("", CalculationMode.Ticks, TrailingStopLoss, false);
CalculateOnBarClose = true;
}
/// <summary>
/// Called on each bar update event (incoming tick)
/// </summary>
protected override void OnBarUpdate()
{
// Condition set 1
if (OnlyGoLong == true
&& CrossAbove(MACD(12, 26, 9).Avg, MACD(12, 26, 9).Avg, 1)
&& CrossAbove(ADX(14), ADXStrength, 1)
&& CrossAbove(DM(14).DiPlus, DM(14).DiMinus, 1)
&& CrossAbove(Stochastics(7, 14, 3).K, Stochastics(7, 14, 3).D, 1))
{
EnterLong(DefaultQuantity, "");
}
// Condition set 2
if (OnlyGoLong == false
&& CrossBelow(MACD(12, 26, 9).Avg, MACD(12, 26, 9).Avg, 1)
&& CrossBelow(DM(14).DiPlus, DM(14).DiMinus, 1)
&& CrossBelow(Stochastics(7, 14, 3).K, Stochastics(7, 14, 3).D, 1)
&& CrossAbove(ADX(14), ADXStrength, 1))
{
EnterShort(DefaultQuantity, "");
}
// Condition set 3
if (CrossBelow(ADX(14), ADXStrength, 1)
|| CrossBelow(MACD(12, 26, 9).Avg, MACD(12, 26, 9).Avg, 1)
|| CrossBelow(DM(14).DiPlus, DM(14).DiMinus, 1)
|| CrossBelow(Stochastics(7, 14, 3).K, Stochastics(7, 14, 3).D, 1))
{
ExitLong("", "");
}
// Condition set 4
if (CrossAbove(DM(14).DiPlus, DM(14).DiMinus, 1)
|| CrossBelow(ADX(14), ADXStrength, 1)
|| CrossAbove(MACD(12, 26, 9).Avg, MACD(12, 26, 9).Avg, 1)
|| CrossAbove(Stochastics(7, 14, 3).K, Stochastics(7, 14, 3).D, 1))
{
ExitShort("", "");
}
}
#region Properties
[Description("Only take Long trades, if false only take Short trades")]
[GridCategory("Parameters")]
public bool OnlyGoLong
{
get { return onlyGoLong; }
set { onlyGoLong = value; }
}
[Description("Trend Strength")]
[GridCategory("Parameters")]
public int ADXStrength
{
get { return aDXStrength; }
set { aDXStrength = Math.Max(1, value); }
}
[Description("Traling Stop Loss")]
[GridCategory("Parameters")]
public int TrailingStopLoss
{
get { return trailingStopLoss; }
set { trailingStopLoss = Math.Max(1, value); }
}
[Description("StopLoss")]
[GridCategory("Parameters")]
public int StopLoss
{
get { return stopLoss; }
set { stopLoss = Math.Max(1, value); }
}
#endregion
}
}
Comment