错误、漏洞、问题 - 页 270 1...263264265266267268269270271272273274275276277...3184 新评论 Boris 2011.01.19 10:05 #2691 Rosh: 运行这样一个指标,你就会看到自己的情况。所以在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[])open[]也不是一个时间序列?我什么都不明白,请给我一个时间序列的例子。 Voodoo_King 2011.01.19 10:05 #2692 Voodoo_King:建立375。这个错误真的很糟糕,其结果是我已经失去了相当多的钱......关闭/打开终端后,EA参数不会恢复到设置。更确切地说,它们中的一部分可以被恢复(例如6个中的3个),而其余的被重置为默认设置。 建381。什么都没有改变!!!每次终端重新启动时,EA都会以不同的参数(无论他们想要什么)进行初始化。 Rashid Umarov 2011.01.19 10:07 #2693 AlexSTAL:这个函数检查 的是方向,而不是变化。1) 没有初始化2) 有了初始化3) 上面的代码,只用了ArrayGetAsSeries 数组索引 方向的函数 我在服务台犯了一个错误,功能名称只是 是的,我发现了编译器的错误。谢谢你的信息。下一个版本中会有一个修复。 AndrNuda 2011.01.19 10:11 #2694 BoraBo:所以在open[]也不是一个时间序列?我不明白,请给我一个时间序列的例子。 所以,它不是一个TC,那又怎样?通过 "设置 "将其设置为一个时间序列,它将成为一个TC。这是你第一次运行终端吗?这对你来说是个大新闻。我想,刚才有人写道,我们应该自己决定如何在他们的程序中工作--用TS还是只用数组。 Boris 2011.01.19 10:13 #2695 joo:这就是为什么我在OnCalculate()中这样做。你能帮助我使ArrayGetAsSeries(low)给出真实吗? AndrNuda 2011.01.19 10:15 #2696 BoraBo: 你能帮助使ArrayGetAsSeries(low)输出为真 吗? 我已经厌烦了:))按你的要求设置,你好。没有什么可检查的。:)) Rashid Umarov 2011.01.19 10:41 #2697 BoraBo:所以在open[]也不是一个时间序列?我什么都不明白,请给我一个时间序列的例子。open[]和OnCalculate中的所有其他数组都是时间序列。在最开始的时候,当MQL5语言被编写时,ArrayGetAsSeries()对它们返回true,它们的索引是完全按照时间序列来执行的,也就是向后。 但后来发现,用MQL4风格写指标缓冲区计算非常不方便,也不自然,只有一个办法--把时间序列的索引倒过来,方便使用。我们本着这种精神开始编写自定义指标。int OnCalculate (const int rates_total, // размер входных таймсерий const int prev_calculated, // обработано баров на предыдущем вызове const datetime& time[], // Time const double& open[], // Open const double& high[], // High const double& low[], // Low const double& close[], // Close const long& tick_volume[], // Tick Volume const long& volume[], // Real Volume const int& spread[] // Spread) { //---- переворачиваем все таймсерии, чтобы ими было удобно пользоваться, как обычными массивами ArraySetAsSeries(open,false); ArraySetAsSeries(high,false); ArraySetAsSeries(low,false); ArraySetAsSeries(close,false); ArraySetAsSeries(time,false); ArraySetAsSeries(tick_volume,false); ArraySetAsSeries(volume,false); ArraySetAsSeries(spread,false); ArraySetAsSeries(open,false); .... остальной код }但每次我们不得不写这样乱七八糟的转换,结果也不是一个好主意。因此,我们决定像通常的数组一样,用索引来传递这些时间序列。这就是我们如何得到这样一个悖论,当时间序列不像时间序列那样被索引。这就是为什么帮助中说,应该检查索引顺序,如果有必要,就按要求设置。 Rashid Umarov 2011.01.19 10:46 #2698 BoraBo: 帮助我使ArrayGetAsSeries(low)输出为真它已经返回真,但由于编译器错误,它的值被错误地作为参数输出。这样检查吧。#property script_show_inputs input bool isTimeSeria=true; double Ups[]; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- установим для массивов признак таймсерии Print("Установим для массивов признак таймсерии как ",isTimeSeria); ArraySetAsSeries(Ups,isTimeSeria); //--- Проверим таймсерии if(ArrayGetAsSeries(Ups)) { Print("1: ArrayGetAsSeries(Ups)=true"); Print("2: ArrayGetAsSeries(Ups)=",ArrayGetAsSeries(Ups)); } else { Print("ArrayGetAsSeries(Ups)=true!!!"); } } //+------------------------------------------------------------------+结果。 Boris 2011.01.19 11:16 #2699 Rosh:它确实给出了真,只是由于编译器的错误,它作为参数的值被错误地输出。这样检查吧。结果。谢谢,想通了。条件if()运算符中的ArrayIsSeries()和ArrayGetAsSeries() 按描述工作,但Print()总是输出错误。 [删除] 2011.01.19 11:23 #2700 开发人员。1.请检查历史记录加载到测试器的情况(这是我第一次测试)。我正在使用H1上的标准MACD样本测试欧元兑美元,间隔时间为 "上个月"。我达到了57%的下载数据并成功冻结,日志中只有这一行2011.01.19 17:16:23 Tester EURUSD: history preliminary downloading started 2.是否有可能在新的构建中不断地使1:200和1:500的杠杆作用在测试器中得到体现?我理解并不是所有的经纪公司都有这样的杠杆,特别是在MT5上,但在策略测试器中,可能应该留下这一点,因为在新平台上测试策略更方便。 1...263264265266267268269270271272273274275276277...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
运行这样一个指标,你就会看到自己的情况。
所以在
open[]也不是一个时间序列?
我什么都不明白,请给我一个时间序列的例子。
建立375。这个错误真的很糟糕,其结果是我已经失去了相当多的钱......
关闭/打开终端后,EA参数不会恢复到设置。
更确切地说,它们中的一部分可以被恢复(例如6个中的3个),而其余的被重置为默认设置。
每次终端重新启动时,EA都会以不同的参数(无论他们想要什么)进行初始化。
这个函数检查 的是方向,而不是变化。
1) 没有初始化
2) 有了初始化
3) 上面的代码,只用了ArrayGetAsSeries 数组索引 方向的函数
我在服务台犯了一个错误,功能名称只是所以在
open[]也不是一个时间序列?
我不明白,请给我一个时间序列的例子。
这就是为什么我在OnCalculate()中这样做。
你能帮助我使ArrayGetAsSeries(low)给出真实吗?
你能帮助使ArrayGetAsSeries(low)输出为真 吗?
所以在
open[]也不是一个时间序列?
我什么都不明白,请给我一个时间序列的例子。
open[]和OnCalculate中的所有其他数组都是时间序列。在最开始的时候,当MQL5语言被编写时,ArrayGetAsSeries()对它们返回true,它们的索引是完全按照时间序列来执行的,也就是向后。
但后来发现,用MQL4风格写指标缓冲区计算非常不方便,也不自然,只有一个办法--把时间序列的索引倒过来,方便使用。我们本着这种精神开始编写自定义指标。
但每次我们不得不写这样乱七八糟的转换,结果也不是一个好主意。因此,我们决定像通常的数组一样,用索引来传递这些时间序列。这就是我们如何得到这样一个悖论,当时间序列不像时间序列那样被索引。这就是为什么帮助中说,应该检查索引顺序,如果有必要,就按要求设置。
帮助我使ArrayGetAsSeries(low)输出为真
它已经返回真,但由于编译器错误,它的值被错误地作为参数输出。这样检查吧。
结果。
它确实给出了真,只是由于编译器的错误,它作为参数的值被错误地输出。这样检查吧。
结果。
谢谢,想通了。
条件if()运算符中的ArrayIsSeries()和ArrayGetAsSeries() 按描述工作,但Print()总是输出错误。
开发人员。
1.请检查历史记录加载到测试器的情况(这是我第一次测试)。
我正在使用H1上的标准MACD样本测试欧元兑美元,间隔时间为 "上个月"。
我达到了57%的下载数据并成功冻结,日志中只有这一行
2011.01.19 17:16:23 Tester EURUSD: history preliminary downloading started
2.是否有可能在新的构建中不断地使1:200和1:500的杠杆作用在测试器中得到体现?
我理解并不是所有的经纪公司都有这样的杠杆,特别是在MT5上,但在策略测试器中,可能应该留下这一点,因为在新平台上测试策略更方便。