Funciones útiles de KimIV - página 55

 
Rosh писал(а) >>

No existe tal función. Los objetos sólo pueden ser creados y gestionados en el gráfico al que está unido el EA.

Gracias por su pronta respuesta. ¿Estará disponible en la versión 5 de Metatrader?

 
KimIV, ¿no hay un script en tu colección que cierre todos los Oredar abiertos: buy, sell, buystop, sellstop, buylimit, selllimit - a la fuerza, cíclicamente, para cerrar sin errores y todo?
 

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

Ya lo encontré aquí.

 
KimIV, ¿tienes un script en tu colección, como este - ByMarketBuySymbols y ByMarketSellSymbols, solo que común, para que digamos que el script abre 5 posiciones de compra y 2 de venta?
 
Querida KimIV,

Muchas gracias por un trabajo bien hecho.

Una sugerencia: si es posible, en el primer post, publica y actualiza una lista de tus características/scripts con enlaces a las páginas de la rama correspondiente y una breve descripción. ¡Entonces será una superherramienta! De lo contrario, alguien en algún lugar acerca de algo "enviará a Kim" y luego parpadea aquí mucho para encontrar ...

 

Función MovingInWL().

Mueve el nivel de precio StopLoss de las posiciones abiertas al Breakeven. La función MovingInWL() acepta los siguientes parámetros opcionales:

  • sy - Nombre del instrumento. "" - cualquier símbolo, NULL - símbolo actual. El valor por defecto es "".
  • op - Operación comercial. Valores válidos: -1, OP_BUY, OP_SELL. El valor por defecto es -1 - cualquier comercio.
  • mn - Identificador comercial, MagicNumber. Valor por defecto -1 - cualquier magik.

Además, la función MovingInWL() tiene variables globales (parámetros externos del script o del Asesor Experto):

  • int LevelProfit - Nivel de beneficio en puntos, que debe alcanzar una posición para que su stop se mueva al nivel de Breakeven.
  • int LevelWLoss - Nivel de equilibrio en puntos, al que se trasladará el stop después de que su beneficio alcance el nivel LevelProfit en puntos.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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. Puede encontrar un Asesor Experto con un ejemplo de uso de la función MovingInWL() aquí.

 
mamma писал(а) >>
Si es posible, en el primer post, pon y actualiza la lista de tus características/scripts con enlaces a las páginas de la rama y una breve descripción.

La primera página ya es imposible...

Lo publicaré aquí... Si el post para actualizar se bloquea, lo volveré a publicar. Así que no pierda de vista el hilo :-)

Archivos adjuntos:
f_kimiv_1.rar  11 kb
 

Función SimpleTrailing().

Mueve el nivel de precio StopLoss de las posiciones abiertas utilizando el algoritmo TrailingStop. La función SimpleTrailing() acepta los siguientes parámetros opcionales:

  • sy - Nombre del instrumento. "" - cualquier símbolo, NULL - símbolo actual. El valor por defecto es "".
  • op - Operación comercial. Valores válidos: -1, OP_BUY, OP_SELL. El valor por defecto es -1 - cualquier comercio.
  • mn - Identificador comercial, MagicNumber. Valor por defecto -1 - cualquier magik.

Además, la función SimpleTrailing( ) implica variables globales (parámetros externos del script o Asesor Experto):

  • bool TSProfitOnly - Cambia la zona en la que comienza la red de arrastre. Si es True, el arrastre sólo comenzará a funcionar cuando el beneficio de la posición alcance el valor de los puntos TStop.Buy/Sell+TrailingStep. Si es Falso, el Asesor Experto simplemente se asegurará de que la posición de stop relativa al precio actual no esté siempre más allá de TStop.Buy/Sell+TrailingStep pips. En otras palabras, si es Verdadero, el Asesor Experto trabaja sólo en la zona de ganancias de la posición, mientras que si es Falso trabaja en la zona negativa de la posición.
  • int TStop.Buy - Tamaño del trall en puntos a comprar.
  • intTStop.Sell - Tamaño del arrastre en puntos para la venta.
  • int TrailingStep - Paso final en puntos. Esto es necesario para evitar las solicitudes frecuentes al distribuidor.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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 Asesor Experto con un ejemplo de uso de la función SimpleTrailing() se puede encontrar aquí.

 

//------- Conexión de módulos externos -----------------------------------------+

#include "b-Positions.mqh" // Trabajar con posiciones

¿Dónde encontrar este archivo?

 
beginner писал(а) >>

//------- Conexión de módulos externos -----------------------------------------+

#include "b-Positions.mqh" // Trabajar con posiciones

¿Dónde encontrar este archivo?

aquí