Aide au codage - page 160

 
TEAMTRADER:
J'ai téléchargé cet indicateur depuis l'un des fils de discussion et il est bien meilleur que les indicateurs CCI-zones ou Ma-zones.

Peut-on l'adapter pour qu'il s'affiche à l'écran comme un indicateur de zone ?

Il est réglé sur le paramètre CCI 13 mais s'il peut être transformé facilement en un indicateur à paramètre variable, ce serait un bonus - mais c'est une demande secondaire.

Il s'agit d'un indicateur Forex-TSD mais aucun dossier mq4 ne l'accompagne.

Merci

TEAMTRADER

Pour autant que je sache, ce n'est pas un cci mais un thv t3 trix. Vous devriez rechercher certaines des variations de thv trix.

 

mladen, j'ai l'indicateur ci-joint qui trace une ligne pour le haut et le bas du jour précédent, mais j'ai besoin du même indicateur qui trace les 3 hauts et bas quotidiens précédents, pouvez-vous m'aider ? merci d'avance

//+------------------------------------------------------------------+

//| Copyright © 2008, ledxep |

//| http://www.metaquotes.net/ |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2008, ledzep"

#property link "http://www.metaquotes.net/"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Blue

//---- input parameters

double DayHigh,DayLow,DayHigh1,DayLow1;

int ObjectIdx;

int DayIdx;

int k;

string ObjName;

datetime StartTime;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

return(0);

}

//+------------------------------------------------------------------+

//| Deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

ObjectsDeleteAll();

return(0);

}

//+------------------------------------------------------------------+

//| Start function |

//+------------------------------------------------------------------+

int start()

{

static bool first=true;

int i,counted_bars=IndicatorCounted();

double BarHour,BarMinute;

int WeekDay;

if(Bars<3) return(0);

i=Bars-3;

if(counted_bars==0 || first)

{

first=false;

while(i>=0)

{

TrendLine(StartTime,DayHigh1,Time,DayHigh1,Red);

TrendLine(StartTime,DayLow1,Time,DayLow1,Red);

if(High > DayHigh) DayHigh = High;

if(Low < DayLow) DayLow = Low;

if(TimeDay(Time) != TimeDay(Time))

{

DayHigh1=DayHigh;

DayLow1=DayLow;

DayHigh=Open;

DayLow=Open;

StartTime=Time;

}

i--;

}//while close

}

return(0);

}//start close

//+------------------------------------------------------------------+

void TrendLine(datetime x1, double y1, datetime x2, double y2, color col)

{

ObjectIdx++;

ObjName="Line" + DoubleToStr(ObjectIdx,0);

ObjectCreate(ObjName, OBJ_TREND, 0, x1, y1, x2, y2);

ObjectSet(ObjName,OBJPROP_COLOR,col);

ObjectSet(ObjName,OBJPROP_RAY,0);

}

 
k3rn3l:
mladen, j'ai l'indicateur ci-joint qui trace une ligne pour le haut et le bas du jour précédent... mais j'ai besoin du même indicateur qui trace les 3 hauts et bas quotidiens précédents, pouvez-vous m'aider ? merci d'avance

//+------------------------------------------------------------------+

//| Copyright © 2008, ledxep |

//| http://www.metaquotes.net/ |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2008, ledzep"

#property link "http://www.metaquotes.net/"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Blue

//---- input parameters

double DayHigh,DayLow,DayHigh1,DayLow1;

int ObjectIdx;

int DayIdx;

int k;

string ObjName;

datetime StartTime;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

return(0);

}

//+------------------------------------------------------------------+

//| Deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

ObjectsDeleteAll();

return(0);

}

//+------------------------------------------------------------------+

//| Start function |

//+------------------------------------------------------------------+

int start()

{

static bool first=true;

int i,counted_bars=IndicatorCounted();

double BarHour,BarMinute;

int WeekDay;

if(Bars<3) return(0);

i=Bars-3;

if(counted_bars==0 || first)

{

first=false;

while(i>=0)

{

TrendLine(StartTime,DayHigh1,Time,DayHigh1,Red);

TrendLine(StartTime,DayLow1,Time,DayLow1,Red);

if(High > DayHigh) DayHigh = High;

if(Low < DayLow) DayLow = Low;

if(TimeDay(Time) != TimeDay(Time))

{

DayHigh1=DayHigh;

DayLow1=DayLow;

DayHigh=Open;

DayLow=Open;

StartTime=Time;

}

i--;

}//while close

}

return(0);

}//start close

//+------------------------------------------------------------------+

void TrendLine(datetime x1, double y1, datetime x2, double y2, color col)

{

ObjectIdx++;

ObjName="Line" + DoubleToStr(ObjectIdx,0);

ObjectCreate(ObjName, OBJ_TREND, 0, x1, y1, x2, y2);

ObjectSet(ObjName,OBJPROP_COLOR,col);

ObjectSet(ObjName,OBJPROP_RAY,0);

}

J'ai bien peur de ne pas comprendre

Cet indicateur trace le haut et le bas de la journée précédente sur l'ensemble de l'historique (autant de jours qu'il y a sur le graphique). Que signifie exactement "trace les 3 hauts et bas quotidiens précédents" ?

 
mladen:
J'ai peur de ne pas comprendre Cet indicateur trace le plus haut et le plus bas du jour précédent sur l'ensemble de l'historique (autant de jours qu'il y a sur le graphique). Que signifie exactement "trace les 3 hauts et bas quotidiens précédents" ?

