[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 547

 
Zhunko:

Alors la bibliothèque vous aidera. Mais cela n'aidera qu'à charger l'indicateur à partir du conseiller expert. Vous pouvez faire les calculs vous-même.

Voir la section sur la bibliothèque " 7. FONCTIONS DE CONTRÔLE DES PROGRAMMES MQL4".



404

La page que vous avez demandée n'a pas été trouvée

Essayez d'utiliser la recherche ou de trouver les informations dont vous avez besoin dans l'une des sections de MQL4.com.

 

Je voulais consolider la question du passage des paramètres via un lien.

Pour écrire un simple expert, pour ainsi dire.

//+------------------------------------------------------------------+
//|                                                        links.mq4 |
//|                                                              hoz |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "hoz"
#property link      ""

double firstBarClosed,
       secondsBarClosed;
       
int a = 1;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+-------------------------------------------------------------------------------------+
//| Получение цены установки отложенного ордера                                         |
//+-------------------------------------------------------------------------------------+
double GetPriceToInput()
{ 
  double firstBarClosed = iClose(Symbol(),1440,2);                          // Цена закрытия предпоследнего дня
  double secondBarClosed = iClose(Symbol(),1440,1);                         // Цена закрытия последнего дня
  
  if(firstBarClosed > secondBarClosed)                                      // Если закрытие вчерашнего дня ниже закрытия предыдущего..
  {                                                                         //.. (линия по ценам закрытий направлена вниз), то..
    double deltaForSell = (firstBarClosed - secondBarClosed)/2;             // Находим дельту изменения цены до 12 часов текущего дня
    double priceForSell = secondBarClosed - deltaForSell;                   // Вычисляем цену продажи
    return(priceForSell);
  }

  if(firstBarClosed < secondBarClosed)                                      // Если закрытие предыдущего днях ниже закрытия вчерашнего..
  {                                                                         //..(линия по ценам закрытий направлена вверх), то..
    double deltaForBuy = (secondBarClosed - firstBarClosed)/2;              // Находим дельту изменения цены до 12 часов текущего дня
    double priceForBuy = secondBarClosed + deltaForBuy;                     // Вычисляем цену покупки
    return(priceForBuy);
  }
}

void Test(double& a, double& b)
      {
         Print("firstBarClosed = ", firstBarClosed);
         Print("secondsBarClosed = ", secondsBarClosed);
      }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{
   GetPriceToInput();
   
   if(a > 0)
   {
     Test(firstBarClosed, secondsBarClosed);
   }

   return(0);
}
//+------------------------------------------------------------------+

Dans le journal, 0 est constamment sorti. Pourquoi ?

Sur la ligne :

void Test(double& a, double& b)

Je n'ai pas mis "firstBarClosed" et "secondBarClosed" car ce sont des paramètres formels. Ceci est déjà dans la fonction de démarrage

if(a > 0)
   {
     Test(firstBarClosed, secondsBarClosed);
   }
 
kolospav:

Nouveau compte créé pour metatrader ! argent chargé de Market trader ! sur le site web dans le relevé de compte - il y a de l'argent. Je ne le comprends pas du tout. Le support technique est également dans la stupeur... J'essaie de le comprendre moi-même !


Certains DCs exigent une copie de votre passeport ou quelque chose de similaire... Essayez d'ouvrir un compte de démonstration par souci d'intérêt.
 
gheka:


404

La page que vous avez demandée n'a pas été trouvée

Essayez d'utiliser la recherche ou de trouver les informations dont vous avez besoin dans l'une des sections de MQL4.com.

J'ai corrigé le lien. Vous auriez dû le découvrir vous-même. C'était un lien privé. Vous auriez dû enlever mon.
 
Zhunko:
Le lien a été corrigé. Vous auriez pu vous en rendre compte par vous-même. C'était privé. Vous auriez dû enlever mon.


Merci à .
 
gheka:

comment faire un indicateur sur un graphique (ligne) dans un EA

Si vous vous exécutez dans le testeur et que vous cochez "Visualisation", l'EM s'affichera automatiquement.
Si vous avez besoin de surveiller dans le mode actuel, il suffit de mettre la MA sur le graphique avec les paramètres que vous avez dans l'EA. Ils ne seront pas liés les uns aux autres, mais il sera évident
 
Arles:

Pouvez-vous me donner un indice ? J'écris des lignes comme celles-ci :

Je veux que High soit compté par MA, pas par prix. Ce code ne fonctionne pas. J'ai besoin de quelque chose de similaire à iMAOnArray, mais seulement iHIGHOnArray. Mais pour autant que je sache, cela n'existe pas. Aide...


La question n'est pas tout à fait claire : "Je veux que High ne soit pas compté par le prix". High[] est une valeur prédéfinie, nous ne pouvons pas la changer, peut-être voulons-nous une MA par le prix High ?
 
pu6ka:

La question n'est pas tout à fait claire : "Je veux que High ne soit pas compté par le prix". High[] est une valeur prédéfinie, nous ne pouvons pas la changer. Peut-être voulons-nous une MA par le prix High ?


Non, nous voulons connaître la valeur maximale du MA lui-même pour la période.
 
Arles:

Non, vous devez connaître la valeur maximale du MA lui-même sur la période.
Maintenant je vois. Le plus souvent, nous devons créer un tableau pour les valeurs MA et ensuite un second tableau pour stocker les valeurs max, ou une variable si seule la dernière valeur max est nécessaire.
 
pu6ka:
Maintenant je vois. Le plus souvent, vous devez créer un tableau pour les valeurs MA et ensuite un second tableau pour stocker les valeurs max, ou une variable si seule la dernière valeur max est nécessaire.


C'est la question, je ne sais pas comment faire. Elle doit se présenter sous la forme d'un indicateur, c'est-à-dire qu'elle ne doit pas se limiter à la dernière valeur.
Raison: