KimIV的有用功能 - 页 58

 

你好,伊戈尔。

请告诉我在mql4-OrderValue(cnt,VAL_TYPE)=OP_BUY(mql3)中用哪个运算符来替换这个运算符。

预先感谢你。

 
您能告诉我们如何 当前条形图的收盘价 关闭订单吗?也就是说,酒吧与订单一起关闭。
 

你好,伊戈尔。

我已经看了所有的函数和运算符--我找不到,如果有的话,我也看不到能修改所有开放位置的函数。

这将一次性修改所有未结头寸,而不是在每个刻度上修改一个选定的头寸。

如果你不介意的话,请告诉我。

 
KimIV >> :

在这个主题中,我将发布我在MQL4中的函数代码,给出它们的使用实例,并回答与它们的使用有关的问题。每项功能将在两个帖子中公布。第一篇文章将包含功能代码,第二篇--使用实例和简短解释。有时我会在第二篇文章中附上脚本的代码,以实际测试功能并显示结果。

最后我将按照Lukyanov"如何同时运行两个EA"主题中的要求,从处理订单的功能开始。

让第一个功能是订单设置功能(MT4测试器的版本)。

你好,伊戈尔,你对AlterTrader熟悉吗? 如果熟悉,你能告诉我3或4个问题的答案吗?

 
ipm писал(а)>>
伊戈尔。日安。
能否为你画一个简单的问题:
设在什么价格值的信号线会穿越MACD,或者换句话说MACD直方图会变成等于零

你好,奥列格!

我没有在实践中解决过这样的问题。而且从理论上讲,我对如何做到这一点有一个模糊的想法。也许,makdac值被当作x,价格被当作x,然后函数y=f(x)将表示makdac值对价格的依赖。如果这么简单,我们可以通过ypc表达x来反转函数y=f(x)x=F(y)。但困难在于,函数y=f(x)取决于不止一个x。我在大学里跳过了这些讲座 :-)

 
Duke3D писал(а)>>

你好,伊戈尔。

请告诉我在mql4-OrderValue(cnt,VAL_TYPE)=OP_BUY(mql3)中用哪个运算符来替换这个运算符。

预先感谢你。

显然,它将是OrderType()

 
mozg писал(а)>>
你能告诉我如何在当前条形图的收盘价关闭订单吗?也就是说,酒吧与订单一起关闭。
static datetime prevTimeOpen=0
if ( prevTimeOpen>0 && prevTimeOpen<Time[0]) {
  for ( цикл перебора позиций) {
    if ( выбрана позиция, которую надо закрыть) {
      OrderClose(...);
    }
  }
}
prevTimeOpen=Time[0];
 
amur писал(а)>>

你好,伊戈尔。

我已经看了所有的函数和运算符--我找不到,如果有的话,我也看不到能修改所有开放位置的函数。

这将一次性修改所有未结头寸,而不是在每个刻度上修改一个选定的头寸。

如果你不介意的话--请告知。

我认为这种行动是不合适的。毕竟,每个职位通常都有单独的参数。所以你选择一个,具体的一个...

那你到底想修改什么?

 

NameDayOfWeek()函数

根据作为参数传递的数字,返回星期的名称。

  • ndw - 一周中的一天的编号。必要的参数。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование дня недели                             |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    ndw - номер дня недели                                                  |
//+----------------------------------------------------------------------------+
string NameDayOfWeek(int ndw) {
  if ( ndw==0) return("Воскресенье");
  if ( ndw==1) return("Понедельник");
  if ( ndw==2) return("Вторник");
  if ( ndw==3) return("Среда");
  if ( ndw==4) return("Четверг");
  if ( ndw==5) return("Пятница");
  if ( ndw==6) return("Суббота");
}
 

功能NormalizeLot()。

该函数返回正在交易的手数的归一化值。除了归一化,该函数还将手数大小与交易中心指定的限制相匹配(检查最小和最大手数值以及手数变化步骤)。函数NormalizeLot()接受以下参数。

  • lo- NormalizeLot值。必要的参数。
  • ro- 四舍五入的方法。--对小的一方,--对大的一方。默认值----到下边。
  • sy- 交易工具的名称。NULL""- 当前符号。默认值 -""。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 16.05.2008                                                     |
//|  Описание : Возвращает нормализованное значение торгуемого лота.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    lo - нормализуемое значение лота.                                       |
//|    ro - способ округления          (   False    - в меньшую,               |
//|                                        True     - в большую сторону)       |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//+----------------------------------------------------------------------------+
double NormalizeLot(double lo, bool ro= False, string sy="") {
  double l, k;
  if ( sy=="" || sy=="0") sy=Symbol();
  double ls=MarketInfo( sy, MODE_LOTSTEP);
  double ml=MarketInfo( sy, MODE_MINLOT);
  double mx=MarketInfo( sy, MODE_MAXLOT);

  if ( ml==0) ml=0.1;
  if ( mx==0) mx=100;

  if ( ls>0) k=1/ ls; else k=1/ ml;
  if ( ro) l=MathCeil( lo* k)/ k; else l=MathFloor( lo* k)/ k;

  if ( l< ml) l= ml;
  if ( l> mx) l= mx;

  return( l);
}

HH.附件是一个测试NormalizeLot()函数的脚本。

附加的文件: