Price Data Components
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
#_i_FFT_separate_Volume2_W_D_diff
//+------------------------------------------------------------------+
//| #_i_SpecktrAnalis.mq4 |
//| Copyright © 2006, klot. |
//| klot@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, klot."
#property link "klot@mail.ru"
#import "#_lib_FFT.ex4"
void realfastfouriertransform(double& a[], int tnn, bool inversefft);
#import
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Yellow
#property indicator_color2 Blue
#property indicator_color3 Red
#property indicator_color4 Lime
#property indicator_level1 0.0
//#property indicator_level1 0.0
//#property indicator_level1 0.0
//---- buffers
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
//---
extern int n=7; // Äëèíà ðÿäà
extern int Fmin=2;//2; // Ãðíèöà Ôèëüòðà ïî Í×.
extern int Fmax=60;//128; // Ãðàíèöà Ôèëüòðà ïî Â×.
extern int shift=6;//127;
extern int MaPeriod=10;
//extern string sym="GBPUSD";
//extern string sym="EURUSD";
double aa[];
double bb[];
int N;
//+------------------------------------------------------------------+
//| ???????????? ???????? ???????? |
//+------------------------------------------------------------------+
void Normalize2(double& aa[])
{
int n=ArraySize(aa);
double sum_sqrt=0;
for(int i=0; i<=n-1; i++)
{
sum_sqrt+=MathPow(aa[i],2);
}
sum_sqrt=MathSqrt(sum_sqrt);
//---
if (sum_sqrt!=0)
{
for( i=0; i<=n-1; i++)
{
aa[i]=aa[i]/sum_sqrt;
}
}
//---
return;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE,0,1);
SetIndexBuffer(0,Buffer1);
SetIndexEmptyValue(0,0);
SetIndexStyle(1,DRAW_HISTOGRAM,0,1);
SetIndexBuffer(1,Buffer2);
SetIndexEmptyValue(1,0);
SetIndexStyle(2,DRAW_HISTOGRAM,0,1);
SetIndexBuffer(2,Buffer3);
SetIndexEmptyValue(2,0);
SetIndexStyle(3,DRAW_LINE,2,1);
SetIndexBuffer(3,Buffer4);
SetIndexEmptyValue(3,0);
//---
N=MathPow(2,n);
ArrayResize(aa,N);
ArrayResize(bb,N);
if( Fmax>=N ) Fmax=N;
if( Fmin<=2 ) Fmin=2;
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
if( Bars<N+shift) return(0);
//---
for(int i=N-1; i>=0; i--)
{
aa[i]=iVolume(Symbol(),0,i);
//Normalize2(aa);
bb[i]=iVolume(Symbol(),0,i+shift);
//Normalize2(bb);
}
//---
realfastfouriertransform(aa, N, false);
realfastfouriertransform(bb, N, false);
//---
N=ArraySize(aa);
//Comment("n= ",N);
//---
for( i=0; i<=N-1; i++)
{
if( i<Fmin || i>Fmax) { aa[i]=0.0;bb[i]=0.0; }
}
//---
//realfastfouriertransform(double& a[], int tnn, bool inversefft);
realfastfouriertransform(aa, N, true);
realfastfouriertransform(bb, N, true);
//tworealffts(double a1[], double a2[], double& a[], double& b[], int tn);
//---
SetIndexDrawBegin(0,Bars-N);
//SetIndexDrawBegin(1,Bars-N-shift);
SetIndexDrawBegin(1,Bars-N);
//---
for( i=0; i<=N-1; i++)
{
double diff1=bb[i]-aa[i];
if (diff1<0)
{
Buffer3[i]=0;//red
Buffer2[i]=-diff1;//blue
//Buffer2[i+shift]=bb[i];
}
else if (diff1>0)
{
Buffer3[i]=-diff1;//red
Buffer2[i]=0; //blue
}
Buffer1[i]=-diff1;
}
//----
for( i=0; i<=N-1; i++)
{
Buffer4[i]=iMAOnArray(Buffer1,0,MaPeriod,0,MODE_SMA,i);
}
return(0);
}
//-------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---