Description
Sometimes it's easy to lose track of the bigger picture. This indicator draws candle boxes based on high and low around the current price action. For example, if I'm trading M1, I like to add H1 and H20 so that I don't get lost. These levels also work as S/R zones.
using System;
using cAlgo.API;
using cAlgo.API.Internals;
using cAlgo.API.Indicators;
using cAlgo.Indicators;
namespace cAlgo
{
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class ShowCandles : Indicator
{
[Parameter()]
public TimeFrame CandleTimeFrame { get; set; }
[Output("H1 CandleHigh", Color = Colors.Teal, LineStyle = LineStyle.Solid, PlotType = PlotType.Line)]
public IndicatorDataSeries H1CandleHigh { get; set; }
[Output("H1 CandleLow", Color = Colors.Teal, LineStyle = LineStyle.Solid, PlotType = PlotType.Line)]
public IndicatorDataSeries H1CandleLow { get; set; }
MarketSeries h1;
protected override void Initialize()
{
h1 = this.MarketData.GetSeries(CandleTimeFrame);
}
int lastH1Index = 0;
public override void Calculate(int index)
{
var h1Index = h1.OpenTime.GetIndexByTime(this.MarketSeries.OpenTime[index]);
if (lastH1Index != h1Index)
{
H1CandleHigh[index] = h1.High[h1Index];
H1CandleLow[index] = h1.Low[h1Index];
lastH1Index = h1Index;
}
else
{
// Update current candle when High/Lows move
var startOfBar = this.MarketSeries.OpenTime.GetIndexByTime(h1.OpenTime[lastH1Index]);
while (startOfBar <= index)
{
H1CandleHigh[startOfBar] = h1.High[h1Index];
H1CandleLow[startOfBar] = h1.Low[h1Index];
startOfBar++;
}
}
}
}
}
PE
pennyfx
Joined on 27.09.2012
- Distribution: Free
- Language: C#
- Trading platform: cTrader Automate
- File name: ShowCandles.algo
- Rating: 0
- Installs: 4377
- Modified: 13/10/2021 09:54
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.
Hi pennyfx, I found a bug in your indicator. Could you please see https://ctrader.com/forum/ctrader-support/23492 for more details?
Would it be possible for you to enhance the indicator to work in back-testing as it does in live markets?
thanks