Boll Squeeze with JMA for MT4
  #1 (permalink)  
Old 10-11-2005, 02:10 PM
Freshman
 
Join Date: Jun 2005
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
dongading is on a distinguished road
Default 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);

}
Reply With Quote
  #2 (permalink)  
Old 10-11-2005, 04:44 PM
Freshman
 
Join Date: Aug 2005
Posts: 9
Thanks: 0
Thanked 2 Times in 2 Posts
spahiu is on a distinguished road
Default

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:
//+------------------------------------------------------------------+ //| bbsqueeze.mq4 | //| Copyright © 2005, Nick Bilak, beluck[AT]gmail.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, Nick Bilak" #property link "http://metatrader.50webs.com/" #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Lime #property indicator_color2 Red #property indicator_color3 Magenta #property indicator_color4 Aqua //---- input parameters extern int bolPrd=20; extern double bolDev=2.0; extern int keltPrd=20; extern double keltFactor=1.5; 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 + iCustom(NULL,0,"JMA",Len,0,0,x+shift))/2); SumY += (Close[x+shift]-((HH+LL)/2 + iCustom(NULL,0,"JMA",Len,0,0,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); }
Reply With Quote
  #3 (permalink)  
Old 10-12-2005, 10:28 AM
Freshman
 
Join Date: Jun 2005
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
dongading is on a distinguished road
Default

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
Reply With Quote
BB separate window
  #4 (permalink)  
Old 01-02-2006, 12:37 PM
Freshman
 
Join Date: Jun 2005
Posts: 7
Thanks: 1
Thanked 1 Time in 1 Post
maumax is on a distinguished road
Default BB separate window

dongaging,

here is another indicator to drag into the same window as your squeeze, so you can see where it is happening
Attached Files
File Type: mq4 BBwithFractdev.mq4 (2.2 KB, 817 views)
Sponsored Links EA Shark - Automated System
We Turned $10,000 Into $194,337
Since January 2007. See Real Records
Reply With Quote
  #5 (permalink)  
Old 01-05-2006, 10:43 PM
Sophomore
 
Join Date: Jan 2006
Posts: 63
Thanks: 0
Thanked 0 Times in 0 Posts
zztop is on a distinguished road
Default

Quote:
Originally Posted by maumax
dongaging,

here is another indicator to drag into the same window as your squeeze, so you can see where it is happening
Hi maumax what is squeeze indi can you post one here
Reply With Quote
  #6 (permalink)  
Old 01-07-2006, 12:53 AM
Freshman
 
Join Date: Jun 2005
Posts: 7
Thanks: 1
Thanked 1 Time in 1 Post
maumax is on a distinguished road
Default

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
Attached Files
File Type: mq4 bbsqueeze.mq4 (4.2 KB, 696 views)
Reply With Quote
The following users have thanked maumax for useful post above:
  #7 (permalink)  
Old 01-08-2006, 09:27 PM
Sophomore
 
Join Date: Jan 2006
Posts: 63
Thanks: 0
Thanked 0 Times in 0 Posts
zztop is on a distinguished road
Default

Quote:
Originally Posted by maumax
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
Thanks man How to use ?
Reply With Quote
  #8 (permalink)  
Old 01-21-2006, 01:33 AM
Freshman
 
Join Date: Jun 2005
Posts: 7
Thanks: 1
Thanked 1 Time in 1 Post
maumax is on a distinguished road
Default

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
Attached Images
File Type: png squeeze.png (50.7 KB, 1386 views)
File Type: png squeeze2.png (69.0 KB, 1064 views)
Attached Files
File Type: mq4 DayImplus.mq4 (2.3 KB, 595 views)
Reply With Quote
  #9 (permalink)  
Old 06-20-2006, 01:55 AM
Sophomore
 
Join Date: Jun 2006
Posts: 38
Thanks: 3
Thanked 44 Times in 17 Posts
banzai will become famous soon enough
Default

how do I place the 34 EMA over the DayImPlus indicator? I drag the EMA over but it doesn't work. I'm using MetaTrader4. Please upload your template. Thanks.
Reply With Quote
  #10 (permalink)  
Old 06-21-2006, 09:25 AM
scorpion's Avatar
Forex Guru
 
Join Date: Aug 2004
Posts: 2,118
Thanks: 213
Thanked 387 Times in 155 Posts
scorpion is a splendid one to beholdscorpion is a splendid one to beholdscorpion is a splendid one to beholdscorpion is a splendid one to beholdscorpion is a splendid one to beholdscorpion is a splendid one to beholdscorpion is a splendid one to beholdscorpion is a splendid one to behold
Default

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.
__________________
Make easy pips with the Advanced Economic Calendar for Forex Trading.
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


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

Registered members have access to special online forex currency trading tools, software, mt4 expert advisors and indicators. Register now