错误、漏洞、问题 - 页 2964 1...295729582959296029612962296329642965296629672968296929702971...3184 新评论 fxsaber 2021.02.18 12:05 #29631 Roman:用单个变量替换结构))。 不可转让。 Roman 2021.02.18 12:12 #29632 fxsaber:它没有被转移。 你是否记得在专家顾问中导入该功能? 我更新了结构的例子,那里没有什么问题。 一般来说,如果你用一个结构工作,要考虑如何声明一个结构对象,全局或局部。,而对于一个变量,所有这些都不需要,只要返回变量就可以了。 Документация по MQL5: Основы языка / Препроцессор / Импорт функций (#import) www.mql5.com Импорт функций (#import) - Препроцессор - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 fxsaber 2021.02.18 12:44 #29633 Roman:你是否记得将该函数导入 EA? 你是否能提供指标和EA的源代码来说明你的想法? Roman 2021.02.18 14:31 #29634 fxsaber:你是否能提供指标和EA的源代码来说明你的想法? 是的,这很奇怪。mql4中的函数导出 因某些原因而无法工作。 我没有从图书馆或指标中得到任何结果。然而,我在依赖关系中看到了函数。 图书馆的一个例子 #property library #property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict double value = 0.0; //+------------------------------------------------------------------+ //| My function | //+------------------------------------------------------------------+ double SetValue(double v) export { value = v; return(value); } //+------------------------------------------------------------------+ double GetValue(void) export { return(value); } //+------------------------------------------------------------------+ 设置一个值的指标 #property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict #property indicator_separate_window #import "Lib.ex4" double SetValue(double v); double GetValue(void); #import MqlTick tick; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { Comment(""); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { SymbolInfoTick(NULL, tick); SetValue(tick.bid); //Comment((string)GetValue()); return(rates_total); } //+------------------------------------------------------------------+ 一个专家顾问应该通过一个函数获得一个值,但它没有工作。 #property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict #import "Lib.ex4" double GetValue(void); #import //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { EventSetMillisecondTimer(10); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { Comment(""); EventKillTimer(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { double bid = GetValue(); Comment("\r\nЭксперт получил значение из индикатора = "+(string)bid); //ChartRedraw(); } //+------------------------------------------------------------------+ Andrey Khatimlianskii 2021.02.18 15:51 #29635 fxsaber:我通过这样的方式从指标中发送ticks:sparam包含MqlTick,lparam - tick号码。专家顾问在OnChartEvent 中捕捉到了这些ticks。它需要了解当前的刻度是否是最实际的刻度?即,是否有一个蜱虫队列,或者它是空的?为此,它读取指标所发送的最新刻度线的数字(任务是读取这个数字)。如果刻度线有相同的数字--队列是空的,就有可能开始处理刻度线。而在OnTick的操作中,在OrderSend之后,有必要检查指标是否已经发送了更多的ticks。为此,我们需要再次从指标中读取数字。在一个OnTick期间,可能会有超过100个这样的检查。这就是为什么我们需要快速阅读。 如果专家顾问是通过CopyTicks来获取ticks,为什么它需要知道队列是空的? 让它在每个事件上工作,并跳过那些时间少于已处理的事件。 fxsaber 2021.02.18 16:09 #29636 Andrey Khatimlianskii:如果我的专家顾问仍然通过CopyTicks 获取点数,为什么它需要知道队列是空的? 关于交易、自动交易系统和交易策略测试的论坛 虫子,虫子,问题 fxsaber, 2021.02.17 21:26 请分享我对这个问题的看法(MT4)。 指示器必须在某处写上int-number。而EA必须阅读它。 Mikhail Mishanin 2021.02.18 16:16 #29637 fxsaber: 像这样的东西会有帮助吗? https://www.mql5.com/ru/code/818 File Mapping без DLL www.mql5.com Класс MQL5, который работает напрямую с маппингом, без использования самописной DLL. fxsaber 2021.02.18 16:20 #29638 Mikhail Mishanin:像这样的东西会有帮助吗?https://www.mql5.com/ru/code/818 上面建议了 一个快速的WinAPI选项。 Andrei Trukhanovich 2021.02.18 16:27 #29639 fxsaber:上面建议了 一个快速的WinAPI变体。 这个方案更危险,更难实施 fxsaber 2021.02.18 16:31 #29640 Andrei Trukhanovich:这个方案更危险,更难实施 等待这一次。 1...295729582959296029612962296329642965296629672968296929702971...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
用单个变量替换结构))。
不可转让。
它没有被转移。
你是否记得在专家顾问中导入该功能?
我更新了结构的例子,那里没有什么问题。
一般来说,如果你用一个结构工作,要考虑如何声明一个结构对象,全局或局部。
,而对于一个变量,所有这些都不需要,只要返回变量就可以了。
你是否记得将该函数导入 EA?
你是否能提供指标和EA的源代码来说明你的想法?
你是否能提供指标和EA的源代码来说明你的想法?
是的,这很奇怪。mql4中的函数导出 因某些原因而无法工作。
我没有从图书馆或指标中得到任何结果。然而,我在依赖关系中看到了函数。
图书馆的一个例子
设置一个值的指标
一个专家顾问应该通过一个函数获得一个值,但它没有工作。
我通过这样的方式从指标中发送ticks:sparam包含MqlTick,lparam - tick号码。
专家顾问在OnChartEvent 中捕捉到了这些ticks。它需要了解当前的刻度是否是最实际的刻度?即,是否有一个蜱虫队列,或者它是空的?
为此,它读取指标所发送的最新刻度线的数字(任务是读取这个数字)。如果刻度线有相同的数字--队列是空的,就有可能开始处理刻度线。
而在OnTick的操作中,在OrderSend之后,有必要检查指标是否已经发送了更多的ticks。为此,我们需要再次从指标中读取数字。在一个OnTick期间,可能会有超过100个这样的检查。这就是为什么我们需要快速阅读。
如果专家顾问是通过CopyTicks来获取ticks,为什么它需要知道队列是空的?
让它在每个事件上工作,并跳过那些时间少于已处理的事件。
如果我的专家顾问仍然通过CopyTicks 获取点数,为什么它需要知道队列是空的?
关于交易、自动交易系统和交易策略测试的论坛
虫子,虫子,问题
fxsaber, 2021.02.17 21:26
请分享我对这个问题的看法(MT4)。
像这样的东西会有帮助吗?
https://www.mql5.com/ru/code/818
像这样的东西会有帮助吗?
https://www.mql5.com/ru/code/818
上面建议了 一个快速的WinAPI选项。
上面建议了 一个快速的WinAPI变体。
这个方案更危险,更难实施
这个方案更危险,更难实施
等待这一次。