错误、漏洞、问题 - 页 6

 
Prival:

它在帮助中说。

intday_of_year;// 一年中的数字(2月1日是一年中的第32天)。

由于某些原因,它总是显示为31(()。

所附脚本

在文件中

2010.02.01 00:00:00 143.832 143.839 143.758 143.771 186 2010 2 1 0 0 1 31

这是文档中的一个错误。一年中的天数从0开始计算。谢谢你。
 
stringo:
这是文档中的一个错误。一年中的天数从0开始计算。谢谢你。
我理解它更复杂,但它似乎更熟悉(对门外汉来说。 对程序员来说是可以的)。1月1日是一年中的1天。我认为这个参考是正确的。
 
Prival:
我理解它更复杂,但似乎更熟悉(对门外汉而言。 对程序员而言,它是可以的)。1月1日是一年中的第1天。在我的帮助下,这似乎是正确的。
我们把标准的系统时间结构翻译成我们的MqlTime结构
 
由于某些原因,我无法从服务器下载终端,它说 "从服务器下载数据失败",这是什么问题?
 

你好,你能帮我把mt4的功能翻译成mt5吗?我已经翻译了,但不对,如果你不难,请把正确的代码发给我,我对MQL不是很在行。我刚刚开始学习。

//+------------------------------------------------------------------+
#财产版权 "2010,MetaQuotes软件公司"。
#属性链接"http://www.mql5.com"
#财产版本 "1.00"
//----输入参数

输入 double Lots=0.1;
输入 bool MM = true。
输入 double Risk = 10;


//+------------------------------------------------------------------+
//| 专家初始化功能|
//+------------------------------------------------------------------+
int OnInit()
{
return(0);
}
//+------------------------------------------------------------------+
//| 专家去初始化功能|
//+------------------------------------------------------------------+
空白的OnDeinit(const int reason)。
{

}

//+------------------------------------------------------------------+
//|专家勾选功能|
//+------------------------------------------------------------------+
空白的OnTick()
{
if( MM )double Lots = LotSon(); //调用 LotSon 函数
}
//+------------------------------------------------------------------+
Double LotSon()
{
double LotMin = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double LotMax = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX)。
double Lots = AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000.0 * Risk;
double Lots = MathMin(Lotmax,MathMax(Lotmin,Lots))。

如果(LotMin < 0.1)Lots = NormalizeDouble(Lots,2);
否则
{
如果(LotMin < 1.0)Lots = NormalizeDouble(Lots,1);
else Lots = NormalizeDouble(Lots,0);
}
如果(Lots < LotMin) Lots = LotMin;
如果(Lots > LotMax) Lots = LotMax;
}

Automated Trading and Strategy Testing
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 

你如何获得彩色的代码?

 
FEDOR_MQL:

你如何让你的代码上色?

MQL5社区 文章--用户备忘录

按钮是为了将MQL源代码插入 信息文本中。只要你按下它,就会出现一个空窗口,你应该在其中插入代码,然后按插入 按钮。 要取消代码的插入,按取消 按钮。

不建议为了使某些代码块以某种方式突出而将代码加粗。问题是,单色字体在不同的操作系统和浏览器中的显示效果是不同的。例如,Windows Vista使用Consolas monospace字体,它的10号字体为粗体,与普通字体几乎没有区别。

 
FEDOR_MQL:

你好,你能帮我把mt4的功能翻译成mt5吗?我已经翻译了,但不对,如果你不难,请把正确的代码发给我,我对MQL不是很在行。我刚刚开始学习。


 //+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//--- input parameters

input double   Lots=0.1;
input bool     MM = true;
input double   Risk = 10;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
  return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if( MM ) Lots = LotSon();      //вызов функции LotSon 
  }
//+------------------------------------------------------------------+
double LotSon()
{
  double LotMin     = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
  double LotMax     = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
  double LotStep    = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
  double Lot        = AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000.0 * Risk;
  Lot               = MathMin(Lotmax,MathMax(Lotmin,Lot));
  
  if (Lot < LotMin) Lot = LotMin;
  if (Lot > LotMax) Lot = LotMax;
  // Вариант первый
  switch(LotStep)
  {
   case 0.01: return(NormalizeDouble(Lot,2));
   case 0.1 : return(NormalizeDouble(Lot,1));
   case 1.0 : return(NormalizeDouble(Lot,0));
  }
  // Вариант второй
  // if (LotStep == 0.01)return(NormalizeDouble(Lot,2));
  // if (LotStep == 0.1) return(NormalizeDouble(Lot,1));
  // if (LotStep == 1.0) return(NormalizeDouble(Lot,0));
  // Вариант третий
  // if (LotStep == 0.01)return(NormalizeDouble(Lot,2));
  // else if (LotStep == 0.1) return(NormalizeDouble(Lot,1));
  // else if (LotStep == 1.0) return(NormalizeDouble(Lot,0));
  
}
 

好吧,让我们试一试。谢谢大家!我甚至在问这些问题吗?还是我需要去别的地方?提前感谢您的回答。

 

而在这个发展阶段:参数、函数调用 和函数本身是否应该显示编译时错误。如果是这样,为什么?我有错误显示

Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5