Funciones útiles de KimIV - página 73

 
La función devuelve el fractal por su número. La numeración es distinta para los fractales superiores e inferiores. Esto puede ser útil para desarrollar Asesores Expertos que analicen el posicionamiento relativo del último número de fractales para tomar una decisión sobre la entrada en el mercado. Realizado mediante la modificación de la función 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);
}
 

¡Hola Igor!

Estoy tratando de aprender MQL4 y debido a la falta de descripción de los operadores del lenguaje un problema me ha dejado perplejo. Tengo un indicador con 8 buffers de datos acumulados. Necesito que se muestre en un marco temporal que he elegido y con el periodo del siguiente marco temporal. Para ello, utiliza el operador iCustom(). Pero devuelve un valor doble y no sé cómo y si se puede y debe utilizar iCustom en este caso.

Realmente espero su ayuda.

 

¡Hola Igor! ¡Y buenas tardes a todos!

Me interesa el código que se debe introducir para que el Asesor Experto no haga más operaciones ese día cuando cierre una operación...


Lo he encontrado pero no funciona en el probador de estrategias, quiero probarlo, ¿qué código debo usar en su lugar?

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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));
}

A continuación, debe poner las condiciones de entrada

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

¡Hola Igor!

¿Tiene un script que modifique todas las posiciones abiertas por volumen (lotes) para todos los instrumentos en un determinado porcentaje? ¿Tanto al alza como a la baja con el ahorro del Número Mágico para cada posición?

¡Hola Leonid!

Yo no... escribí... ChangeLots

 
KimIV писал(а) >>

¡Hola, Leonid!

No... escribió... ChangeLots

Igor, ¡muchas gracias! Me vendría muy bien para mi pamm. )))))
 

¡Hola Igor!

Al utilizar su Asesor Experto "e-SampleCase", cuando establezco un stop

menos de 100 (10 pips), mi probador genera el error 130.

No sé por qué no funciona correctamente.

¡Responde, por favor!

 
6232 >> :

Cuando utilice su Asesor Experto "e-SampleCase", al establecer un stop

menos de 100 (10 pips), mi probador da error 130.

Stop funciona bien. ¿Por qué?

Corredor ampliado de BC min. para establecer paradas y tomas de corriente

 
BARS писал(а) >>

Ampliación del corredor mínimo de DC para establecer paradas y tomas de posesión

>>¡Gracias! Lo tengo.

 
6232 >> :

¡Hola Igor!

Al utilizar su Asesor Experto "e-SampleCase", cuando establezco un stop

menos de 100 (10 pips), mi probador genera el error 130.

No sé por qué no funciona correctamente.

>> Por favor, dame una respuesta.

probablemente sea por la introducción del quinto dígito, en alpari por cierto dijeron que tienes que aumentar tus stops 10 veces porque tus 100 pips se convierten en 10 pips, de ahí los errores en la mayoría de los pares...

 
stalkervr писал(а) >>

Si no le importa, dígame cómo utilizar su función

Determinar la presencia y el volumen de una posición abierta, así como la presencia y el volumen de las órdenes pendientes establecidas

Eugene, me parece que tu pregunta es un poco redundante porque un volumen no nulo significará automáticamente presencia.

Mira las funciones:

Tal vez, puedas hacer algo útil para ti.

Razón de la queja: