Questions des débutants MQL5 MT5 MetaTrader 5 - page 877

 
Il est possible queUpper[i] ne soit pas rempli (égal à 0) sur certaines barres.
 
Sergey Savinkin:
Il est possible queUpper[i] ne soit pas rempli sur certaines barres (égal à 0).

Je pense avoir trouvé un indice de la solution : lorsque la condition est écrite par rapport à l'état actuel du prix avant d'exécuter le code, le journal affiche ce qui suit :

Point important : ces paramètres coïncident avec le prix déjà généré précédemment .

Pour clarifier :

C'est là que la dernière ligne du journal indique que le prix a dépassé la ligne supérieure. La seule question est de savoir pourquoi il a fait ça. J'ai une version qui pendant le recalcul de l'indicateur depuis le début jusqu'au moment présent, le code enregistre ces événements et s'arrête au dernier événement - cela explique la différence entre le prix et les données du journal actuel, mais n'explique rien d'autre - j'ai juste besoin du code pour faire la comparaison dans la logique "le prix a dépassé la ligne supérieure - donner une alerte mais n'a pas dépassé - ne rien faire".

J'ai également vérifié la condition du code lorsque le prix est en dessous de la ligne supérieure - il n'a tout simplement pas enregistré l'événement dans les journaux, qui est sur la capture d'écran ci-dessus - j'ai arrêté de le comprendre à la fin, si cela fonctionne du tout.

 

Mes amis, je suis nouveau sur MQL5, donc si les problèmes dont je parle ici sont de ma propre faute, ne me donnez pas trop de coups de pied.

Je voulais faire un hibou multi-devises, mais j'ai rencontré des choses étranges dans le testeur de stratégie qui n' apparaissent que lors du test des stratégies multi-devises. J'obtiens un décalage étrange des symboles de séries temporelles autres que le symbole du graphique principal. J'ai fait un hibou simple qui obtient le zéro et le temps d'ouverture de la première barre par deux symboles au début de chaque barre. Pour une raison quelconque, la deuxième série de symboles commence à se décaler après une mesure. Apparaît sur tout symbole et toute période. J'ai testé sur EURUSD, le deuxième symbole était GBPUSD. J'ai essayé l'inverse, j'ai essayé sur d'autres paires, l'erreur apparaît toujours. C'est l'image du journal après le test sur М15 :

Photo du journal après le test sur H1 :

Paramètres du testeur de stratégie :

Voici le code pour le test :

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
input string SecondSymbol="GBPUSD";

int OnInit()
  {
   SymbolSelect(SecondSymbol,true);//выбираем второй символ в MarketWatch(для тестера)
//---
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
//---

  }

void OnTick()
  {
   static datetime BarTime;//время начала бара
   int per=PeriodSeconds(PERIOD_CURRENT);

   datetime time_curr=TimeCurrent()/per*per;
   if(time_curr!=BarTime)
     {
      BarTime=time_curr;

      datetime Time_One[],Time_Two[];
      bool yes=ArraySetAsSeries(Time_One,true);
      yes=ArraySetAsSeries(Time_Two,true);

      int i=CopyTime(NULL,PERIOD_CURRENT,0,2,Time_One);    //текущий символ
      i=CopyTime(SecondSymbol,PERIOD_CURRENT,0,2,Time_Two);//второй символ
      
      Print("ВремяНачалаБара по ",Symbol(),":",Time_One[0]," ВремяНачалаБара по ",SecondSymbol,":",Time_Two[0]);
     }
  }

Toute aide serait appréciée.

 
stroganow:

Mes amis, je suis nouveau sur MQL5, donc si les problèmes dont je parle ici sont de ma propre faute, ne me donnez pas trop de coups de pied.

Je voulais faire un hibou multi-devises, mais j'ai rencontré des choses étranges dans le testeur de stratégie qui n' apparaissent que lors du test des stratégies multi-devises. J'obtiens un décalage étrange des symboles de séries temporelles autres que le symbole du graphique principal. J'ai fait un hibou simple qui obtient le temps zéro et le temps d'ouverture de la première barre par deux symboles au début de chaque barre. Pour une raison quelconque, la deuxième série de symboles commence à se décaler après une mesure. Apparaît sur tout symbole et toute période. J'ai testé sur EURUSD, le deuxième symbole était GBPUSD. J'ai essayé l'inverse, j'ai essayé sur d'autres paires, l'erreur apparaît toujours. C'est l'image du journal après le test sur М15 :

Photo du journal après le test sur H1 :

Paramètres du testeur de stratégie :

Le code à tester :

Toute aide serait appréciée.

Le testeur fonctionne correctement. Il y a une erreur dans la logique du programme : deux symboles sont comme deux vies de personnes différentes (ici, "personne" est analogue à "symbole"). Et la deuxième personne ne doit pas nécessairement se réveiller en même temps que la première ("se réveiller" est analogue à " apparition d'une nouvelle barre").

Vous devez donc attendre qu'une nouvelle barre apparaisse ET sur le premier symbole ET sur le second.


Ajouté :gestionnaire de l'événement "nouvelle barre" de l'article

 

Pouvez-vous me dire, voici une image d'une barre d'épingle haussière, à quoi devrait ressembler le code de principe de la condition pour la reconnaître ?

if(low[i] <= open[i] && high[i] > close[i] && open[i] >= close[i] && close[i] <= Base[i]) // верно ли это утверждение?
 
clickaider:

Pouvez-vous me dire, voici une image d'une barre d'épingle haussière, à quoi devrait ressembler le code de principe de la condition pour la reconnaître ?

C'est une barre d'épingle baissière. La direction de la bougie n'est pas importante. La position de l'ombre longue est importante : vers le haut, elle est baissière, vers le bas, elle est haussière. Et une confirmation des indicateurs de niveau est nécessaire.
 
Artyom Trishkin:
C'est une barre d'épingle baissière. La direction de la bougie n'est pas importante. La position de l'ombre longue est importante : le haut est baissier, le bas est haussier. Et nous avons besoin de la confirmation des indicateurs de niveau.
Peut-on le montrer par un code de construction ? La façon dont le code devrait se présenter n'est pas tout à fait claire.
 
clickaider:
Est-il possible de montrer cela par la construction du code ? C'est juste que ce n'est pas très clair comment le code devrait se présenter
Je ne peux pas vous écrire le code depuis mon portable. En un coup d'œil :
Vous avez besoin de la taille de la bougie de haut en bas, de la taille du corps de la bougie, du pourcentage du corps par rapport à la taille de la bougie entière, de la taille de l'ombre courte ne devant pas dépasser un certain seuil (de sorte qu'elle soit absente, ou relativement petite par rapport au corps), et de l'emplacement du corps haut/bas par rapport à la taille complète de la bougie.
Quelque chose comme ça...
 
Artyom Trishkin:
Je ne peux pas vous écrire le code depuis mon téléphone portable. En un coup d'œil :
Vous avez besoin de la taille de la bougie de haut en bas, de la taille du corps de la bougie, du pourcentage du corps par rapport à la taille de la bougie entière, de la taille de l'ombre courte ne devant pas dépasser un certain seuil (de sorte qu'elle soit absente, ou relativement petite par rapport au corps), et de l'emplacement du corps haut/bas par rapport à la taille complète de la bougie.
Quelque chose comme ça...

Graphiquement, cela ressemble à ceci :

 
clickaider:

Graphiquement, ça ressemble à ça :

Décrivez maintenant en mots ce que vous avez décrit graphiquement. Utilisez high, low, open, close.
Une fois que vous l'avez décrit en mots, vous avez déjà écrit les TdR pour vous-même :)
Il ne reste plus qu'à remplacer les constructions de mots par du code.