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

 
barabashkakvn:

Modification du code de calcul

à

C'est 13 ou 12 ou un autre nombre - cela devrait être le paramètre "Période". Période de calcul de la moyenne

Hourra !

Merci, ça a marché. Pourquoi ce paramètre ne figure-t-il pas dans l'indicateur original ? C'est préréglé par défaut, vous savez ?

C'est-à-dire que je ne fixe que le nombre de barres pour le calcul de la moyenne et rien d'autre. En fait, c'est le seul paramètre de la source et il est utilisé dans la formule.

Dans la dernière version, j'ai deux paramètres. Nombre de barres pour le calcul de la moyenne et une pour le calcul du SmoothFactor.

 
Alvin1976:

Hourra !

Merci. Mais pourquoi ce paramètre ne figure-t-il pas dans l'indicateur original ? Savez-vous si elle est prescrite par défaut ?

C'est-à-dire que je ne règle que le nombre de barres pour le calcul de la moyenne et c'est tout. En fait, dans le code source, c'est le seul paramètre qui est utilisé dans la formule.

Dans la dernière version, j'ai deux paramètres. Nombre de barres pour le calcul de la moyenne et une pour le calcul du SmoothFactor.

Tout est disponible dans l'ensemble. Voir le code de l'indicateur "***MQL5\Indicators\Examples\Custom Moving Average.mq5"
 
barabashkakvn:
Tout est dans la livraison. Voir le code de l'indicateur "***\MQL5\Indicators\Examples\Custom Moving Average.mq5".

C'est de là que je tiens tout :-). Je suppose que je ne comprends pas......

Pourtant, pour une raison quelconque, les valeurs EMA calculées ne correspondent pas aux valeurs originales.

Peut-être que cet indicateur converti en fonction est disponible quelque part ?

 
Alvin1976:

C'est de là que je tiens tout :-). Je suppose que je ne comprends pas......

Je veux l'utiliser comme poignée et pour une raison quelconque, les valeurs EMA calculées ne coïncident pas avec les valeurs originales.

Peut-être existe-t-il quelque part un indicateur converti en fonction ?

Ou peut-être est-il préférable de créer dans OnInit() de l'EA deux poignées de l'indicateur iMA avec différents types de lissage, puis de récupérer les valeurs de ces indicateurs ?

 
barabashkakvn:

Ou peut-être est-il préférable de créer deux poignées de l'indicateur iMA avec différents types de lissage dans OnInit(), puis de récupérer les valeurs de ces indicateurs ?

J'ai déjà essayé. MQL5 produit quelques absurdités par poignées. Par exemple.

A la sortie de la première barre, nous obtenons des valeurs variables alors que la barre a déjà été formée ! Tout fonctionne bien dans MQL4 mais c'est horrible ici.

     MAvarage1[ns] = INVALID_HANDLE;                        //-----------------------------------
   for (int i=0;i<10;i++) //10 попыток создать индикатор
      {
       MAvarage1[ns]=iMA(Symbols[ns],DopTF2,MAper1[ns],0,MAmet2,PRICE_CLOSE);
       if (MAvarage1[ns] == INVALID_HANDLE) Sleep(1000);
      }
              //Проверим handle 
   if (MAvarage1[ns] == INVALID_HANDLE) 
   {
    Print("Ошибка при создании MAvarage1! (№", GetLastError(), ")");
    return;
   } 

  Recount=false;
  if (CopyBuffer(MAvarage1[ns],0,0,2,MA1)<1) Recount=true;
  if (Recount){
  Print("Ошибка при копировании из индикатора ! (№", GetLastError(), ")");
  return;   
  }
  Print("MA1[1]=",MA1[1]);
 
Alvin1976:

J'ai déjà essayé. MQL5 produit quelques absurdités par poignées. Par exemple.

De cette manière, la première barre sort des valeurs variables alors que la barre a déjà été formée ! Tout fonctionne bien dans MQL4 mais ici c'est horrible.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Questions des débutants

Je n'ai jamais essayé d'utiliser le Handlestick dans le trading, il est trop tôt pour l'utiliser.

Ou peut-être serait-il préférable de créer deux indicateurs iMA avec différents types de lissage dans OnInit() de l'EA , puis de récupérer les valeurs de ces indicateurs ?


 

J'ai déjà eu beaucoup de mal à transférer le code vers MQL5. Le problème se situe surtout au niveau des indicateurs. La stochastique obtient une sorte de valeurs "gauches".

J'ai décidé de calculer les valeurs par moi-même.

J'ai besoin de MQL5 uniquement pour la vitesse d'optimisation et pour la vérification du mode multidevise. C'est tout !

Il n'est pas utile pour autre chose. J'espère qu'aucun centre de traitement n'utilisera jamais cette "merveille".

J'ai compris les valeurs des variables ! Il s'avère que CopyBuffer inverse l'ordre des indices !

Pourquoi je ferais ça ?

 

Alvin1976:

...Aaah avec les valeurs variables déterminées ! CopyBuffer inverse l'ordre des indices !

Pourquoi est-ce que je fais ça ?

Je ne veux pas demander à l'indicateur ce dont il n'a pas besoin... Imaginez, vous venez dans un kiosque à journaux. Et vous voulez du journal pour les 3 derniers jours... Et ils disent, nous allons vendre votre journal, mais seulement pour les 20 derniers jours... En avez-vous besoin ? :-)
 
denkir:
Si vous voulez éviter de demander à l'indicateur ce dont vous n'avez pas besoin... Imaginez, vous venez dans un kiosque à journaux. Et vous avez besoin d'un journal des 3 derniers jours. Et ils disent : "Nous pouvons vous vendre votre journal, mais seulement pour les 20 derniers jours...". En avez-vous besoin ? :-)

Eh bien, dans MQL4, vous n'avez pas à en demander trop non plus. Il ne s'agit pas de la quantité, mais de l'ordre.

Où est la logique ? Tout le monde s'est habitué au fait que l'élément zéro du tableau est la barre actuelle. Pourquoi changer quelque chose ? ???.

P.S. Je l'ai corrigé grâce à ArraySetAsSeries.

Tumbling .....

 
Alvin1976:

Eh bien, dans MQL4, vous n'avez pas à en demander trop non plus. Il ne s'agit pas de la quantité, mais de l'ordre.

Où est la logique ? Tout le monde s'est habitué au fait que l'élément zéro du tableau est la barre actuelle. Pourquoi changer quelque chose ? ???.

P.S. Je l'ai corrigé grâce à ArraySetAsSeries.

Danse au tambourin.....

Ce n'est pas le tambourin, mais les innovations auxquelles vous devrez vous habituer. Et ces innovations rendront la tâche plus facile dans certains cas. Ne demandez pas d'exemples, je n'en parlerai pas.