Caratteristiche utili da KimIV - pagina 56

 
KimIV >> :

qui

Grazie, ieri non c'era o me lo sono perso.

 
beginner писал(а) >>

Grazie, ieri non c'era o me lo sono perso.

>> non lo era.

 

Sì, ora questo.

#include "b-KimIV.mqh" // Libreria di funzioni aggiuntive

 

Caro KimIV, vorrei chiederti di modificare e-SOTrailing nel modo seguente: (Tutta la tattica in questo caso è di piazzare gli ordini stop ad una certa distanza dal frattale più vicino e di spostarli dopo il prezzo). Immagino che non sia così difficile usare la tua funzione FindNearFractal, forse?

void TrailingOrders() {

......

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

......

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

 
beginner писал(а) >>

Sì, ora questo.

#include "b-KimIV.mqh" // Libreria di funzioni aggiuntive

>> più tardi.

 
KimIV >> :

È già impossibile in prima pagina...

Lo posterò qui... Se il post da aggiornare viene bloccato, lo ripubblicherò. Quindi tenete d'occhio il thread :-)

Grazie - questo è quello giusto.

 

La funzione ArrayZ().

Questa funzione calcola e restituisce il conteggio Z della serie di numeri passati nell'array per riferimento.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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. In allegato c'è uno script per testare la funzione ArrayZ(). A proposito, questo script riempie l'array con i dati del libro di Ralph Vince "The Mathematics of Capital Management".

ZZZ. Ho aggiornato la libreria b-Array sul mio sito web.

File:
 

La funzione ArrayDeleteInt()

Esegue la cancellazione di un elemento dell'array con l'indice dato. Restituisce la dimensione del nuovo array o -1 se non è stato rimosso nulla. La funzione ArrayDeleteInt() accetta i seguenti parametri obbligatori:

  • m - Matrice di elementi.
  • i - Indice dell'elemento della matrice.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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. In allegato c'è uno script per testare la funzione ArrayDeleteInt().
 

Funzione ArrayDeleteDouble()

Esegue la cancellazione di un elemento dell'array con l'indice dato. Restituisce la dimensione del nuovo array o -1 se non è stato cancellato nulla. La funzione ArrayDeleteDouble() accetta i seguenti parametri obbligatori:

  • m - Matrice di elementi di tipo doppio.
  • i - Indice dell'elemento della matrice.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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. In allegato c'è uno script per testare la funzione ArrayDeleteDouble().
 

La funzione ArrayDeleteString()

Esegue la cancellazione di un elemento dell'array con l'indice dato. Restituisce la dimensione del nuovo array o -1 se non è stato possibile rimuovere nulla. La funzione ArrayDeleteString() accetta i seguenti parametri obbligatori:

  • m - Matrice di elementi di tipo stringa.
  • i - Indice dell'elemento della matrice.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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. In allegato c'è uno script per testare la funzione ArrayDeleteString().