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

 
EgorKim:

Comme ça.

Et certaines passes d'optimisation coïncident dans le visualiseur.

Et certains laissez-passer - pas une seule transaction du tout.

Les divergences peuvent être dues à des valeurs non initialisées dans le tampon de l'indicateur - lorsque le calcul passe, il peut y avoir des déchets dans le tampon.


Il suffit d'imprimer les données de la mémoire tampon lorsque le signal apparaît.

 
Vladimir Karputov:

Des divergences peuvent se produire en raison de valeurs non initialisées dans le tampon de l'indicateur - lorsque le calcul passe, il peut y avoir des déchets dans le tampon.


Il suffit d'imprimer les données de la mémoire tampon lorsque le signal apparaît.

Vous parlez de l'EA ?

En ce qui concerne l'EA, je mets tout à zéro dans l'exemple.

Et si vous parlez d'un indicateur, vous pouvez tout faire. Je ne suis pas l'auteur.

 
EgorKim:

Vous parlez de l'EA ?

Si vous parlez d'un EA, je mets tout à zéro dans l'exemple.

Mais si vous parlez d'un indicateur, ça peut être n'importe quoi. Je ne suis pas l'auteur.

Je parlais de l'indicateur : s'il manque un indice dans le tampon, il peut y avoir des déchets. En général, il faut d'abord un indicateur fiable - et ensuite le conseiller expert qui l'utilise.

 
EgorKim:

Comme ça.

Et certaines passes d'optimisation coïncident dans le visualiseur.

Et certaines passes ne correspondent à aucun métier.

Je pense que le problème se situe au niveau de l'indicateur.

Et comme Artem l'a souligné à juste titre, le problème réside dans les données réelles.

Il ne veut simplement pas me dire comment le faire).

Non, je me suis trompé en pensant que vous aviez un indicateur multi-temporel.

Vous avez l'indicateur le plus courant dont vous voulez récupérer les données à partir de l'horizon temporel de quelqu'un d'autre.

Dans un EA, vous devez vérifier la pertinence des données de la période souhaitée. S'il n'y a pas encore de données pour cette période, sortez jusqu'au prochain tick.
Et ensuite, lorsque toutes les données de l'ancien cadre sont reçues dans le volume correct - alors appelez l'indicateur.

Essayez de le faire de cette façon.

 
Artyom Trishkin:

Non, j'ai eu tort de penser que vous aviez un indicateur multi-temporels.

Vous avez l'indicateur le plus courant dont vous voulez récupérer les données à partir de l'horizon temporel de quelqu'un d'autre.

Dans le conseiller expert, vous devez vérifier la pertinence des données de l'horizon temporel souhaité. S'il n'y a pas encore de données pour cette période, sortez avant le prochain tick.
Et ensuite, lorsque toutes les données de l'ancien cadre temporel sont reçues dans le volume correct - alors appelez l'indicateur.

Essayez de le faire de cette façon.

Comment faites-vous ? Je veux dire pour vérifier sa pertinence.

Je vérifie que ce n'est pas 0.0 (code ci-dessus).

Que puis-je faire d'autre ? Ce que l'indicateur me donne, je le prends.

C'est ce que fait l'indicateur.

 
EgorKim:

Comment faites-vous ? Je veux dire pour vérifier s'il est à jour.

Je vérifie que ce n'est pas 0.0 (code ci-dessus).

Que puis-je faire d'autre ? Ce que j'obtiens de l'indicateur, je l'obtiens.

Il s'agit d'un indicateur pour cette raison.

Avez-vous pris l'indicateur de KodoBase ? Si oui, pouvez-vous me donner son URL ?

 
EgorKim:

Comment faites-vous ? Je veux dire pour vérifier s'il est à jour.

Je vérifie que ce n'est pas 0.0 (code ci-dessus).

Que puis-je faire d'autre ? Ce que j'obtiens de l'indicateur, je l'obtiens.

Il s'agit d'un indicateur pour cette raison.

L'erreur se trouve dans l'indicateur lui-même.

J'ai réécrit beaucoup d'Expert Advisors et c'est la première fois que ce problème se produit.

Vous pouvez regarder et construire le conseiller expert vous-même, j'ai donné la logique ci-dessus.

Et vous pouvez voir à quel point le terminal et le testeur se comportent mal. Les résultats sont différents même si les paramètres de l'indicateur sont les mêmes)

 
Vladimir Karputov:

Avez-vous obtenu l'indicateur à partir de KodoBase ? Si oui, puis-je avoir son URL ?

Oui

https://www.mql5.com/ru/code/64

Plombiers - Осциллятор в канале
Plombiers - Осциллятор в канале
  • www.mql5.com
Просмотров: 6747 Рейтинг: Опубликован: 2010.01.26 12:54 Обновлен: 2016.11.22 07:33 Пример использования канала и осциллятора Stochastic. Иногда полезно смотреть поведение осциллятора в канале. Оценка ситуации упрощается. Изменяя параметры, можно гибко настроить отображение индикатора. Bulls Bears Power...
 

En général, vous pouvez le tester pour l'instant (fonctionne avec l'indicateurPlombiers - oscillateur dans le canal- l'indicateur doit se trouver dans le dossier [dossier de données] \MQL5\Indicators\plombiers.mq5).


Idée de stratégie de trading

L'Expert Advisor fonctionne en utilisant l'indicateur personnaliséPlombiers. Pour la formation de signaux, deux lignes de l'indicateur sont prises en compte : "Résistance" et "Support".

Plombiers EA

Signal pour l'ouverture d'une positionBUY : Le prix bas de la barre #1 est inférieur à la ligne "Support" de la barre #1.

Signal d'ouverture d'uneposition VENTE : le prix Haut de la barre 1 est supérieur à la ligne de "Résistance" de la barre 1.

//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SearchTradingSignals(void)
  {
   double means[],resistance[],support[];
   MqlRates rates[];
   ArraySetAsSeries(means,true);
   ArraySetAsSeries(resistance,true);
   ArraySetAsSeries(support,true);
   ArraySetAsSeries(rates,true);
   int start_pos=0,count=3;
   if(!iGetArray(handle_iCustom,0,start_pos,count,means) || 
      !iGetArray(handle_iCustom,1,start_pos,count,resistance) || 
      !iGetArray(handle_iCustom,2,start_pos,count,support) || 
      CopyRates(m_symbol.Name(),Period(),start_pos,count,rates)!=count)
     {
      return(false);
     }

   int size_need_position=ArraySize(SNeedPosition);
   if(rates[1].low<support[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
     }
   if(rates[1].high>resistance[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
     }
//---
   return(true);
  }
 
Vladimir Karputov:

En général, vous pouvez le tester pour l'instant (fonctionne avec l'indicateurPlombiers - oscillateur dans le canal- l'indicateur doit se trouver dans le dossier [dossier de données] \MQL5\Indicators\plombiers.mq5).


Idée de stratégie de trading

L'Expert Advisor fonctionne en utilisant l'indicateur personnaliséPlombiers. Pour la formation de signaux, deux lignes de l'indicateur sont prises en compte : "Résistance" et "Support".


Signal pour l'ouverture d'une positionBUY : Le prix bas de la barre #1 est inférieur à la ligne "Support" de la barre #1.

Signal d'ouverture d'uneposition VENTE : le prix haut de la barre n°1 est supérieur à la ligne de "Résistance" de la barre n°1.

Prenez les valeurs de"support" et de"résistance" de la période supérieure.

C'est-à-dire que l'indicateur MTF doit être dans l'entrée de l'optimiseur.

input ENUM_TIMEFRAMES TimeFramePlombiers=PERIOD_H4;

handle_Plombiers=iCustom(Symbol(),TimeFramePlombiers,"plombiers",итд);

Comme ceci

Raison: