新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 813

 
WinProject:
晚上好,请问你能给我建议吗?我正在读取他们的文本.csv文件的FileOpen。文件中的每一行都有三个值,它们是工具、日期(按降序排列)和价格。我想得到最后一个日期的价格注释(它是第一行),但文件总是读到最后,我得到的是最古老的价格 注释(从最后一行开始)。我怎样才能在没有任何变通的情况下把价格值从第一行弄到注释中?

文件搜索()

Документация по MQL5: Файловые операции
Документация по MQL5: Файловые операции
  • www.mql5.com
Из соображений безопасности в языке MQL5 строго контролируется работа с файлами. Файлы, с которыми проводятся файловые операции средствами языка MQL5, не могут находиться за пределами файловой "песочницы". общая папка всех установленных на компьютере терминалов  – обычно расположена в каталоге C:\Documents and Settings\All Users\Application...
 
Igor Makanu:

每个经纪人都有自己的报价提供者,往往有几个,加上平滑报价的算法

如果您需要真实的刻度线,请将您的TS转移到MQL5 - 有真实刻度线的测试,您在测试时可以节省时间

请简要介绍一下平滑报价的算法,它是什么?mql5允许通过ticks对TS的历史进行测试,即,结果将是一对一的重新报价 和差距,有机会对ticks进行测试,考虑到Bid Asc、重新报价和差距?

 
Seric29:

请简要介绍一下平滑报价的算法,它们是什么?在mql5上,有机会在tick历史上测试TS,即结果将是一对一的,考虑到重新报价和差距,有机会在ticks上测试,考虑到Bid Asc以及重新报价和差距?

所有的信息在这个论坛上都是公开的,关于蜱虫的信息在6-8年前就可以搜索到了。

关于测试的质量 - 文章

 
Alexey Viktorov:

也许可以尝试打开一个相反的收盘量并应用OrderCloseBy?

问候。能否请你告诉我我做错了什么?

OrderCloseBy()给出错误3

3

错误_无效_交易参数

参数不正确

代码样本

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict


datetime time; int ticket_buy; int ticket_sell; 
bool open=false; bool close=false;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
ticket_sell=OrderSend(NULL, OP_SELL, 0.1, Bid, 0, 0, 0, "", 0, 0, Red);  

time=TimeCurrent();
//if (Digits() ==3 || Digits()==5) {trailingStep*=10; }
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
//---
   
  }
void OnTick(){
if(!open && TimeCurrent()>=time+2600){
   ticket_buy=OrderSend(NULL, OP_BUY, 0.1, Ask, 1, 0, 0, "buy order", 0, 0, Blue);
   open=true;
}
if(!close && TimeCurrent()>=time+3000){
   if(OrderCloseBy(ticket_buy, ticket_sell , Black)){ }
   close=true;
}

}//+------------------------------------------------------------------+
 
Andrey Sokolov:

问候。能否请你告诉我我做错了什么?

OrderCloseBy()给出错误3

3

错误_无效_交易参数

参数不正确

代码样本

代码在测试器中工作,整理OrderSend(),没有标准化的价格和手数。

和第二个条件--不是所有的经纪商都允许使用OrderCloseBy()--我认为这是错误的主要原因。

 
Igor Makanu:

该代码在测试器中工作。

你要关门了,对吗?你有什么经纪人?我有Alpari。
 
Igor Makanu:

整理OrderSend(),没有规范的价格和手数


我不太明白这里要归一化什么,为什么,没有数学运算?
 
Andrey Sokolov:
不太清楚这里要归一化什么,为什么没有数学运算?

因为你必须习惯于向服务器发送正常化的价格,现在订单发送了--明天就没有了,你将不断寻找你的错误。

这有什么好复杂的? 来,如果复杂的话就自己复制吧。

ticket_sell=OrderSend(_Symbol, OP_SELL, 0.1, Bid,10,
                     NormalizeDouble(0.0,_Digits),NormalizeDouble(0.0,_Digits), "", 0, 0, clrRed);  

数学运算与此无关,在新的构建中曾经出现过奇怪的终端行为,对于所有的问题,开发人员写道--正确编写你的代码--他们是对的 ))

在Metakvot服务器上检查你的代码 - 一切正常。

SZS: 0不是0.0 , 所以可能会有不太理想的结果 - 也是一个不找BUG的好习惯;)

 
Igor Makanu:

和第二个条件--并非所有经纪商都允许使用OrderCloseBy()--我认为这是错误的主要原因。

一般来说,我的理解是,如果Alpari和其他公司不支持它,最好不要使用它,因为它不能工作?

 
Andrey Sokolov:

一般来说,我认为如果Alpari和可能的其他公司不支持它,最好是根本不使用它,把它标记为不工作,这样做是否正确?

该功能正在运行

唉,每个服务器的设置都需要检查--很少有通用的解决方案(alpars也有stoplevel = 0,你可能会对拖尾感到惊讶)。

如果我没有记错的话,在MarketInfo()中,有一个请求是确定服务器是否会使用相反的订单平仓

原因: