KimIV的有用功能 - 页 56

 
KimIV >> :

这里

谢谢,昨天不在那里,或者我错过了。

 
beginner писал(а)>>

谢谢,昨天不在那里,或者我错过了。

>>不是的。

 

是的,现在是这个。

#include "b-KimIV.mqh" // 附加函数库

 

亲爱的KimIV,我想请你以下列方式修改e-SOTrailing:(在这种情况下,所有的战术是在离最近的分形 的一定距离处放置止损单,并在价格之后移动它们)。我想,使用你的FindNearFractal函数,也许并不困难?

空白的尾随顺序() {

......

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

......

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

 
beginner писал(а)>>

是的,现在是这个。

#include "b-KimIV.mqh" // 附加函数库

>>后来。

 
KimIV >> :

头版已经不可能...

我把它贴在这里...如果更新的帖子被封锁了,我会重新发布的。因此,请密切关注该主题 :-)

谢谢你--就是这个人。

 

ArrayZ()函数。

该函数计算并返回数组中以引用方式传递的数字系列的Z型计数。

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

附上一个测试ArrayZ()函数的脚本。顺便说一下,这个脚本用拉尔夫-文斯的《资本管理的数学》一书中的数据填充数组。

我已经更新了我网站上的b-Array 库。

附加的文件:
 

ArrayDeleteInt()函数

执行删除一个具有给定索引的数组元素的操作。返回新数组的大小,如果没有移除任何东西,则返回-1ArrayDeleteInt()函数接受以下强制性参数。

  • m- 元素的数组。
  • i- 阵列元素的索引。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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);
}
附上一个测试ArrayDeleteInt()函数的脚本。
附加的文件:
 

ArrayDeleteDouble()函数

执行删除具有给定索引的数组元素的操作。返回新数组的大小,如果没有被删除,则返回-1ArrayDeleteDouble()函数接受以下强制性参数。

  • m-双重 类型元素的数组。
  • i- 阵列元素的索引。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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. 附上一个测试ArrayDeleteDouble()函数的脚本。
附加的文件:
 

ArrayDeleteString()函数

执行删除一个具有给定索引的数组元素的操作。返回新数组的大小,如果没有东西可以被移除,则返回-1ArrayDeleteString()函数接受以下强制性参数。

  • m- 类型为字符串 的元素数组
  • i- 阵列元素的索引。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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);
}
附上一个测试ArrayDeleteString()函数的脚本。
附加的文件: