mql5 - ligne verticale après un certain temps depuis la dernière transaction

 

Bonjour à tous !

Les gars, quelqu'un peut-il aider/suggérer comment mettre en œuvre l'idée suivante dans MQL5 (je viens juste de me familiariser avec Metatrader - je n'écris pas encore de code).

Algorithme du code :
1) L'heure de clôture de la dernière transaction et le résultat de la transaction sont déterminés.

2) Détermine le résultat total de la journée après la clôture de la dernière transaction.

3) Selon les paramètres de l'indicateur, une ligne verticale est tracée à un certain intervalle dans le futur à partir du moment de la clôture de la dernière transaction.
Paramètres :
- si le résultat du dernier trade est négatif et que le résultat du jour est négatif, une ligne verticale est tracée à une distance de 24 heures (un jour) dans le futur.
- si le résultat de la dernière transaction est négatif et que le résultat du jour est positif, la ligne verticale est tracée 2 heures dans le futur.
- si le résultat de la dernière transaction est positif, la ligne verticale est tracée 1 heure dans le futur.

4) La ligne reste sur le graphique même après l'ouverture d'une nouvelle transaction, mais se déplace après la fermeture d'une nouvelle transaction selon l'algorithme ci-dessus, car la dernière transaction fermée était déjà une nouvelle transaction.

Note.
Un résultat positif est un résultat positif, peu importe que l'ordre ait été déclenché ou que la position ait été fermée manuellement. C'est-à-dire plus dans la balance.
Un résultat négatif est une valeur négative ou nulle à la suite d'une transaction.

P.S>

L'essentiel de ce code pour moi est de m'habituer à faire une pause après les transactions et de ne pas trop m'énerver. J'ai remarqué que mes pertes sont dues au fait que j'essaie de regagner rapidement des affaires qui n'ont pas abouti. Pour moi, il est possible de mettre une ligne manuellement et de la déplacer conformément à cette règle, mais j'ai exactement besoin d'une variante de programme, car à l'avenir je veux lier des conditions/filtres supplémentaires à l'indicateur, c'est-à-dire compliquer l'algorithme de prise de décision.

Merci d'avance et bonne chance !

 

A titre d'exemple.

void moveVLine(string obj_name, datetime obj_time)
{
   int         tm       = PeriodSeconds(PERIOD_D1);
   datetime    next_day = obj_time + tm;
   MqlDateTime tm_str;
   
   TimeToStruct(next_day,tm_str);
   if(tm_str.day_of_week == 6)
   {
      tm *= 3;
      next_day = obj_time + tm;
   }
   ObjectMove(0,obj_name,0,next_day,0);
   
   return;
}
 
Сергей Таболин:

A titre d'exemple.

Sergey, merci !
Je vous ferai savoir ce qu'il en est lorsque j'exécuterai votre exemple.
 
Сергей Таболин:

A titre d'exemple.

L'exemple n'a pas été compilé :(
Si j'ai bien compris - le code est un fragment et il est nécessaire d'ajouter certains composants obligatoires (#property, etc.) ?
 

J'ai trouvé un indicateur similaire qui trace simplement une ligne verticale à un certain moment - je vais essayer de l'utiliser comme base, en ajoutant les algorithmes nécessaires au lieu d'un temps statique prédéterminé.
https://www.mql5.com/ru/code/18449

Vertical line
Vertical line
  • www.mql5.com
Индикатор рисует, а затем перемещает нарисованную вертикальную линию (OBJ_VLINE) на заданное время (часы и минуты). Входные параметры: Из параметра "Use only Hours and minutes" используются только часы и минуты.  Вертикальная линии рисуется для текущего дня. Если начинается новый день, то нарисованная линия переносится на этот новый день на...
 
Stupidité.
Il existe une source (code ci-dessus) qui dessine une ligne sur une barre à un moment donné. Il suffit de supprimer le temps des paramètres d'entrée et d'obtenir la valeur du temps à partir de l'historique des transactions. En regardant la documentation Fonctions de trading, je soupçonne que la vérité se trouve quelque part parmi les fonctions du groupe Histoire... Jusqu'à présent, je ne vois rien :(
Quelqu'un peut-il m'aider/me dire comment obtenir les données de la dernière transaction à partir de l'historique (moment de la fermeture d'une position et fixation du résultat d'une transaction) ?
 
renatmt5:
L'exemple n'a pas été compilé :(
Si j'ai bien compris - le code est un fragment et il est nécessaire d'ajouter certains composants obligatoires (#property, etc.) ?

Il s'agit d'une fonction de transfert de ligne verticale. Il doit être appelé depuis le code principal si certaines conditions sont remplies. En outre, la ligne elle-même doit déjà être présente.

 
Сергей Таболин:

Il s'agit d'une fonction de transfert de ligne verticale. Il doit être appelé depuis le code principal si certaines conditions sont remplies.

OK, merci encore !
 
renatmt5:

Bonjour à tous !

Les gars, quelqu'un peut-il aider/suggérer comment mettre en œuvre l'idée suivante dans MQL5 (je viens juste de me familiariser avec Metatrader - je n'écris pas encore de code).

Code algorithme :
1) Détermine l'heure de clôture de la dernière transaction et le résultat de la transaction.

2) Détermine le résultat total de la journée après la clôture de la dernière transaction.

3) Selon les paramètres de l'indicateur, une ligne verticale est tracée sur un certain intervalle dans le futur à partir du moment de la clôture de la dernière transaction.
Paramètres :
- si le résultat de la dernière transaction est négatif et que le résultat du jour est négatif, une ligne verticale est tracée sur une distance de 24 heures (24 heures) dans le futur.
- si le résultat de la dernière transaction est négatif et que le résultat du jour est positif, la ligne verticale est tracée 2 heures dans le futur.
- si le résultat de la dernière transaction est positif, une ligne verticale est tracée à une distance d'une heure dans le futur.

4) La ligne reste sur le graphique même après l'ouverture d'une nouvelle transaction, mais se déplace après la fermeture d'une nouvelle transaction selon l'algorithme ci-dessus, car la nouvelle transaction est déjà devenue la dernière transaction fermée.

Note.
Un résultat positif est un plus, que l'ordre se soit déclenché ou qu'une position ait été fermée manuellement. C'est-à-dire plus dans la balance.
Un résultat négatif est un moins ou un zéro comme résultat de l'échange.

P.S>.

L'essence de ce code pour moi est la suivante : s'habituer à faire une pause après les transactions et ne pas briser une série de succès. J'ai remarqué que mes pertes sont dues au fait que j'essaie de regagner rapidement des affaires qui n'ont pas abouti. Pour moi, il est possible de mettre une ligne manuellement et de la déplacer conformément à cette règle, mais j'ai exactement besoin d'une variante de programme, car à l'avenir je veux lier des conditions/filtres supplémentaires à l'indicateur, c'est-à-dire compliquer l'algorithme de prise de décision.

Merci d'avance et bonne chance à tous !

Alors, appelons-le un indicateur.

Alors, faisons comme ça. Définissons que nous interrogeons l'historique des transactions une fois par minute. Il nous faut alors deux autres paramètres :

  • prendre en compte les dernières transactions uniquement pour le symbole courant (le symbole sur lequel l'indicateur fonctionne) ou pour tous ?
  • et la comptabilité des numéros magiques (considérer un seul ou tous) ?


J'ai besoin d'une réponse de votre part. J'essaierai d'apparaître à nouveau dans ce fil de discussion à l'heure du déjeuner.

 
Vladimir Karputov:

Un indicateur est un indicateur.

Donc c'est comme ça. Définissons que nous interrogeons l'historique des transactions une fois par minute. Il nous faut alors deux autres paramètres :

  • prendre en compte les dernières transactions uniquement pour le symbole courant (le symbole sur lequel l'indicateur fonctionne) ou pour tous ?
  • et la comptabilité des numéros magiques (considérer un seul ou tous) ?


J'ai besoin d'une réponse de votre part. J'essaierai d'apparaître à nouveau dans ce fil de discussion à l'heure du déjeuner.

Vladimir, merci d'avoir pris le temps de poser ma question. Aussi simple que possible au départ, car je compte l'affiner moi-même à long terme, plutôt que de l'arrêter :)
- uniquement sur le symbole actuel
- En ce qui concerne le numéro de magicien - je ne suis pas sûr de ce dont il s'agit. Comme une sorte de carte d'identité ? Ce n'est pas important pour moi, pour être honnête. J'ai seulement besoin de données sur une dernière transaction fermée

 

Je voudrais clarifier le terme "dernier échange".

S'agit-il de la dernière transaction de la journée en cours ? Ou depuis les N derniers jours ?

Raison: