bonjour
voici un nouveau bricolage maison qui trace des supports et résistance sur la base du cci:
il trace un nouveau point à chaque fois que le cci est supérieur ou inférieur à un seuil autrement il retrace le précédent, bleu si le cci est positif et rouge si il est négatif.
n=periode du cci
seuil=ben le seuil.
tf = timeframe mais fonctionne mal.
PS: les couleurs ne se remettent pas à jour automatiquement je n'ai pas réussi à fixer ce point changer de timeframe (à l’écran) pour actualiser.
voici un nouveau bricolage maison qui trace des supports et résistance sur la base du cci:
il trace un nouveau point à chaque fois que le cci est supérieur ou inférieur à un seuil autrement il retrace le précédent, bleu si le cci est positif et rouge si il est négatif.
n=periode du cci
seuil=ben le seuil.
tf = timeframe mais fonctionne mal.
PS: les couleurs ne se remettent pas à jour automatiquement je n'ai pas réussi à fixer ce point changer de timeframe (à l’écran) pour actualiser.
Code
//+------------------------------------------------------------------+
//| on_chart CCi.mq4 |
//+------------------------------------------------------------------+
//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Black
#property indicator_color2 Blue
#property indicator_width2 3
#property indicator_color3 Red
#property indicator_width3 3
//---- indicator buffers
double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];
double ExtBuffer3[];
double ExtBuffer4[];
extern string PairName = ""; // Leave blank for the pair of the chart, enter other pair name to compare correlated pairs
extern int n=14;
extern int tf=0;
extern double seuil=150;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 2 additional buffers are used for counting.
IndicatorBuffers(5);
//---- drawing settings
SetIndexStyle(0,DRAW_NONE);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,167);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,167);
IndicatorDigits(Digits+2);
SetIndexDrawBegin(0,38);
SetIndexDrawBegin(1,38);
SetIndexDrawBegin(2,38);
//---- 4 indicator buffers mapping
SetIndexBuffer(0,ExtBuffer0);
SetIndexBuffer(1,ExtBuffer1);
SetIndexBuffer(2,ExtBuffer2);
SetIndexBuffer(3,ExtBuffer3);
SetIndexBuffer(4,ExtBuffer4);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("CCI S/R on chart");
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| CCI S/R Lines |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
double prev,current;
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd counted in the 1-st additional buffer
for(int i=0; i<limit; i++)
ExtBuffer3[i]=iCCI(NULL,tf,n,PRICE_TYPICAL,i);
//---- signal line counted in the 2-nd additional buffer
//---- dispatch values between 2 buffers
bool up=true;
for(i=limit-1; i>=0; i--)
{
if(ExtBuffer3[i]>seuil)
{
ExtBuffer4[i]=High[i];
}
else if(ExtBuffer3[i]<-seuil)
{
ExtBuffer4[i]=Low[i];
}
else
{
ExtBuffer4[i]=ExtBuffer4[i+1];
}
current=ExtBuffer4[i];
if(ExtBuffer3[i]>0) up=true;
if(ExtBuffer3[i]<0) up=false;
if(!up)
{
ExtBuffer2[i]=(current);
ExtBuffer1[i]=ExtBuffer0[i];
}
else
{
ExtBuffer1[i]=(current);
ExtBuffer2[i]=ExtBuffer0[i];
}
ExtBuffer0[i]=current;
}
//---- done
return(0);
}
//+------------------------------------------------------------------+
Modifié le 2013-03-08 18:46:21 par
AliX