Boll Squeeze with JMA for MT4
|
|||
|
The code below provides a nice indicator for MT4. Can someone advise on what code to insert to get it to calculate on JMA based boll bands if possible. If it works it should be a great indicator
#property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Blue #property indicator_color2 White #property indicator_color3 White #property indicator_color4 Blue //---- input parameters extern int bolPrd=20; extern double bolDev=2.0; extern int keltPrd=20; extern double keltFactor=1.2; extern int momPrd=12; //---- buffers double upB[]; double loB[]; double upK[]; double loK[]; int i,j,slippage=3; double breakpoint=0.0; double ema=0.0; int peakf=0; int peaks=0; int valleyf=0; int valleys=0, limit=0; double ccis[61],ccif[61]; double delta=0; double ugol=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0,upB); SetIndexEmptyValue(0,EMPTY_VALUE); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1,loB); SetIndexEmptyValue(1,EMPTY_VALUE); SetIndexStyle(2,DRAW_ARROW); SetIndexBuffer(2,upK); SetIndexEmptyValue(2,EMPTY_VALUE); SetIndexArrow(2,159); SetIndexStyle(3,DRAW_ARROW); SetIndexBuffer(3,loK); SetIndexEmptyValue(3,EMPTY_VALUE); SetIndexArrow(3,159); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int shift,limit; double diff,d,std,bbs; if (counted_bars<0) return(-1); if (counted_bars>0) counted_bars--; limit=Bars-31; if(counted_bars>=31) limit=Bars-counted_bars-1; for (shift=limit;shift>=0;shift--) { //d=iMomentum(NULL,0,momPrd,PRICE_CLOSE,shift); d=LinearRegressionValue(bolPrd,shift); if(d>0) { upB[shift]=d; loB[shift]=0; } else { upB[shift]=0; loB[shift]=d; } diff = iATR(NULL,0,keltPrd,shift)*keltFactor; std = iStdDev(NULL,0,bolPrd,MODE_SMA,0,PRICE_CLOSE,shift ); bbs = bolDev * std / diff; if(bbs<1) { upK[shift]=0; loK[shift]=EMPTY_VALUE; } else { loK[shift]=0; upK[shift]=EMPTY_VALUE; } } return(0); } //+------------------------------------------------------------------+ double LinearRegressionValue(int Len,int shift) { double SumBars = 0; double SumSqrBars = 0; double SumY = 0; double Sum1 = 0; double Sum2 = 0; double Slope = 0; SumBars = Len * (Len-1) * 0.5; SumSqrBars = (Len - 1) * Len * (2 * Len - 1)/6; for (int x=0; x<=Len-1;x++) { double HH = Low[x+shift]; double LL = High[x+shift]; for (int y=x; y<=(x+Len)-1; y++) { HH = MathMax(HH, High[y+shift]); LL = MathMin(LL, Low[y+shift]); } Sum1 += x* (Close[x+shift]-((HH+LL)/2 + iMA(NULL,0,Len,0,MODE_EMA,PRICE_CLOSE,x+shift))/2); SumY += (Close[x+shift]-((HH+LL)/2 + iMA(NULL,0,Len,0,MODE_EMA,PRICE_CLOSE,x+shift))/2); } Sum2 = SumBars * SumY; double Num1 = Len * Sum1 - Sum2; double Num2 = SumBars * SumBars-Len * SumSqrBars; if (Num2 != 0.0) { Slope = Num1/Num2; } else { Slope = 0; } double Intercept = (SumY - Slope*SumBars) /Len; //debugPrintln(Intercept+" : "+Slope); double LinearRegValue = Intercept+Slope * (Len - 1); return (LinearRegValue); } |
![]() |
|
|||
|
u basicly have the Bollinger band squeze indicator, here is a more faster version(not by much)..make sure u have the jma.mq4 indicator
let us know if it's for any use to you. Code:
|
|
|||
|
Hi Spahiu,
Thank you for posting the code above. Greatly appreciated. As you say, it is a little faster, a couple of bars sometimes on the same settings so that's a great improvement on its own. I will experiment with the settings later to see how the JMA low lag can cope. By the way, it is also a very good indicator to keep you out of flat markets. Set the colours to blue, white, white, blue. When the 0 line dots are white, keep out. Cheers Chris |
|
|||
|
Quote:
|
|
|||
|
Here is the Squeeze indicator by Nick Bilak, I found the indicator works better for me with the following settings
extern int bolPrd=20; extern double bolDev=2.0; extern int keltPrd=18; extern double keltFactor=1.7;//1.5 extern int momPrd=14; Put the bbsqueeze on your chart, then add the indicator from the previous post in the same window. This squeeze indicator has already been posted in text form, in this thread |
| The following users have thanked maumax for useful post above: | ||
|
|||
|
Quote:
How to use ? |
|
|||
|
How to use is found in the photos, also attached is the dayimpluse indicator, I find it great for making sure you enter the correct direction for the day, just drag a 34 ema into the window with the indicator
|
|
||||
|
banzai, check out http://www.fxfisherman.com/forums/tu...ndicators.html
Note that EMA (actually "Moving Average") must be built-in indicator, not custom indicator. |
![]() |
«
Previous Thread
|
Next Thread
»
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| JMA MACD and JMA CCI Indicators for MetaTrader | scorpion | Indicators | 23 | 11-26-2009 06:53 PM |
| Another JMA system... | forextrades | Trading Systems | 4 | 11-13-2007 02:31 AM |
| Attention Ravique and Sccz97: JMA | svrz | Indicators | 3 | 10-01-2005 09:48 AM |
All times are GMT. The time now is 07:24 PM.
Powered by vBulletin Version 3.6.2
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.1.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.1.0
Registered members have access to special online forex currency trading tools, software, mt4 expert advisors and indicators. Register now







How to use ?

Linear Mode


