Stratégie basée sur l'indicateur " ZigZag " - " Last ZZ50 ". - page 3

 

Dernière version de ZZ50.mq5 "1.001"

J'ai décidé de vérifier d'abord comment l'indicateur se comporte lorsqu'une nouvelle barre apparaît ou après une rupture de connexion : à chaque tick, je reçois la quantité de données calculées pour notre indicateur, si cette quantité diffère de celle du tick précédent - une impression est affichée :

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static int  bars_calculated      = 0;
   int         prev_bars_calculated = bars_calculated;
   bars_calculated=BarsCalculated(handle_iCustom);
   if(bars_calculated!=prev_bars_calculated)
      Print(iTime(0),", BarsCalculated: ",bars_calculated,", prev: ",prev_bars_calculated);
//---

  }

Et maintenant deux journaux (onglet Experts et onglet Journal)

Les experts :

2017.07.17 08:03:32.161 Last ZZ50 (USDJPY,M1)   2017.07.17 08:03:00, BarsCalculated: 373610, prev: 100009
2017.07.17 08:04:05.250 Last ZZ50 (USDJPY,M1)   2017.07.17 08:04:00, BarsCalculated: 373611, prev: 373610
2017.07.17 08:05:45.575 Last ZZ50 (USDJPY,M1)   2017.07.17 08:05:00, BarsCalculated: 100000, prev: 373611
2017.07.17 08:06:08.768 Last ZZ50 (USDJPY,M1)   2017.07.17 08:06:00, BarsCalculated: 100001, prev: 100000
2017.07.17 08:07:06.192 Last ZZ50 (USDJPY,M1)   2017.07.17 08:07:00, BarsCalculated: 100002, prev: 100001
2017.07.17 08:07:29.676 Last ZZ50 (USDJPY,M1)   2017.07.17 08:07:00, BarsCalculated: 100002, prev: 0
2017.07.17 08:08:01.653 Last ZZ50 (USDJPY,M1)   2017.07.17 08:08:00, BarsCalculated: 100003, prev: 100002
2017.07.17 08:09:01.827 Last ZZ50 (USDJPY,M1)   2017.07.17 08:09:00, BarsCalculated: 100004, prev: 0
2017.07.17 08:10:00.283 Last ZZ50 (USDJPY,M1)   2017.07.17 08:10:00, BarsCalculated: 100005, prev: 100004
2017.07.17 08:11:02.493 Last ZZ50 (USDJPY,M1)   2017.07.17 08:11:00, BarsCalculated: 100006, prev: 100005

Journal :

2017.07.17 08:04:47.227 Network '6121033': scanning network for access points
2017.07.17 08:05:23.297 Network '6121033': connection to MetaQuotes-Demo lost
2017.07.17 08:05:34.000 Network '6121033': authorized on MetaQuotes-Demo through Access Point EU 2 (ping: 48.01 ms)
2017.07.17 08:05:34.001 Network '6121033': previous successful authorization performed from 178.165.123.77 on 2017.07.17 07:50:17
2017.07.17 08:05:34.105 Network '6121033': terminal synchronized with MetaQuotes Software Corp.
2017.07.17 08:05:34.105 Network '6121033': trading has been enabled - hedging mode
2017.07.17 08:07:28.881 Experts expert Last ZZ50 (USDJPY,M1) removed
2017.07.17 08:07:28.915 Experts expert Last ZZ50 (USDJPY,M1) loaded successfully
2017.07.17 08:08:53.494 Experts expert Last ZZ50 (USDJPY,M1) removed
2017.07.17 08:08:53.527 Experts expert Last ZZ50 (USDJPY,M1) loaded successfully


Comme vous pouvez le voir, le nombre de barres calculées change.

Dossiers :
Last_ZZ50.mq5  10 kb
 

Dernière version ZZ50.mq5 "1.002"

Nouveau : ajouter l'indicateur utilisé dans les calculs au graphique - pour la visualisation (il cherchera alors les points "A", "B" et "C" et tracera une ligne verticale sur ceux-ci - encore une fois, pour le contrôle du code visuel).


Dossiers :
Last_ZZ50.mq5  11 kb
 

Dernière version de ZZ50.mq5 "1.003"

Recherche les sommets "A", "B" et "C". Dessine des lignes verticales à travers ces sommets.

La recherche de sommets est effectuée par la méthode "obtenir les valeurs d'une barre à la fois".

Dernière version du ZZ50 "1.003"

Dossiers :
Last_ZZ50.mq5  23 kb
 
Vladimir Karputov:

Dernière version de ZZ50.mq5 "1.003"

Recherche les sommets "A", "B" et "C". Dessine des lignes verticales à travers ces sommets.

La recherche des sommets se fait par la méthode "obtenir une valeur de barre à la fois".


Déjà quelque chose)

 

Vladimir, y aura-t-il une suite, ou est-ce qu'on s'arrête là ?)

 
Vitaly Muzichenko:

Vladimir, y aura-t-il une suite, ou est-ce qu'on s'arrête là =)


Demain, il y aura une description - déjà avec les commandes en cours.

 

J'ai découvert quatre formations de points "A", "B" et "C" - je dois trouver comment placer des ordres en attente dans chaque cas (ou plutôt leur type : Achat*** ou Vente***) :

Figures 1 et 2 иFigures 3 et 4


 
Vladimir Karputov:

J'ai trouvé quatre formations de points "A", "B" et "C" - je dois trouver comment placer des ordres en attente dans chaque cas (ou plutôt leur type : Achat*** ou Vente***) :

Mettre et tirer toujours au milieu de la poutre:

Les courses:

Rouge SellStop, bleu BuyStop

Une commande est placée sur un rayon. Si une commande a fonctionné sur ce rayon, ne placez pas d'autres commandes sur ce rayon.

 
Vitaly Muzichenko:

Toujours mettre et tirer au milieu de la poutre:

Épuisé:

Rouge SellStop, bleu BuyStop.

Sur un rayon, il y a un ordre et si l'ordre a fonctionné sur ce rayon, ne placez pas d'autres ordres sur ce rayon.


Le "travaillé" n'est pas toujours le cas, car l'EA peut apparaître sur le graphique à tout moment. Par conséquent, je vous demande une fois de plus de revoir Fig. 3 et Fig. 4 en termes de : L'EA vient d'entrer dans le graphique et il y a une telle image...

 
Vladimir Karputov:

"Résolu" n'est pas toujours le cas, car l'EA peut remonter sur le graphique à tout moment. Par conséquent, veuillez revoir une fois de plus la Fig. 3 et Fig. 4 en termes de : le Conseiller Expert vient de se déplacer sur le graphique et il y a une image...

Si le centre du rayon est brisé, le rayon est considéré comme élaboré.

Pour éviter les problèmes après le redémarrage, il faut sauvegarder les points du dernier rayon dans la variable globale du terminal, et travailler avec eux.