Bollinger Band - Multi Timeframe

Posted By: migo

Bollinger Band - Multi Timeframe - 02/10/20 09:17

Hello every one,
I've been trying to get BB to work on multiple time frames but failed miserabily, I read the manual but still something is missing:
I want to have Bar Period of 5 and then M15 M30 H1 H4 H24 timeframe each with its own BB.
My end result is that I want to make a decision on the 5 minutes period, but need to access BB from other timeframes

The code below doesn't seem work:


Code
	StartDate = 2018;
	EndDate = 2019;
	BarPeriod = 5;
	LookBack = 80*4*24; // ~ 4 months
	MaxBars = 2000;

//series for different bands defined using global variables

	while(asset(loop("EUR/USD", "USD/JPY")))
	while(algo(loop("M5", "M15", "H1","H4", "H24")))
	{
		TimeFrame = 1;
			vars Close = series(priceClose());
			vars priceLows = series(priceLow());
			vars priceHighs = series(priceHigh());
			
			BBands((series(10*priceClose())),signal,NbDevUp,NbDevDn,MAType_SMA);
				upperBandM5 = series(rRealUpperBand/10);
				lowerBandM5 = series(rRealLowerBand/10);
				middleBandM5 = series(rRealMiddleBand/10);
				widthM5 = (upperBandM5[1] - lowerBandM5[1])/middleBandM5[0];
		if(Algo == "M15")
		{
				
			// BBands((series(10*priceClose())),signal,NbDevUp,NbDevDn,MAType_SMA);
				// upperBandM15 = series(rRealUpperBand/10);
				// lowerBandM15 = series(rRealLowerBand/10);
				// middleBandM15 = series(rRealMiddleBand/10);
				// widthM15 = (upperBandM15[1] - lowerBandM15[1])/middleBandM15[0];

		}
		else if(Algo == "H1")
		{
			TimeFrame = H1;	
			BBands((series(10*priceClose())),signal,NbDevUp,NbDevDn,MAType_SMA);
			 upperBandH1 = series(rRealUpperBand/10);
			 lowerBandH1 = series(rRealLowerBand/10);
			 middleBandH1 = series(rRealMiddleBand/10);
			 widthH1 = (upperBandH1[1] - lowerBandH1[1])/middleBandH1[0];
		}
		else if(Algo == "H4")
		{
			TimeFrame = H4; //4*4;		
			BBands((series(10*priceClose())),signal,NbDevUp,NbDevDn,MAType_SMA);
			 upperBandH4 = series(rRealUpperBand/10);
			 lowerBandH4 = series(rRealLowerBand/10);
			 middleBandH4 = series(rRealMiddleBand/10);
			 widthH4 = (upperBandH4[1] - lowerBandH4[1])/middleBandH4[0];
			
		}
		
		else if(Algo == "H24")
		{
			TimeFrame = H4;		
			BBands((series(10*priceClose())),signal,NbDevUp,NbDevDn,MAType_SMA);
			 upperBandH24 = series(rRealUpperBand/10);
			 lowerBandH24 = series(rRealLowerBand/10);
			 middleBandH24 = series(rRealMiddleBand/10);
			widthH24 = (upperBandH24[1] - lowerBandH24[1])/middleBandH24[0];

		}
		
				if (crossOver(Close, upperBandH4)) //This causes Zorro to crash
				{
					LifeTime = 1;
					enterShort();
				}
}


Appreciate your inputs.
Posted By: jcl

Re: Bollinger Band - Multi Timeframe - 02/11/20 11:32

You're crossing over an uninitialized variable, so I would expect your code not to work. But it won't cause a "crash".
Posted By: migo

Re: Bollinger Band - Multi Timeframe - 02/13/20 07:33

Thanks for your answer!
By crash I mean Zorro unexpectedly exit, it just prematurely terminate without any error message, I'm using the latest build.

I tried to to fix all the variables and tried different techniques but still failing to multi BB timeframe to work, if there is a small example of couple of time frame that will be really helpful.
Thanks.
Posted By: danatrader

Re: Bollinger Band - Multi Timeframe - 02/13/20 18:13

I think it goes into the else if(Algo == "H24") so it ommits the else if(Algo == "H4"), therefore in the H24 the "upperBandH4" is not initialized.
Maybe to verify, let Zorro return the value of "upperBandH4" instead of the "crossover" statement.
Posted By: migo

Re: Bollinger Band - Multi Timeframe - 02/15/20 06:50

if (!is(LOOKBACK))
That seem to do the trick!

Thanks everyone for helping out!
© 2024 lite-C Forums