初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1062

 

据我所知,这个剧本的作者不是来自俄罗斯,恐怕没有答案。

所以我想在这里寻求帮助。

如何修复该警告:

由于类型转换而可能造成的数据损失

在这个脚本中。

https://www.mql5.com/ru/articles/download/5204/scraperbot04.mq5

 
erotin:

据我所知,这个剧本的作者不是来自俄罗斯,恐怕没有答案。

所以我想在这里寻求帮助。

如何修复该警告:

由于类型转换而可能造成的数据损失

在这个脚本中。

https://www.mql5.com/ru/articles/download/5204/scraperbot04.mq5

试试这个

f_US=(float)StringToDouble(StringSubstr(CharArrayToString(ch_Buffer),i,8));
 


我是否正确理解了在mql5中,历史上没有头寸,而只有交易?从HistoryDealsTotal()的存在和HistoryPositionsTotal()的缺失来判断。

那么,为什么在终端的历史选项卡中,你可以选择 "位置",它们在历史中是可见的?

如何获得该历史记录中的仓位收盘价?


 
secret:

我是否正确理解了在mql5中,历史上没有头寸,而只有交易?从HistoryDealsTotal()的存在和HistoryPositionsTotal()的缺失来判断。

是的。

那么,为什么在终端的历史选项卡中,你可以选择 "位置",它们在历史中是可见的?

这是将历史解释为立场的尝试之一。在我看来,这并不是最成功的一个。

如何获得该历史记录中头寸的收盘价?

我在树篱上做了以下工作。

#property script_show_inputs

#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

input TICKET_TYPE PositionTicket = 0;

void OnStart()
{
  if (OrderSelect(PositionTicket, SELECT_BY_TICKET))
    OrderPrint();
}
 
Alekseu Fedotov:

试试这个

谢谢你
 
fxsaber 是的。

事实证明,为了打印未平仓交易的利润,你必须使用一个列表和票据,而为了打印相同但已平仓交易的利润,你必须使用另一个列表和另一个票据?

 
secret:

事实证明,要打印未平仓交易的利润,你必须使用一个清单和票据,而要打印相同但已平仓交易的利润,你必须使用另一个清单和另一个票据?

我不明白这个问题。

 
secret:

事实证明,为了打印未平仓交易的利润,你必须使用一个列表和票据,而为了打印相同但已平仓交易的利润,你必须使用另一个列表和另一个票据?

每个订单和每个交易都有自己的票据,但也分别有ORDER_POSITION_ID 和DEAL_POSITION_ID。这就是决定他们是否属于一个职位的原因。

 
secret:

你如何得到这个故事中的仓位的收盘价?

你也应该清楚地知道,这个收盘价,即使是在对冲上,也可以有比Digits更多的小数位。


而且,它甚至不需要接近平仓时该符号的价格。

开发者想和MT4的历史做一个类比,但他们失败了。

当我想在终端查看交易历史时,我使用GUI扩展。它和MT4一样显示历史仓位。收盘价与收盘时间相对应,等等。

因此,历史地位是一种惯例,可以有不同的解释。
 
fxsaber:

我不明白这个问题。

要计算一笔交易的利润,你尤其需要开盘价。在交易开始时,必须从仓单的仓位列表中提取开仓价格。而当交易结束后,就必须从另一个列表(交易,而不是头寸)中提取相同的开盘价,用于另一张票。对吗?