Une stratégie de suivi des tendances. - page 12

 
JLY:

Et comment supprimer les icônes si la ligne n'existe plus ?

ObjectDelete(0,"имя значка"+name);
если у значка нет имени, то в данном случае
ObjectDelete(0,name);

Vous avez besoin du calcul du temps en barres

le faire dans les bars.

vous connaissez le temps, c'est-à-dire que Time[9] était 9 mesures.

Je n'ai écrit que le début,

Alors faites ce que vous voulez.

 
pako:

Le calcul du temps est nécessaire dans les bars

le faire dans les bars.

Vous avez le temps connu, c'est-à-dire que Time[9] était de 9 mesures.

Je n'ai écrit que le début,

Alors faites ce que vous voulez.

Merci, seulement il n'y avait pas besoin de créer une ligne (juste de définir les paramètres), et donc tout fonctionne.

Au 4 ème temps dans les barres par iBarShift a été calculé. J'ai utilisé cette formule :

datetime time01=time1NEW;datetime time02=time2NEW;
int shift01=iBarShift(0,0,time01);int shift02=iBarShift(0,0,time02);//перевод из скунд в бары
int timeCHANGE=shift01-shift02;//разница между 1-й и 2-й точкой линии
int timeBAR=(shift02-timeCHANGE);//прибавить разницу ко 2-й точке
int timeBARc=Time[timeBAR];//Перевод из баров в секунды

La cinquième n'a pas cette fonction, et je ne sais pas comment utiliser Copy*...

 
JLY:

Merci, mais il n'y avait pas besoin de créer une ligne (juste de définir les paramètres), mais cela fonctionne.

Dans la 4ème, le temps en mesures était compté par iBarShift. Voici la formule :

La cinquième n'a pas cette fonction, et je ne sais pas encore comment utiliser la fonction Copy*...

iBarShift analogique en 5

int iBarShift(string symbol,
                  int tf,
                  datetime time,
                  bool exact=false)
  {
   if(time<0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[],time1;
   CopyTime(symbol,timeframe,0,1,Arr);
   time1=Arr[0];
   if(CopyTime(symbol,timeframe,time,time1,Arr)>0)
     {
      if(ArraySize(Arr)>2) return(ArraySize(Arr)-1);
      if(time<time1) return(1);
      else return(0);
     }
   else return(-1);
  }
 
Dans MQL5 les constantes des périodes ont changé (de nouvelles périodes M2, M3, M4, M6, M10, M12, H2, H3, H6, H8, H12 ont été ajoutées), vous pouvez utiliser la fonction suivante pour convertir les périodes MQL4 :
ENUM_TIMEFRAMES TFMigrate(int tf)
  {
   switch(tf)
     {
      case 0: return(PERIOD_CURRENT);
      case 1: return(PERIOD_M1);
      case 5: return(PERIOD_M5);
      case 15: return(PERIOD_M15);
      case 30: return(PERIOD_M30);
      case 60: return(PERIOD_H1);
      case 240: return(PERIOD_H4);
      case 1440: return(PERIOD_D1);
      case 10080: return(PERIOD_W1);
      case 43200: return(PERIOD_MN1);
      
      case 2: return(PERIOD_M2);
      case 3: return(PERIOD_M3);
      case 4: return(PERIOD_M4);      
      case 6: return(PERIOD_M6);
      case 10: return(PERIOD_M10);
      case 12: return(PERIOD_M12);
      case 16385: return(PERIOD_H1);
      case 16386: return(PERIOD_H2);
      case 16387: return(PERIOD_H3);
      case 16388: return(PERIOD_H4);
      case 16390: return(PERIOD_H6);
      case 16392: return(PERIOD_H8);
      case 16396: return(PERIOD_H12);
      case 16408: return(PERIOD_D1);
      case 32769: return(PERIOD_W1);
      case 49153: return(PERIOD_MN1);      
      default: return(PERIOD_CURRENT);
     }
  }
 
JLY:

J'ai fait le tirage par secondes, il y a des trous dans le week-end, ce qui signifie que vous devez toujours compter par barres.

int  PeriodSeconds(
   ENUM_TIMEFRAMES  period=PERIOD_CURRENT      // период графика
   );
Renvoie le nombre de secondes de la période.
 
pako:

Merci beaucoup. Barshift compte.

Il ne reste plus qu'à traduire la barre obtenue en secondes. En 4, c'était Time [bar].

En 5, je fais comme ça selon la règle, mais ça ne marche pas :

datetime Time[];
int count=1; 
ArraySetAsSeries(Time,true);
int timeBARsec=CopyTime(_Symbol,_Period,timeBAR,count,Time);//Перевод из баров в секунды
 
JLY:

Merci beaucoup. Barshift compte.

Il ne reste plus qu'à traduire la barre obtenue en secondes. En 4, c'était Time [bar].

Dans la 5e, je fais ça selon la règle, mais je n'arrive pas à le faire fonctionner :

Si je comprends bien la question.

    datetime Time[]; 
    ArraySetAsSeries(Time,true);
    CopyTime(Symbol(),PERIOD_CURRENT,0,100,Time);
    long timeBARsec = Time[2];//Перевод из баров в секунды, в данном случае Time[бар] бар = 2

    Comment("timeBARsec = ",StringToTime(Time[2]));
 
pako:

si j'ai bien compris la question

Oui, ça marche) Merci beaucoup)

S'il n'y a pas de "fin", elle est nulle et ne peut être vue.

Dossiers :
TimeEnd.mq5  5 kb
 

1. Réaliser la précision horaire pour l'indicateur et l'heure dans la description de l'icône (inclure la description dans les propriétés du graphique).

2. Serait-il préférable de mettre les icônes dans un tampon ? Seulement, comment faire, comment combiner le temps et le prix dans le même tampon ?

3. si la ligne est tracée et qu'il n'y a pas encore d'icône (la barre n'est pas apparue), alors il y a une erreur (dans l'onglet "Experts") et le travail avec les autres icônes s'arrête.

2013.09.22 00:10:36 FlatExecution (EURUSD,D1) array out of range in 'FlatExecution.mq5' (124,30)

Donc, le tableau est hors de portée... L'erreur se trouve dans cette ligne :

long timeBARsec=Time[timeBAR];

Comment faire pour que mon indicateur ne soit pas paralysé par cette erreur ? Comment modifier l'indicateur pour ne pas paralyser le fonctionnement de cette erreur ?

Algorithme de trading : Entrée par l'icône de temps, stop par la ligne d'entrée, sortie par l'icône de ligne d'entrée.

5. Règle du tracé des lignes : de chaque fractale à toutes les suivantes, du haut vers le haut et du bas vers le bas. Supprimez les lignes qui sont touchées par le prix et ne les dessinez pas.


Dossiers :
 

Le problème de l'erreur a été résolu.

L'icône est maintenant dessinée sur l'ouverture de la barre de signal.

Si la ligne est exécutée, elle prend un aspect différent, la ligne est également tirée vers elle et elle perd le faisceau. Si la ligne n'est pas exécutée, elle est jaune.

Si les lignes sur lesquelles l'arrêt va diminuer vont au-delà du 2ème point, vous pouvez faire un arrêt après le 2ème point. En fait, l'arrêt peut également être déplacé le long de cette ligne, s'il est calculé différemment.

Le dessin reste le même, selon les fractales.

Algorithme. Le signe ne signifie pas toujours un achat ou une vente sans ambiguïté. Cependant, je pense que l'actualité l'influence d'une manière ou d'une autre. En fait, les tests n'ont pas été effectués car il n'existe pas de dessin automatique par fractales et de corrections de ce dessin (suppression des lignes affectées).

Dossiers :