问题标签 [metatrader4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1308 浏览

low-latency - MQL4,大型 EA 的代码布局

这主要是一个理论问题(但总是欢迎示例代码)。

真正的问题是:如何正确编写 EA 的“框架”来测试来自多个自定义指标的多个场景?

我(忙)构建 EA 的方式不是非常专注于一种策略,而是会尝试“测试”多种策略并“挑选”最合适的一种。

所以我创建了一些自定义指标,它们都返回一个“状态数据”数组。

例如我有以下指标:

  • 交叉移动平均线指标,当平均线被交叉时给出一个信号,以及当前位置从 MA 移动的百分比。
  • 布林带指标,返回波段之间的“空间”,并在波段开始“挤压”时发出信号。
  • 多时间框架“方向/趋势”指标(是向上或向下移动的某个时间框架)。如果时间框架方向发生变化,它将返回当前方向并发出信号。
  • ADX 指标,用于检查“小规模”运动和选择最佳买入/卖出点。

我可以写一个巨大的场景,但我认为它可以做得更好。因为如果,假设所有时间框架都在下降(下降趋势),你可以有一个特殊的场景来处理大量的下降运动。但是,如果没有当前的趋势,那么不同的情景将最适合。

所以,我觉得最好制作多个场景(仍然在 1 个 EA 中)。首先收集所有自定义指标数据,然后每个场景使用该数据来计算其内容。然后它会返回一个“分数”并挑选出最好的分数。

但是我怎样才能以最好的“概述”方式布局代码呢?

我应该为每个场景创建一个类并给他们一个带有数据的手动“打勾”吗?只是将它们分成多个文件和#include它们?

或者也许是事件驱动的?创建的类只是继续运行、计算和设置某些指标事件的侦听器并以自己的方式进行(那太棒了)

任何想法都非常受欢迎!


更新2016-01-11,12:00

我现在没有时间创建 UML .. 但我现在执行以下操作 ->

  • OrderOrder是单例,只是执行订单请求)
  • Indicator(每个指标扩展的基类)
  • Strategy(每个策略扩展的基类)

  • IndicatorFetcher(保存所有指标,在每个刻度上运行)

  • StrategyRunner(保存所有策略,在每个刻度上运行,之后IndicatorFetcher

每个Strategy实例都可以访问IndicatorFetcher(持有包含所有指标数据的概览,并使用Order单例执行交易)。

0 投票
1 回答
1626 浏览

file - 在策略测试器中运行 EA 时,MT4 无法打开文件错误 4103

我使用读取配置文件的指标编写了一个 EA。此配置文件放在文件夹中MQL4\Files

当我使用实时图表运行 EA 时,它运行良好。但是当我尝试使用策略测试器测试这个 EA 时,它返回一个4103 error: can not open file.

知道为什么会这样吗?

以及如何解决这个问题?

0 投票
2 回答
395 浏览

mql4 - 如何从 MQL4 (.mq4) 中的当前类获取文件名?

为了防止一些样板代码,我想读取一个类正在执行的文件的文件名。

没有MQL4可用的默认功能,但应该可以使用本机 Windows 功能( a GetModuleFileName()from kernel32.dll

来源 - https://msdn.microsoft.com/nl-nl/library/windows/desktop/ms683197(v=vs.85).aspx

我确实阅读了有关#import,Kernel32.dll并从那里窃取了一些功能,但它似乎不起作用。

它给了我以下错误->

2015.01.05 00:15 Cannot find 'GetModuleFileName' in 'kernel32.dll'

它解释了自己,getModuleFileName不在kernel32.dll

有谁知道如何获取当前文件名?

0 投票
1 回答
159 浏览

metatrader4 - 在 OnCalculate 中获取蜡烛的数量和体积

我想知道如何获取蜡烛量和“计数器”有问题的蜡烛。当我捕捉到tick_volume[rates_total]与使用“音量”指示器时呈现给我的音量不同时。难道我做错了什么?

0 投票
1 回答
1738 浏览

algorithmic-trading - 如何在 MQL4 中从 CSV 文件绘制图表?

我是 and 的新手MQLMetaTrader 4
我想读取一个.CSV-file 并将我得到的值绘制到Expert Advisor我正在处理的图表中。

每个.CSV文件的格式为:

其中EURUSDpart是_Symbol另一个程序生成的,1是句号,所有其他都是要绘制的数据。

是否有任何形式可以在 a 内完成Expert Advisor,或者我需要使用 aCustom Indicator吗?

如果是这种情况,我该如何以最简单的方式做到这一点?

PS:我在 a 中读取了数据struct

0 投票
1 回答
2313 浏览

mql4 - 如何计算移动平均线最后穿过多少根柱线?

我正在编写一个 MQL4 自定义指标,它会告诉我们在多少根柱线之前穿过了一组特定的移动平均线。

具体来说,我希望输出告诉我

“过去 10 根柱线的 20 周期MA( .. PRICE_OPEN )低于MA( .. PRICE_CLOSE )”。

int数字的形式。

我想知道自当前柱以来有多少柱ma1高于或低于ma2多少柱。

0 投票
2 回答
1038 浏览

mql4 - 如何阻止 MetaTrader 终端 4 [MT4] 离线图表更新价格

如何阻止MetaTrader Terminal 4离线图表自行更新价格?

由于与经纪人的时区不同,我想自己更新价格。我已经检查了所有属性和MQL4论坛。没运气。

0 投票
2 回答
2824 浏览

trading - 如何使 [EA] 的演示版在 MetaTrader 真实账户上运行?

我有一个ExpertAdvisor( EA),名为 Hedging Recovery EA,它可以在我的模拟 MetaTrader 账户上正常工作,现在我要创建一个存款 5 美元的账户,并要在上面存入 +1000 美元,但我不确定, 如果EA可行,因为我听说演示 EA 仅适用于演示 MetaTrader 账户。

如果是真的,我怎样才能让它在真实账户上运行?

这是说的可执行格式EAhttp ://www.mediafire.com/download/cezoct5m7cgqngm/Hedging+Recovery.ex4

0 投票
1 回答
379 浏览

mql4 - 在 [ MQL4 ] 中编写专家顾问

因此,如果我想要一个MQL4采用开盘价的 EA,当当前价格低于开盘价 10 点时,它会下一个买单,当它比开盘价高出 10 个点时,它会卖出。一次只有一个订单,并且每天都在变化。

Q1:这怎么可能不间断?

Q2:这还能盈利吗?

我知道这对某些人来说很简单,但对我来说却令人沮丧。

0 投票
2 回答
85 浏览

quantitative-finance - 需要 EA 的帮助

我正在尝试编写此逻辑:

if no open orders and buy logic ( DayOpen - 10 * Point )
then buy

if bought
Sell when the one(也是唯一的一个)bought order reaches Take Profit price.


这是我到目前为止所拥有的: