Nützliche Funktionen von KimIV - Seite 56

 
KimIV >> :

hier

Danke, es war gestern noch nicht da, oder ich habe es übersehen.

 
beginner писал(а) >>

Danke, es war gestern noch nicht da, oder ich habe es übersehen.

>> war es nicht.

 

Ja, jetzt das hier.

#include "b-KimIV.mqh" // Zusätzliche Funktionsbibliothek

 

Lieber KimIV, ich möchte Sie bitten, e-SOTrailing wie folgt zu modifizieren: (Die gesamte Taktik besteht in diesem Fall darin, Stop-Orders in einiger Entfernung vom nächsten Fraktal zu platzieren und sie nach dem Preis zu verschieben). Ich schätze, dass es nicht so schwierig ist, wenn man die Funktion FindNearFractal verwendet, oder?

void TrailingOrders() {

......

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

......

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

 
beginner писал(а) >>

Ja, jetzt das hier.

#include "b-KimIV.mqh" // Zusätzliche Funktionsbibliothek

>> später.

 
KimIV >> :

Es ist schon auf der ersten Seite unmöglich...

Ich werde es hier posten... Wenn der Beitrag für die Aktualisierung blockiert wird, werde ich ihn erneut posten. Also behaltet den Thread im Auge :-)

Danke - das ist der richtige.

 

Die Funktion ArrayZ().

Diese Funktion berechnet die Z-Zahl der im Array per Referenz übergebenen Zahlenreihe und gibt sie zurück.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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: Im Anhang finden Sie ein Skript zum Testen der Funktion ArrayZ(). Übrigens, dieses Skript füllt das Array mit Daten aus Ralph Vinces Buch "The Mathematics of Capital Management".

ZZZ. Ich habe die b-Array-Bibliothek auf meiner Website aktualisiert.

Dateien:
 

Die Funktion ArrayDeleteInt()

Führt die Löschung eines Array-Elements mit dem angegebenen Index aus. Gibt die Größe des neuen Arrays zurück oder -1, wenn nichts entfernt wurde. Die Funktion ArrayDeleteInt() akzeptiert die folgenden obligatorischen Parameter:

  • m - Array von Elementen.
  • i - Index des Array-Elements.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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: Im Anhang finden Sie ein Skript zum Testen der Funktion ArrayDeleteInt().
Dateien:
 

ArrayDeleteDouble() Funktion

Führt das Löschen eines Array-Elements mit dem angegebenen Index aus. Gibt die Größe des neuen Arrays zurück oder -1, wenn nichts gelöscht wurde. Die Funktion ArrayDeleteDouble() akzeptiert die folgenden obligatorischen Parameter:

  • m - Array von Elementen des Typs double.
  • i - Index des Array-Elements.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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. Im Anhang finden Sie ein Skript zum Testen der Funktion ArrayDeleteDouble().
Dateien:
 

Die Funktion ArrayDeleteString()

Führt die Löschung eines Array-Elements mit dem angegebenen Index aus. Gibt die Größe des neuen Arrays zurück oder -1, wenn nichts entfernt werden konnte. Die Funktion ArrayDeleteString() akzeptiert die folgenden obligatorischen Parameter:

  • m - Array von Elementen des Typs string.
  • i - Index des Array-Elements.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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: Im Anhang finden Sie ein Skript zum Testen der Funktion ArrayDeleteString().
Dateien: