Fonctions utiles de KimIV - page 73

 
La fonction renvoie la fractale par son numéro. La numérotation est distincte pour les fractales supérieures et inférieures. Cela peut être utile pour développer des conseillers experts qui analysent le positionnement relatif du dernier nombre de fractales afin de prendre une décision concernant l'entrée sur le marché. Réalisé en modifiant la fonction KimIV.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru  & khorosh        |
//+----------------------------------------------------------------------------+
//|  Версия   : 08.02.2009                                                     |
//|  Описание : Возвращает фрактал по его номеру.                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента        ("" или NULL - текущий символ)     |
//|    tf - таймфрейм                       (    0       - текущий ТФ)         |
//|    nf - номер фрактала                  (    0       - последний)          |
//+----------------------------------------------------------------------------+
double GetFractal(string sy="0", int tf=0, int nf=0, int mode=MODE_UPPER) {
  if ( sy=="" || sy=="0") sy=Symbol();
  double f=0;
  int    i, k=iBars( sy, tf), kf;
  for ( i=3; i< k; i++) {
    if( mode==MODE_LOWER){
    f=iFractals( sy, tf, MODE_LOWER, i);
    if ( f!=0) {
      kf++;
      if ( kf> nf) return(iLow( sy, tf, i));
     } 
    }
    if( mode==MODE_UPPER){
    f=iFractals( sy, tf, MODE_UPPER, i);
    if ( f!=0) {
      kf++;
      if ( kf> nf) return(iHigh( sy, tf, i));
      }
    }
  }
  Print("GetFractalBar(): Фрактал не найден");
  return(-1);
}
 

Bonjour Igor !

J'essaie d'apprendre MQL4 et, en raison du manque de description des opérateurs du langage, un problème m'a laissé perplexe. J'ai un indicateur avec 8 buffers de données accumulées, j'ai besoin qu'il s'affiche sur un timeframe que j'ai choisi et avec la période du timeframe suivant. Pour ce faire, il utilise l'opérateur iCustom(). Mais il renvoie une valeur double et je ne sais pas comment et si iCustom peut et doit être utilisé dans ce cas.

J'espère vraiment que vous pourrez m'aider.

 

Bonjour Igor et bonjour à tous !

Je suis intéressé par le code qui doit être saisi pour que le Conseiller Expert ne fasse plus de transactions ce jour-là lorsqu'il ferme une transaction....


Je l'ai trouvé mais il ne fonctionne pas dans le testeur de stratégie, je veux le tester, quel code dois-je utiliser à la place ?

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает номер бара открытия последней позиции или -1.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    op - операция                   (   -1       - любая позиция)           |
//|    mn - MagicNumber                (   -1       - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfBarCloseLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersHistoryTotal();

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) t=OrderCloseTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}

Ensuite, vous devez mettre les conditions d'entrée

if (NumberOfBarCloseLastPos(NULL, 1440,-1, Magic)  !=0) {
                                                      }
 
LeoV писал(а) >>

Bonjour Igor !

Avez-vous un script qui modifie toutes les positions ouvertes par volume (lots) pour tous les instruments d'un certain pourcentage ? A la fois vers le haut et vers le bas, avec une sauvegarde du nombre magique pour chaque position ?

Bonjour Leonid !

Je n'ai pas... J'ai écrit... ChangeLots

 
KimIV писал(а) >>

Bonjour, Leonid !

N'a pas... écrit... ChangeLots

Igor, merci beaucoup ! Je pourrais vraiment utiliser ça pour mon Pamm. )))))
 

Bonjour Igor !

Lorsque j'utilise votre conseiller-expert "e-SampleCase", lorsque je fixe un stop

inférieur à 100 (10 pips), mon testeur génère l'erreur 130.

Je ne sais pas pourquoi il ne fonctionne pas correctement.

Veuillez répondre !

 
6232 >> :

Lorsque vous utilisez votre Expert Advisor "e-SampleCase", lorsque vous fixez un stop

moins de 100 (10 pips), mon testeur donne l'erreur 130.

L'arrêt fonctionne bien. Pourquoi ?

Extension du couloir BC min. pour les arrêts et les prises en charge.

 
BARS писал(а) >>

Élargissement du corridor DC min. pour fixer des arrêts et des prises en charge

>>Merci ! Je l'ai.

 
6232 >> :

Bonjour Igor !

Lorsque j'utilise votre conseiller-expert "e-SampleCase", lorsque je fixe un stop

inférieur à 100 (10 pips), mon testeur génère l'erreur 130.

Je ne sais pas pourquoi il ne fonctionne pas correctement.

>> S'il vous plaît, donnez-moi une réponse.

c'est probablement à cause de l'introduction du cinquième chiffre, chez alpari d'ailleurs ils ont dit qu'il fallait multiplier ses stops par 10 car vos 100 pips deviennent 10 pips, d'où les erreurs sur la plupart des paires....

 
stalkervr писал(а) >>

Si vous le voulez bien, dites-moi comment utiliser votre fonction

Déterminer la présence et le volume d'une position ouverte, ainsi que la présence et le volume d'ordres en attente fixés

Eugène, je trouve votre question un peu redondante car un volume non nul signifie automatiquement une présence.

Regardez les fonctions :

Peut-être que vous pouvez faire quelque chose d'utile pour vous.

Raison: