protected override void Initialize()
{
Add(MACD(12, 26, 9));
Add(PeriodType.Minute, 15); //BarsArray[1]
Add(PeriodType.Minute, 5); //BarsArray[2]
Add(PeriodType.Minute, 1); //BarsArray[3]
SetStopLoss("EnterLong", CalculationMode.Percent, 0.001, true);
SetStopLoss("EnterShort", CalculationMode.Percent, 0.001, true);
CalculateOnBarClose = true;
TraceOrders = true;
}
/// Called on each bar update event (incoming tick)
protected override void OnBarUpdate()
{
if
((MACD(12, 26, 9).Diff[0] > MACD(12, 26, 9).Diff[1])
&& (MACD(BarsArray[1], 12, 26, 9).Diff[0] > MACD(BarsArray[1], 12, 26, 9).Diff[1])
&& (MACD(BarsArray[2], 12, 26, 9).Diff[0] > MACD(BarsArray[2], 12, 26, 9).Diff[1])
&& (MACD(BarsArray[3], 12, 26, 9).Diff[0] > MACD(BarsArray[3], 12, 26, 9).Diff[1]));
{
EnterLong(2,10000, "EnterLong");
}
// Condition set 2
{ if (CrossBelow(EMA(BarsArray[3], 5), EMA(BarsArray[3], 20), 1))
ExitLong(2,10000,"", "EnterLong");
}
if
((MACD(12, 26, 9).Diff[0] < MACD(12, 26, 9).Diff[1])
&&(MACD(BarsArray[1], 12, 26, 9).Diff[0] < MACD(BarsArray[1], 12, 26, 9).Diff[1])
&& (MACD(BarsArray[2], 12, 26, 9).Diff[0] < MACD(BarsArray[2], 12, 26, 9).Diff[1])
&& (MACD(BarsArray[3], 12, 26, 9).Diff[0] < MACD(BarsArray[3], 12, 26, 9).Diff[1]));
{
EnterShort(2,10000,"EnterShort");
{
if (CrossAbove(EMA(BarsArray[3], 5), EMA(BarsArray[3], 20),1))
ExitShort(2,10000,"","EnterShort");
}
}
}

Comment