Fonctions utiles de KimIV - page 55

 
Rosh писал(а) >>

Cette fonction n'existe pas. Les objets ne peuvent être créés et gérés que sur le graphique auquel l'EA est attaché.

Merci pour votre réponse rapide. Sera-t-il disponible dans la version 5 de Metatrader ?

 
KimIV, n'y a-t-il pas un script dans votre collection qui fermerait tous les Oredar ouverts : buy, sell, buystop, sellstop, buylimit, selllimit - de manière forcée, cyclique, pour fermer sans erreurs et tout ?
 

http://forum.alpari-idc.ru/showpost.php?p=368730&postcount=24

Je l'ai déjà trouvé ici.

 
KimIV, avez-vous un script dans votre collection, comme celui-ci - ByMarketBuySymbols et ByMarketSellSymbols, seulement commun, de sorte que disons que le script ouvre 5 positions pour l'achat et 2 pour la vente ?
 
Chère KimIV,

Merci beaucoup pour un travail bien fait.

Une suggestion : si possible, dans le premier message, postez et mettez à jour une liste de vos fonctionnalités/scripts avec des liens vers les pages de la branche concernée et une courte description. Alors ce sera un super-outil ! Sinon, quelqu'un parle quelque part de quelque chose "qu'il enverra à Kim" et il faut ensuite faire défiler les pages pendant un long moment pour trouver ...

 

Fonction MovingInWL().

Déplace le niveau de prix StopLoss des positions ouvertes vers le seuil de rentabilité. La fonction MovingInWL() accepte les paramètres facultatifs suivants :

  • sy - Nom de l'instrument. "" - tout symbole, NULL - symbole actuel. La valeur par défaut est "".
  • op - Opération commerciale. Valeurs valables : -1, OP_BUY, OP_SELL. La valeur par défaut est -1 - tout commerce.
  • mn - Identifiant du commerce, MagicNumber. Valeur par défaut -1 - n'importe quel magik.

De plus, la fonction MovingInWL() possède des variables globales (paramètres externes du script ou de l'Expert Advisor) :

  • int LevelProfit - Niveau de profit en points, qu'une position doit atteindre pour que son stop soit déplacé au niveau du Breakeven.
  • int LevelWLoss - Niveau de seuil de rentabilité en points, vers lequel le stop sera transféré lorsque son bénéfice aura atteint le niveau LevelProfit en points.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Перенос уровня стопа в безубыток                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void MovingInWL(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) {
      po=MarketInfo(OrderSymbol(), MODE_POINT);
      if (OrderType()==OP_BUY) {
        if (OrderStopLoss()-OrderOpenPrice()< LevelWLoss* po) {
          pp=MarketInfo(OrderSymbol(), MODE_BID);
          if ( pp-OrderOpenPrice()> LevelProfit* po) {
            ModifyOrder(-1, OrderOpenPrice()+ LevelWLoss* po, -1);
          }
        }
      }
      if (OrderType()==OP_SELL) {
        if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()< LevelWLoss* po) {
          pp=MarketInfo(OrderSymbol(), MODE_ASK);
          if (OrderOpenPrice()- pp> LevelProfit* po) {
            ModifyOrder(-1, OrderOpenPrice()- LevelWLoss* po, -1);
          }
        }
      }
    }
  }
}

SZZ. Vous pouvez trouver un Expert Advisor avec un exemple d'utilisation de la fonction MovingInWL() ici.

 
mamma писал(а) >>
Si c'est possible, dans le premier message, mettez à jour la liste de vos fonctionnalités/scripts avec des liens vers les pages de la branche et de brèves descriptions.

La première page est déjà impossible...

Je vais le poster ici... Si le message à mettre à jour est bloqué, je le reposterai. Gardez donc un œil sur le fil de discussion :-)

Dossiers :
f_kimiv_1.rar  11 kb
 

Fonction SimpleTrailing().

Déplace le niveau de prix StopLoss des positions ouvertes en utilisant l'algorithme TrailingStop. La fonction SimpleTrailing() accepte les paramètres facultatifs suivants :

  • sy - Nom de l'instrument. "" - tout symbole, NULL - symbole actuel. La valeur par défaut est "".
  • op - Opération commerciale. Valeurs valables : -1, OP_BUY, OP_SELL. La valeur par défaut est -1 - tout commerce.
  • mn - Identifiant du commerce, MagicNumber. Valeur par défaut -1 - n'importe quel magik.

En outre, la fonction SimpleTrailing() implique des variables globales (paramètres externes du script ou de l'Expert Advisor) :

  • bool TSProfitOnly - Change la zone dans laquelle le chalut commence. Si True, le chalut ne commencera à fonctionner que lorsque le profit de la position atteindra la valeur des points TStop.Buy/Sell+TrailingStep. Si Faux, le Conseiller Expert s'assurera simplement que la position stop par rapport au prix actuel n'est jamais plus loin que TStop.Buy/Sell+TrailingStep pips. En d'autres termes, si Vrai, le Conseiller Expert travaille uniquement dans la zone de profit de la position, alors que si Faux, il travaille dans la zone négative de la position.
  • int TStop.Buy - Taille du trall en points à acheter.
  • intTStop.Sell - Taille du chalut en points pour la vente.
  • int TrailingStep - Étape de suivi en points. Ceci est nécessaire pour éviter des demandes fréquentes au concessionnaire.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Сопровождение позиций простым тралом                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void SimpleTrailing(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  if ( sy=="0") sy=Symbol();
  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()== sy || sy=="") && ( op<0 || OrderType()== op)) {
        po=MarketInfo(OrderSymbol(), MODE_POINT);
        if ( mn<0 || OrderMagicNumber()== mn) {
          if (OrderType()==OP_BUY) {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            if (! TSProfitOnly || pp-OrderOpenPrice()> TStop. Buy* po) {
              if (OrderStopLoss()< pp-( TStop. Buy+ TrailingStep-1)* po) {
                ModifyOrder(-1, pp- TStop. Buy* po, -1);
              }
            }
          }
          if (OrderType()==OP_SELL) {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            if (! TSProfitOnly || OrderOpenPrice()- pp> TStop. Sell* po) {
              if (OrderStopLoss()> pp+( TStop. Sell+ TrailingStep-1)* po || OrderStopLoss()==0) {
                ModifyOrder(-1, pp+ TStop. Sell* po, -1);
              }
            }
          }
        }
      }
    }
  }
}

SZZ. Un conseiller expert avec un exemple d'utilisation de la fonction SimpleTrailing() peut être trouvé ici.

 

//------- Connexion des modules externes -----------------------------------------+

#include "b-Positions.mqh" // Travailler avec des positions

Où trouver ce fichier ?

 
beginner писал(а) >>

//------- Connexion des modules externes -----------------------------------------+

#include "b-Positions.mqh" // Travailler avec des positions

Où trouver ce fichier ?

ici