Je m'explique, je souhaite que l'indicateur dessine chaque jour, les hauts et les bas des 3 jours précédents.

 
k3rn3l:
Je m'explique, je souhaite que l'indicateur affiche chaque jour les plus hauts et les plus bas des 3 jours précédents.

Essayez quelque chose comme ceci (celui-ci n'utilise pas d'objets mais des tampons et vous pouvez définir le nombre de jours que vous souhaitez utiliser pour le plus haut et le plus bas).

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

extern int DaysForHighLow = 3;

double buffh[];

double buffl[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,buffh);

SetIndexBuffer(1,buffl);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

for (int i=limit; i>=0; i--)

{

int y = iBarShift(NULL,PERIOD_D1,Time);

buffh = iHigh(NULL,PERIOD_D1,iHighest(NULL,PERIOD_D1,MODE_HIGH,DaysForHighLow,y));

buffl = iLow(NULL,PERIOD_D1,iLowest(NULL,PERIOD_D1,MODE_LOW,DaysForHighLow,y));

}

return(0);

}
 
mladen:
Essayez quelque chose comme ceci (celui-ci n'utilise pas d'objets mais des tampons et vous pouvez définir le nombre de jours que vous souhaitez utiliser pour le plus haut et le plus bas)
#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

extern int DaysForHighLow = 3;

double buffh[];

double buffl[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,buffh);

SetIndexBuffer(1,buffl);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

for (int i=limit; i>=0; i--)

{

int y = iBarShift(NULL,PERIOD_D1,Time);

buffh = iHigh(NULL,PERIOD_D1,iHighest(NULL,PERIOD_D1,MODE_HIGH,DaysForHighLow,y));

buffl = iLow(NULL,PERIOD_D1,iLowest(NULL,PERIOD_D1,MODE_LOW,DaysForHighLow,y));

}

return(0);

}

merci mladen, désolé pour ma mauvaise explication...je voulais dire le haut et le bas de tous les 3 jours précédents...par exemple PreviousHighDaily[1],PreviuosHighDaily[2],PreviousHighDaily[3] et pareil pour le bas....

 
k3rn3l:
merci mladen, désolé pour ma mauvaise explication...je voulais dire le haut et le bas de tous les 3 jours précédents...par exemple PreviousHighDaily[1],PreviuosHighDaily[2],PreviousHighDaily[3] et même chose pour le bas...

Il est plus simple à trouver que le précédent (moins d'appels de fonctions ).

Vous pouvez le faire comme ceci :

#property indicator_chart_window

#property indicator_buffers 6

#property indicator_color1 LimeGreen

#property indicator_color2 Red

#property indicator_color3 LimeGreen

#property indicator_color4 Red

#property indicator_color5 LimeGreen

#property indicator_color6 Red

#property indicator_width1 2

#property indicator_width2 2

#property indicator_style5 STYLE_DOT

#property indicator_style6 STYLE_DOT

double buffh1[];

double buffl1[];

double buffh2[];

double buffl2[];

double buffh3[];

double buffl3[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,buffh1);

SetIndexBuffer(1,buffl1);

SetIndexBuffer(2,buffh2);

SetIndexBuffer(3,buffl2);

SetIndexBuffer(4,buffh3);

SetIndexBuffer(5,buffl3);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

for (int i=limit; i>=0; i--)

{

int y = iBarShift(NULL,PERIOD_D1,Time);

buffh1 = iHigh(NULL,PERIOD_D1,y+1);

buffl1 = iLow(NULL,PERIOD_D1,y+1);

buffh2 = iHigh(NULL,PERIOD_D1,y+2);

buffl2 = iLow(NULL,PERIOD_D1,y+2);

buffh3 = iHigh(NULL,PERIOD_D1,y+3);

buffl3 = iLow(NULL,PERIOD_D1,y+3);

}

return(0);

}

PS : la ligne la plus épaisse est celle d'il y a 1 jour, la ligne la plus fine est celle d'il y a 2 jours et la ligne en pointillé est celle d'il y a 3 jours.

 

Aide au codage pls...........

Bonjour à tous les experts ici, quelqu'un peut-il m'aider à coder un simple EA qui modifiera automatiquement le TP du dernier ordre de travail de la même manière que l'ordre actuel qui vient d'être ouvert ? Disons que j'ai un ou plusieurs ordres de travail et quelques ordres en attente, lorsque l'ordre en attente devient un ordre de travail, j'espère que l'EA modifiera automatiquement le TP (prix cible) de l'ordre de travail précédent de la même manière que l'ordre actuel qui vient d'être activé. merci ....

 
jeffyap:
Coding help pls........... hello all of the expert here , can anyone help me to code the simple EA that will automatic modify last working order 's TP same as current order just open ? let say i have 1 or more working order and few pending order , when pending order become working order , i hope the EA will auto modify the prev working order's TP (target price) to current order just active ... thanks ....

Pourquoi n'utilisez-vous pas simplement un stop suiveur normal sur tous les ordres ? De cette façon, ils seront éventuellement égalisés (si vous avez plusieurs ordres) sans avoir besoin d'ouvrir un nouvel ordre.

 

HI Mladen,

Si je veux compter les barres entre 2 points bas, comment éviter la barre du dimanche 23.00 à 00.00 ?

parce que sur le graphique 4h il y a cette barre et elle ne dure qu'une heure..... et elle apparaît aussi sur le graphique journalier.

merci d'avance

Raison: