Funciones útiles de KimIV - página 56

 
KimIV >> :

aquí

Gracias, ayer no estaba o me lo perdí.

 
beginner писал(а) >>

Gracias, ayer no estaba o me lo perdí.

>> No lo era.

 

Sí, ahora éste.

#include "b-KimIV.mqh" // Biblioteca de funciones adicionales

 

Estimado KimIV, me gustaría pedirte que modifiques e-SOTrailing de la siguiente manera : (Toda la táctica en este caso es colocar las órdenes de stop a cierta distancia del fractal más cercano y moverlas después del precio). Supongo que no es tan difícil usar su función FindNearFractal, ¿tal vez?

void TrailingOrders() {

......

pa=FindNearFractal(OrderSymbol(), 0, MODE_UPPER); //MarketInfo(OrderSymbol(), MODE_ASK);

......

pb=FindNearFractal(OrderSymbol(), 0, MODE_LOWER);//MarketInfo(OrderSymbol(), MODE_BID);

 
beginner писал(а) >>

Sí, ahora éste.

#include "b-KimIV.mqh" // Biblioteca de funciones adicionales

>> Más tarde.

 
KimIV >> :

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 :-)

Gracias, este es el indicado.

 

La función ArrayZ().

Esta función calcula y devuelve el recuento Z de la serie de números pasados en el array por referencia.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 27.10.2008                                                     |
//|  Описание : Возвращает Z-счёт числового ряда.                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    arr - массив значений числового ряда                                    |
//+----------------------------------------------------------------------------+
double ArrayZ(double& arr[]) {
  double x, z;
  int    i, l=0, n=ArraySize( arr), r=1, w=0;

  for ( i=0; i< n; i++) {
    if ( i==0) r=1;
    else {
      if ( arr[ i-1]* arr[ i]<0) r++;
    }
    if ( arr[ i]>0) w++; else l++;
  }

  if ( n>2) {
    if ( w>0 && l>0) {
      x=2* w* l;
      if ( x!= n) z=( n*( r-0.5)- x)/MathSqrt( x*( x- n)/( n-1));
    } else {
      if ( l==0) z=100; else z=-100;
      Print("ArrayZ(): Нет чередования серий!");
    }
    return( z);
  } else {
    Print("ArrayZ(): В массиве недостаточно элементов!");
    return(0);
  }
}

ZS. Se adjunta un script para probar la función ArrayZ(). Por cierto, este script rellena la matriz con datos del libro de Ralph Vince "The Mathematics of Capital Management".

ZZZ. He actualizado la biblioteca b-Array en mi sitio web.

Archivos adjuntos:
 

La función ArrayDeleteInt()

Ejecuta el borrado de un elemento del array con el índice dado. Devuelve el tamaño del nuevo array o -1 si no se ha eliminado nada. La función ArrayDeleteInt() acepta los siguientes parámetros obligatorios:

  • m - Matriz de elementos.
  • i - Índice del elemento de la matriz.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 31.10.2008                                                     |
//|  Описание : Выполняет удаление элемента массива с заданным индексом.       |
//|             Возвращает размер нового массива или -1,                       |
//|             если не удалось ничего удалить.                                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    m - массив элементов                                                    |
//|    i - индекс элемента                                                     |
//+----------------------------------------------------------------------------+
int ArrayDeleteInt(int& m[], int i) {
  int j, k=ArraySize( m);

  if ( i>=0 && i< k) {
    for ( j= i; j< k; j++) m[ j]= m[ j+1];
    k=ArrayResize( m, k-1);
    return( k);
  } else Print("ArrayDeleteInt(): Неверный индекс элемента массива! i=", i);

  return(-1);
}
ZS. Se adjunta un script para probar la función ArrayDeleteInt().
Archivos adjuntos:
 

Función ArrayDeleteDouble()

Realiza el borrado de un elemento del array con un índice dado. Devuelve el tamaño del nuevo array o -1 si no se ha eliminado nada. La función ArrayDeleteDouble() acepta los siguientes parámetros obligatorios:

  • m - Matriz de elementos de tipo double.
  • i - Índice del elemento de la matriz.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 31.10.2008                                                     |
//|  Описание : Выполняет удаление элемента массива с заданным индексом.       |
//|             Возвращает размер нового массива или -1,                       |
//|             если не удалось ничего удалить.                                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    m - массив элементов                                                    |
//|    i - индекс элемента                                                     |
//+----------------------------------------------------------------------------+
int ArrayDeleteDouble(double& m[], int i) {
  int j, k=ArraySize( m);

  if ( i>=0 && i< k) {
    for ( j= i; j< k; j++) m[ j]= m[ j+1];
    k=ArrayResize( m, k-1);
    return( k);
  } else Print("ArrayDeleteDouble(): Неверный индекс элемента массива! i=", i);

  return(-1);
}
P.D. Se adjunta un script para probar la función ArrayDeleteDouble().
Archivos adjuntos:
 

La función ArrayDeleteString()

Ejecuta el borrado de un elemento del array con el índice dado. Devuelve el tamaño del nuevo array o -1 si no se ha podido eliminar nada. La función ArrayDeleteString() acepta los siguientes parámetros obligatorios:

  • m - Matriz de elementos de tipo cadena.
  • i - Índice del elemento de la matriz.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 31.10.2008                                                     |
//|  Описание : Выполняет удаление элемента массива с заданным индексом.       |
//|             Возвращает размер нового массива или -1,                       |
//|             если не удалось ничего удалить.                                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    m - массив элементов                                                    |
//|    i - индекс элемента                                                     |
//+----------------------------------------------------------------------------+
int ArrayDeleteString(string& m[], int i) {
  int j, k=ArraySize( m);

  if ( i>=0 && i< k) {
    for ( j= i; j< k; j++) m[ j]= m[ j+1];
    k=ArrayResize( m, k-1);
    return( k);
  } else Print("ArrayDeleteString(): Неверный индекс элемента массива! i=", i);

  return(-1);
}
ZS. Se adjunta un script para probar la función ArrayDeleteString().
Archivos adjuntos: