新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 664 1...657658659660661662663664665666667668669670671...1953 新评论 Artyom Trishkin 2018.10.16 05:42 #6631 Roman Sharanov:我不明白如何写指标,问题出在哪里? 我需要画一条线来显示active_1和 active_2 之间的 价格差异。 它的作用 我还需要一个平均的ma_period ma_period 来绘制在这条线上,有一个问题--它没有被显示。 你没有检查复制的结果。 你在每次打勾时都会复制整个历史。 Bars()的数量,而不是rate_total,应该从一个非本地符号(而不是当前图表符号)中复制。 每两分钟,你需要请求,例如,非本地符号的当前条形时间,以保持其历史数据的更新。 使用SimpleMAOnBuffer()来平滑dataBuffer数据。 Roman Sharanov 2018.10.16 05:57 #6632 Artyom Trishkin:你没有检查复制的结果。 你在每次打勾时复制整个历史。 一个非本地的符号(不是当前的图表符号)应该有Bars()数字被复制,而不是rate_total。 每两分钟,你需要请求,例如,非本地符号的当前酒吧时间,以保持其历史数据的更新。 使用SimpleMAOnBuffer()来平滑dataBuffer数据像这样吗?"完全停止工作 int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { //--- int bars1 = Bars(active_1, timeframe), bars2 = Bars(active_2, timeframe); if(CopyClose(active_1,timeframe,0,bars1,firstBuffer) < 0) return 0; if(CopyClose(active_2,timeframe,0,bars2,secondBuffer) < 0) return 0; if(bars1 != bars2) return 0; int first, bar; if(prev_calculated == 0) first = begin; else first = prev_calculated - 1; for(bar = first; bar<bars1; bar++){ dataBuffer[bar] = firstBuffer[bar]-secondBuffer[bar]; maBuffer[bar] = SimpleMA(bar, ma_period, dataBuffer); } SimpleMAOnBuffer(bars1, prev_calculated, begin, ma_period, dataBuffer, maBuffer); //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ void OnTimer(){ iTime(active_1,timeframe,1); iTime(active_2,timeframe,1); } void OnDeinit(const int reason){ EventKillTimer(); } Andrei Sokolov 2018.10.16 07:49 #6633 问候。 请您告诉我如何在EA开单时记录一些数值,以便它们指的是那个特定的订单,例如在票据上。 Roman Sharanov 2018.10.16 07:56 #6634 Andrey Sokolov:问候。 请您告诉我如何在EA开单时记录一些数值,以便它们指的是那个特定的订单,例如在票据上。在评论中 psyman 2018.10.16 10:11 #6635 我想观察一下波动情况。为此,我在tmp1数组中计算收盘与开盘之差,然后用它来绘制感兴趣时期的SMA。 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[]) { int i; double tmp1[]; Print("rates_total = ",rates_total); for(i=1; i<rates_total; i++) { tmp1[i]=MathMax(open[i],close[i])-MathMin(open[i],close[i]); ip1Buf[i]=iMA(NULL,0,1,0,0,tmp1[i],0); } //--- return value of prev_calculated for next call return(rates_total); } 编译时没有发生错误,终端没有画出指标,日志显示CADJPY,H1: array out of range in '_t1.mq4' (65,11) 这是计算MathMax-MathMin 之差的一行,可能是什么原因? Vitaly Muzichenko 2018.10.16 10:13 #6636 psyman:我想观察一下波动情况。为此,我在tmp1数组中计算收盘与开盘之差,然后用它来绘制感兴趣时期的SMA。 编译时没有发生错误,终端没有画出指标,日志显示CADJPY,H1: array out of range in '_t1.mq4' (65,11) 这是计算MathMax-MathMin 之差的一行,可能是什么原因?我还没有理解这个代码,但如果是这样。 for(i=1; i<rates_total-1; i++) psyman 2018.10.16 10:24 #6637 关于交易、自动交易系统和策略测试的论坛 对MQL4初学者的任何问题,对算法和代码的帮助和讨论 Vitaly Muzichenko, 2018.10.16 12:13 没有真正处理好代码,但如果是这样。 for(i=1; i<rates_total-1; i++)它不起作用。 UPD 将字符串简化到最低限度,tmp1[i]=close[i]; 错误依旧。 Alexey Viktorov 2018.10.16 10:31 #6638 psyman:我想观察一下波动情况。为此,我在tmp1数组中计算收盘与开盘之差,然后用它来绘制感兴趣时期的SMA。 编译时没有发生错误,终端没有画出指标,日志显示CADJPY,H1: array out of range in '_t1.mq4' (65,11) 这是计算MathMax-MathMin 之差的线。数组tmp[]被声明为一个动态数组,初始长度为零。因此出现了错误。 你应该声明这个数组作为计算的指标缓冲区。 63141728 2018.10.16 14:01 #6639 psyman 2018.10.16 14:23 #6640 关于交易、自动交易系统和策略测试的论坛 对MQL4初学者的任何问题,对算法和代码的帮助和讨论 Alexey Viktorov, 2018.10.16 12:31 数组tmp[]被声明为一个动态数组,初始长度为零。因此出现了错误。 这个数组应该被声明为计算的指标缓冲区。为什么我们不能使用一个动态数组? 在这种情况下,我把收盘价覆盖在那里,没有进行任何计算。 我在哪里可以读到如何使用指示剂缓冲器? 1...657658659660661662663664665666667668669670671...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我不明白如何写指标,问题出在哪里?
我需要画一条线来显示active_1和 active_2 之间的 价格差异。
它的作用
我还需要一个平均的ma_period ma_period 来绘制在这条线上,有一个问题--它没有被显示。
你没有检查复制的结果。
你在每次打勾时都会复制整个历史。
Bars()的数量,而不是rate_total,应该从一个非本地符号(而不是当前图表符号)中复制。
每两分钟,你需要请求,例如,非本地符号的当前条形时间,以保持其历史数据的更新。
使用SimpleMAOnBuffer()来平滑dataBuffer数据。
你没有检查复制的结果。
你在每次打勾时复制整个历史。
一个非本地的符号(不是当前的图表符号)应该有Bars()数字被复制,而不是rate_total。
每两分钟,你需要请求,例如,非本地符号的当前酒吧时间,以保持其历史数据的更新。
使用SimpleMAOnBuffer()来平滑dataBuffer数据
像这样吗?"完全停止工作
问候。
请您告诉我如何在EA开单时记录一些数值,以便它们指的是那个特定的订单,例如在票据上。
问候。
请您告诉我如何在EA开单时记录一些数值,以便它们指的是那个特定的订单,例如在票据上。
在评论中
我想观察一下波动情况。为此,我在tmp1数组中计算收盘与开盘之差,然后用它来绘制感兴趣时期的SMA。
编译时没有发生错误,终端没有画出指标,日志显示CADJPY,H1: array out of range in '_t1.mq4' (65,11)
这是计算MathMax-MathMin 之差的一行,可能是什么原因?
我想观察一下波动情况。为此,我在tmp1数组中计算收盘与开盘之差,然后用它来绘制感兴趣时期的SMA。
编译时没有发生错误,终端没有画出指标,日志显示CADJPY,H1: array out of range in '_t1.mq4' (65,11)
这是计算MathMax-MathMin 之差的一行,可能是什么原因?
我还没有理解这个代码,但如果是这样。
关于交易、自动交易系统和策略测试的论坛
对MQL4初学者的任何问题,对算法和代码的帮助和讨论
Vitaly Muzichenko, 2018.10.16 12:13
没有真正处理好代码,但如果是这样。
它不起作用。
UPD
将字符串简化到最低限度,tmp1[i]=close[i]; 错误依旧。
我想观察一下波动情况。为此,我在tmp1数组中计算收盘与开盘之差,然后用它来绘制感兴趣时期的SMA。
编译时没有发生错误,终端没有画出指标,日志显示CADJPY,H1: array out of range in '_t1.mq4' (65,11)
这是计算MathMax-MathMin 之差的线。
数组tmp[]被声明为一个动态数组,初始长度为零。因此出现了错误。
你应该声明这个数组作为计算的指标缓冲区。
关于交易、自动交易系统和策略测试的论坛
对MQL4初学者的任何问题,对算法和代码的帮助和讨论
Alexey Viktorov, 2018.10.16 12:31
数组tmp[]被声明为一个动态数组,初始长度为零。因此出现了错误。
这个数组应该被声明为计算的指标缓冲区。
为什么我们不能使用一个动态数组?
在这种情况下,我把收盘价覆盖在那里,没有进行任何计算。
我在哪里可以读到如何使用指示剂缓冲器?