#import “dynamicZone.dll”
double dzBuyP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i, double precision);
double dzSellP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i, double precision);
#import
for (int k=0; k<values[forValue][_len]-1; k++)
{
if (k<=Phase-1)
double t = 1.0 * k/(Phase-1);
else t = 1.0 + (k-Phase+1)*(2.0*Cycle-1.0)/(Cycle*length-1.0);
double beta = MathCos(Pi*t);
double g = 1.0/(Coeff*t+1); if (t <= 0.5 ) g = 1;
alpha[k] = g * beta;
values[forValue][_weight] += alpha[k];
}
}
//
//
//
//
//
if (values[forValue][_weight]>0)
{
int len = values[forValue][_len];
double sum = 0;
for (k=0; k < len-1; k++) sum += alpha[k]*price[r-k];
return( sum / values[forValue][_weight]);
}
else return(0);
}
The information collected on this form is stored in a computer file by ProRealCode to create and access your ProRealCode profile. This data is kept in a secure database for the duration of the member's membership. They will be kept as long as you use our services and will be automatically deleted after 3 years of inactivity. Your personal data is used to create your private profile on ProRealCode. This data is maintained by SAS ProRealCode, 407 rue Freycinet, 59151 Arleux, France. If you subscribe to our newsletters, your email address is provided to our service provider "MailChimp" located in the United States, with whom we have signed a confidentiality agreement. This company is also compliant with the EU/Swiss Privacy Shield, and the GDPR.
For any request for correction or deletion concerning your data, you can directly contact the ProRealCode team by email at privacy@prorealcode.com
If you would like to lodge a complaint regarding the use of your personal data, you can contact your data protection supervisory authority.
Get Assistance
Assistance Type
Your Need
Proposed Solutions
Do you like cookies? 🍪 We use cookies to ensure you get the best experience on our website.
(Learn more)
bonjour a tous
quelqu un pourait il recodé en prt il sagit du dynamique zone ma, je n arrive pas a joindre le gif qui correspond mais code tres intéréssant.
merci pour la communauté prt.
voici le code:
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 DeepSkyBlue
#property indicator_color2 LimeGreen
#property indicator_color3 LimeGreen
#property indicator_color4 Red
#property indicator_color5 Red
#property indicator_color6 Peru
#property indicator_style3 STYLE_DOT
#property indicator_style4 STYLE_DOT
#property indicator_style6 STYLE_DASH
#property indicator_width1 3
#property indicator_width2 2
#property indicator_width5 2
//
//
//
//
//
#import “dynamicZone.dll”
double dzBuyP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i, double precision);
double dzSellP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i, double precision);
#import
//
//
//
//
//
extern int Length = 21;
extern int Price = 0;
extern bool ShowMiddleLine = true;
extern int DzLookBackBars = 35;
extern double DzStartBuyProbability1 = 0.10;
extern double DzStartBuyProbability2 = 0.25;
extern double DzStartSellProbability1 = 0.10;
extern double DzStartSellProbability2 = 0.25;
//
//
//
//
//
double MABuffer[];
double alpha[];
double prices[];
double bl1Buffer[];
double bl2Buffer[];
double sl1Buffer[];
double sl2Buffer[];
double zliBuffer[];
double stored[][7];
//+——————————————————————+
//| |
//+——————————————————————+
//
//
//
//
//
int init()
{
SetIndexBuffer(0,MABuffer);
SetIndexBuffer(1,bl1Buffer);
SetIndexBuffer(2,bl2Buffer);
SetIndexBuffer(3,sl2Buffer);
SetIndexBuffer(4,sl1Buffer);
SetIndexBuffer(5,zliBuffer);
IndicatorShortName(“Jurik filter simple (“+Length+”)”);
return(0);
}
int deinit() { return(0); }
//+——————————————————————+
//| |
//+——————————————————————+
//
//
//
//
//
int start()
{
double precision = Point*100.0;
int counted_bars=IndicatorCounted();
int i,r,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars–;
limit = Bars-counted_bars;
if (ArrayRange(prices,0) != Bars) ArrayResize(prices,Bars);
//
//
//
//
//
for (i=limit, r=Bars-i-1; i>=0; i–,r++)
{
prices[r] = iMA(NULL,0,1,0,MODE_SMA,Price,i);
MABuffer[i] = iNoLagMa(alpha,prices,1,Length,i,r);
if (DzStartBuyProbability1 >0) bl1Buffer[i] = dzBuyP (MABuffer, DzStartBuyProbability1, DzLookBackBars, Bars, i, precision);
if (DzStartBuyProbability2 >0) bl2Buffer[i] = dzBuyP (MABuffer, DzStartBuyProbability2, DzLookBackBars, Bars, i, precision);
if (DzStartSellProbability1>0) sl1Buffer[i] = dzSellP(MABuffer, DzStartSellProbability1, DzLookBackBars, Bars, i, precision);
if (DzStartSellProbability2>0) sl2Buffer[i] = dzSellP(MABuffer, DzStartSellProbability2, DzLookBackBars, Bars, i, precision);
if (ShowMiddleLine) zliBuffer[i] = dzSellP(MABuffer, 0.5 , DzLookBackBars, Bars, i, precision);
}
return(0);
}
//+——————————————————————+
//| |
//+——————————————————————+
//
//
//
//
//
#define Pi 3.1415926535
//
//
//
//
//
double values[][3];
#define _length 0
#define _len 1
#define _weight 2
//
//
//
//
//
double iNoLagMa(double &alpha[], double &price[], int forvalue, int length, int i, int r)
{
int forValue = forvalue-1;
if (length<3) return(price[r]);
//
//
//
//
//
if (ArrayRange(values,0)<(forValue+1) || values[forValue][_length] != length)
{
double Cycle = 4.0;
double Coeff = 3.0*Pi;
int Phase = length-1;
if (ArrayRange(values,0)<forValue+1) ArrayResize(values,forValue+1);
values[forValue][_length] = length;
values[forValue][_len] = length*4 + Phase;
values[forValue][_weight] = 0;
ArrayResize(alpha,values[forValue][_len]);
for (int k=0; k<values[forValue][_len]-1; k++)
{
if (k<=Phase-1)
double t = 1.0 * k/(Phase-1);
else t = 1.0 + (k-Phase+1)*(2.0*Cycle-1.0)/(Cycle*length-1.0);
double beta = MathCos(Pi*t);
double g = 1.0/(Coeff*t+1); if (t <= 0.5 ) g = 1;
alpha[k] = g * beta;
values[forValue][_weight] += alpha[k];
}
}
//
//
//
//
//
if (values[forValue][_weight]>0)
{
int len = values[forValue][_len];
double sum = 0;
for (k=0; k < len-1; k++) sum += alpha[k]*price[r-k];
return( sum / values[forValue][_weight]);
}
else return(0);
}