Características úteis da KimIV - página 56

 
KimIV >> :

aqui

Obrigado, não estava lá ontem ou eu perdi-o.

 
beginner писал(а) >>

Obrigado, não estava lá ontem ou eu perdi-o.

>> não era.

 

Sim, agora este aqui.

#incluir "b-KimIV.mqh" // Biblioteca de funções adicionais

 

Caro KimIV, gostaria de lhe pedir para modificar o e-SOTrailing da seguinte maneira : (Todas as táticas neste caso são colocar ordens de parada a alguma distância do fractal mais próximo e movê-los após o preço). Acho que não é tão difícil usar sua função FindNearFractal, talvez?

ordens de pedidos nulos() {

......

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

......

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

 
beginner писал(а) >>

Sim, agora este aqui.

#incluir "b-KimIV.mqh" // Biblioteca de funções adicionais

>> mais tarde.

 
KimIV >> :

Já é impossível na primeira página...

Vou afixar aqui... Se o posto a ser atualizado for bloqueado, eu o re-postarei. Portanto, fique de olho no fio :-)

Obrigado - este é o único.

 

A função ArrayZ().

Esta função calcula e retorna a contagem Z da série numérica passada na matriz por referência.

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

SZ. Em anexo está um roteiro para testar a função ArrayZ(). A propósito, este roteiro preenche a matriz com dados do livro de Ralph Vince "The Mathematics of Capital Management".

ZZZ. Atualizei a biblioteca b-Array em meu site.

Arquivos anexados:
 

A função ArrayDeleteInt()

Executa a exclusão de um elemento de matriz com o índice dado. Devolve o tamanho da nova matriz ou -1 se nada tiver sido removido. A função ArrayDeleteInt() aceita os seguintes parâmetros obrigatórios:

  • m - Conjunto de elementos.
  • i - Índice do elemento da 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. Anexado um roteiro para testar a função ArrayDeleteInt().
Arquivos anexados:
 

Função ArrayDeleteDouble()

Realiza a eliminação de um elemento de matriz com um determinado índice. Devolve o tamanho da nova matriz ou -1 se nada tiver sido apagado. A função ArrayDeleteDouble() aceita os seguintes parâmetros obrigatórios:

  • m - Matriz de elementos do tipo duplo.
  • i - Índice do elemento da 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.S. Em anexo está um roteiro para testar a função ArrayDeleteDouble().
Arquivos anexados:
 

A função ArrayDeleteString()

Executa a exclusão de um elemento de matriz com o índice dado. Devolve o tamanho da nova matriz ou -1 se nada puder ser removido. A função ArrayDeleteString() aceita os seguintes parâmetros obrigatórios:

  • m - Conjunto de elementos do tipo corda.
  • i - Índice do elemento da 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. Em anexo está um roteiro para testar a função ArrayDeleteString().
Arquivos anexados: