|January 8th, 2016, 05:26 AM||#1 (permalink)|
London United Kingdom
Futures Experience: Beginner
Favorite Futures: ES
Posts: 11 since Dec 2014
Thanks: 1 given, 2 received
I have been trying to create an indicator which identifies when a MIN of 4 to a MAX of say 20 bars are within a 2.5pts range. Any time the range is broken, the range should end and it should attempt to identify a new range. I have been having the following problems:
1. When the range is broken, if the bar that breaks the range is still within 2.5pts of say the last four bars of the previous range, it identifies that as a range. What I would like is for the indicator to look for a new range once one is broken, so each bar could only be included in a range once.
2. The dot that marks each range to appear only twice, once at the start of the range, and once at the end.
3. I donít seem to be able to get it to work in the limited manner I have currently coded for between a min and max lookback period. It only seems to work when one period is used.
My current code is below.
Any assistance would be much appreciated.
// Wizard generated variables
private double flagPriceRangeMultiplier = 10; // Default setting for FlagRange 10 x TickSize = 2.5pts
private double mediumPriceRangeMultiplier = 14; // Default setting for MediumRange 14 x TickSize = 3.5pts
private double largePriceRangeMultiplier = 18; // Default setting for LargeRange 18 x TickSize = 4.5pts
// User defined variables (add any user defined variables below)
private int minLookBackPeriod = 6; //Default setting for minimum look back period
private int maxLookBackPeriod = 15; //Default setting for maximum look back period
private string TagBullVol = "bullVol";
private string TagBearVol = "bearVol";
bool maxMinWithinFlag; //Set to true below if all bars in minimum look back period (currently 4 for ES) are within the defined price range
int maxMinWithinFlagBar; //below it defines the 1st bar of the minimum look back period (currently 4 for ES) within the defined price range
/// This method is used to configure the indicator and is called once before any bar data is loaded.
protected override void Initialize()
Overlay = true;
/// Called on each bar update event (incoming tick)
protected override void OnBarUpdate()
// Use this method for calculating your indicator values. Assign a value to each
if (CurrentBar < (minLookBackPeriod - 1)) return;
int counter = 0;
for (int i = 0; i < minLookBackPeriod; i++)
if ((MAX(High, minLookBackPeriod)[i] - MIN(Low, minLookBackPeriod)[i]) <= flagPriceRangeMultiplier * TickSize) counter++;
if (counter >= minLookBackPeriod)
DrawDot(TagBullVol + CurrentBar, AutoScale, 0, Low - 6 * TickSize, Color.Blue);