Warning! This section will be deprecated on February 1st 2025. Please move all your Indicators to the cTrader Store catalogue.
Description
This is all in one MAs for use in BTMM trading approach.
Version 1.1
- Customizable colors for arrows
- Improved offset calculation for arrows
Version 1.2
- Do not draw arrow marker if candle is not closed
using System;
using cAlgo.API;
using cAlgo.API.Internals;
using cAlgo.API.Indicators;
using cAlgo.Indicators;
namespace cAlgo
{
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AutoRescale = false, AccessRights = AccessRights.None)]
public class MultiMA : Indicator
{
[Parameter("Show Arrows", Group = "Arrows", DefaultValue = true)]
public bool ShowArrow { get; set; }
[Parameter("Buy Color", Group = "Arrows", DefaultValue = "LimeGreen")]
public string UpColorName { get; set; }
[Parameter("Sell Color", Group = "Arrows", DefaultValue = "Red")]
public string DownColorName { get; set; }
[Parameter("Mustard", Group = "Periods", DefaultValue = 5)]
public int Mustard { get; set; }
[Parameter("Ketchup", Group = "Periods", DefaultValue = 13)]
public int Ketchup { get; set; }
[Parameter("Water", Group = "Periods", DefaultValue = 50)]
public int Water { get; set; }
[Parameter("Mayo", Group = "Periods", DefaultValue = 200)]
public int Mayo { get; set; }
[Parameter("Blueberry", Group = "Periods", DefaultValue = 800)]
public int Blueberry { get; set; }
[Output("Mustard", LineColor = "Yellow", Thickness = 2)]
public IndicatorDataSeries MustardResult { get; set; }
[Output("Ketchup", LineColor = "Red", Thickness = 2)]
public IndicatorDataSeries KetchupResult { get; set; }
[Output("Water", LineColor = "Aqua", Thickness = 2)]
public IndicatorDataSeries WaterResult { get; set; }
[Output("Mayo", LineColor = "White", Thickness = 2)]
public IndicatorDataSeries MayoResult { get; set; }
[Output("Blueberry", LineColor = "RoyalBlue", Thickness = 2)]
public IndicatorDataSeries BlueberryResult { get; set; }
private ExponentialMovingAverage MustardMA;
private ExponentialMovingAverage KetchupMA;
private ExponentialMovingAverage WaterMA;
private ExponentialMovingAverage MayoMA;
private ExponentialMovingAverage BlueberryMA;
private string upArrow = "▲";
private string downArrow = "▼";
private double arrowOffset;
private Color UpColor;
private Color DownColor;
protected override void Initialize()
{
try
{
UpColor = Color.FromName(UpColorName);
DownColor = Color.FromName(DownColorName);
} catch
{
UpColor = Color.LimeGreen;
DownColor = Color.Red;
}
MustardMA = Indicators.ExponentialMovingAverage(Bars.ClosePrices, Mustard);
KetchupMA = Indicators.ExponentialMovingAverage(Bars.ClosePrices, Ketchup);
WaterMA = Indicators.ExponentialMovingAverage(Bars.ClosePrices, Water);
MayoMA = Indicators.ExponentialMovingAverage(Bars.ClosePrices, Mayo);
BlueberryMA = Indicators.ExponentialMovingAverage(Bars.ClosePrices, Blueberry);
Bars DailyBars = MarketData.GetBars(TimeFrame.Daily);
AverageTrueRange atr = Indicators.AverageTrueRange(DailyBars, 14, MovingAverageType.Simple);
arrowOffset = atr.Result.Last(1) / 30;
}
public override void Calculate(int index)
{
MustardResult[index] = MustardMA.Result[index];
KetchupResult[index] = KetchupMA.Result[index];
WaterResult[index] = WaterMA.Result[index];
MayoResult[index] = MayoMA.Result[index];
BlueberryResult[index] = BlueberryMA.Result[index];
if (IsLastBar)
return;
if (ShowArrow & MustardResult[index] > KetchupResult[index] & MustardResult[index - 1] < KetchupResult[index - 1])
{
ChartText ct = Chart.DrawText("Arrow" + index, upArrow, index, Bars.LowPrices[index] - arrowOffset, UpColor);
ct.HorizontalAlignment = HorizontalAlignment.Center;
ct.VerticalAlignment = VerticalAlignment.Bottom;
}
if (ShowArrow & MustardResult[index] < KetchupResult[index] & MustardResult[index - 1] > KetchupResult[index - 1])
{
ChartText ct = Chart.DrawText("Arrow" + index, downArrow, index, Bars.HighPrices[index] + arrowOffset, DownColor);
ct.HorizontalAlignment = HorizontalAlignment.Center;
ct.VerticalAlignment = VerticalAlignment.Top;
}
}
}
}
LA
lazarevic.miroslav
Joined on 26.01.2021
- Distribution: Free
- Language: C#
- Trading platform: cTrader Automate
- File name: Multi MA.algo
- Rating: 0
- Installs: 1875
- Modified: 13/10/2021 09:55
Note that publishing copyrighted material is strictly prohibited. If you believe there is copyrighted material in this section, please use the Copyright Infringement Notification form to submit a claim.
Comments
Log in to add a comment.
No comments found.