mql5语言的特点、微妙之处以及技巧 - 页 230

 

begDayBar=iBarShift(_Symbol,_Period,begDayTime,false) 根据文档,函数返回-1 或最近的条形偏移量,具体取决于确切的参数。

但今天由于某种原因,如果 begDayTime=2023.01.26 00:00:00,虽然有这样的条形图,而且不是最后的条形图,但却返回-1。

2023.02.15 15:19:23.254 !indDAY_WSOWROhLine (EURRUB_TOM,M15) begDayTime=2023.01.26 00:00:00 endDayTime=2023.01.27 00:00:00 begDayBar=-2 endDayBar=-1 indATR=0 Q5days=0

可能返回-1,也可能返回正确的条形图。

Документация по MQL5: Доступ к таймсериям и индикаторам / iBarShift
Документация по MQL5: Доступ к таймсериям и индикаторам / iBarShift
  • www.mql5.com
iBarShift - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
IuriiPrugov #:

今天,由于某些原因,如果 begDayTime=2023.01.26 00:00:00 返回-1,尽管有这样的条形图,但它们不是最后的条形图

提供所有回放数据。
 
fxsaber #:
提供用于播放的所有数据。

begDayTime=iTime(Symbol(),Inp_period,bar);begDayBar=iBarShift(_Symbol,_Period,begDayTime,false)-1;

输入周期 = M15

2023.02.19 13:02:42.517 !indDAY_WSOWROhLine (EURRUB_TOM,M15) bar=14 begDayTime=2023.01.30 00:00:00 endDayTime=2023.01.31 00:00:00 begDayBar=-2 endDayBar=673 indATR=0 Q5days=0
if you insert

if (begDayBar<0) { k=0; do {k++;} while(begDayTime<time[k] && !IsStopped()); begDayBar=k; }

则一切正常(即在 iBarShift 失败时修复 iBarShift)

 
IuriiPrugov #:

这不是数据。

 
fxsaber #:

这不是数据。

Inp_period = D1 在一个周期内搜索 15 天! begDayTime= bar= bar =14

begDayTime=iTime(Symbol(),Inp_period,bar); _Symbol= EURRUB_TOM; _Period= M15; 之后

iBarShift(_Symbol,_Period,begDayTime,false) 可能会产生一个正常的条形图或-1,或者它没有时间计算条形图或其他。

一般来说,如果切换指标(只需在 "chart period"(图表周期)面板上按下另一个周期),它的运行会不稳定,例如,在 M30 上,它可能会产生正常条形图或-1。

如果未插入,则在其他工具上也是如此 if (begDayBar<0) { k=0; do {k++;} while(begDayTime<time[k] && !IsStopped()); begDayBar=k; } 然后会弹出错误信息

2023.02.20 07:58:01.698 !indDAY_WSOWROhLine (CNYRUB_TOM,M15) 数组超出'!indDAY_WSOWROhLine.mq5'中的范围 (202,148)

您可以自己试试。

在最简单的指标中插入这一块,然后在 "图表周期 "面板上切换到不同的周期。

 
IuriiPrugov #:

还有其他什么数据?

完整的源代码和用于重现的环境数据。也就是说,任何人在阅读后都能在一分钟内重现问题。
 

ok

刚接触 MQL4 和 MQL5。

我以前是 Visual C/C++ 的程序员,所以知道如何编码。

但我不熟悉这里的库等。

我的第一个问题是,如果我加载一个模板并在 Oanda 中生成一个图表,我该如何设置代码等?

我想使用我的纸质交易账户并开发代码来测试一些交易策略

现在我不想重新发明轮子,所以,如果我能得到一些代码片段来做 "标准 "的事情,比如

-获取账户和服务器/数据库连接

-建立一个项目

-先运行可能已经存在的代码,然后练习制作修改器和 "编译 "它(如果它是这样工作的),或者运行我的项目的构建版

我打算一旦找到方向就活跃在这个社区,所以很高兴能找到这个。

哦,我能用它来交易加密货币吗?

如果我没有做好充分准备,请见谅--我也是随便看了看才发表的评论--我也是今天才加入的。

谢谢!

RayRay

RR

 
@rrb1002 #: 初学 MQL4 和现在的 MQL5....

您有更详细描述如何操作的文章

您有代码库,其中包含从绝对初学者到高技能开发人员的用户编写的代码示例。

还有在线版文档(也可在 MetaEditor 中使用)。

rrb1002# 哦,我能用它来交易加密货币吗?

您可以交易经纪商提供的任何产品,包括加密货币。

 
好吧,我很困惑,我是新手。 我以为是 MQL4 语言。 即将推出的新语言是 MQL5 吗? MQL4 是否向上兼容 MQL5,希望只是扩展 MQL4 语言?
 
@rrb1002 #: 我很困惑,我是新手。 我以为是 MQL4 语言。 即将推出的新语言是 MQL5 吗? MQL4 是否向上兼容 MQL5,并希望只是扩展 MQL4 语言?

MQL5 已经存在十多年了。它并不 "新"。它是成熟的。

MetaTrader 4MQL4 已经有好几年没有进一步开发了(我想大概有 6-8 年了)。只偶尔进行关键更新。

它们的语言非常相似,很多功能在某种程度上是兼容的,但交易功能完全不同,完全不兼容。