新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 989 1...982983984985986987988989990991992993994995996...1953 新评论 werter 2019.11.01 18:48 #9881 你好。请告诉我错误在哪里。 void OnStart() { datetime current_time=TimeCurrent(); //datetime current_time=D'2019.10.18 19:55:00'; datetime our_time=(current_time-60)-MathMod((current_time-60),60); datetime t1=our_time; datetime t2=our_time+60; PrintFormat("current_time=%s",TimeToString(current_time,TIME_DATE|TIME_MINUTES|TIME_SECONDS)); PrintFormat("our_time=%s",TimeToString(our_time,TIME_DATE|TIME_MINUTES|TIME_SECONDS)); string stock="MSFT"; MqlTick tick_array[];// массив для приема тиков int received=CopyTicksRange(stock, tick_array, COPY_TICKS_TRADE, t1*1000, t2*1000); Print(stock," Всего тиков ",received); Print(tick_array[0].time,": Last = ",tick_array[0].last," Volume = ",tick_array[0].volume ); ulong total=tick_array[0].volume; ulong buy=tick_array[0].volume; ulong sell=0; bool flag='b'; int ticks=ArraySize(tick_array); double pprice=tick_array[0].last; int i=1; while(i<ticks) { total=total+tick_array[i].volume;//{считаем общий объем} if (pprice<tick_array[i].last) flag='b';//{если пред.тик меньше зн.'b'} if (pprice<=tick_array[i].last) if (flag='b') buy=buy+tick_array[i].volume;//{считаем,что сделка по BID} if (pprice>tick_array[i].last) flag='s';//{если пред.тик больше зн.'s'} if (pprice>=tick_array[i].last) if (flag='s') sell=sell+tick_array[i].volume;//{считаем,что сделка по ASK} pprice=tick_array[i].last;//{ставим счетчик на последн. тик} i=i+1; } Print (total," ",buy," ",sell); } Vladimir Pastushak 2019.11.01 19:01 #9882 werter: 你好。能否请你告诉我错误在哪里? 在代码的某处 werter 2019.11.01 19:15 #9883 Vladimir Pastushak: 在代码中的某个地方。 妙趣横生。 这就是BuySellVolume。总成交量不等于买入和卖出的总和,而只是略微多一些。 Alexandr Sokolov 2019.11.02 05:01 #9884 MLQ5的指标中的 "inf "能说明什么? 这是我第一次遇到这种情况,我在文件搜索中没有发现任何东西。 Vladimir Karputov 2019.11.02 05:06 #9885 Alexandr Sokolov: MLQ5的指标中的 "inf "能说明什么? 这是我第一次遇到这种情况,我在文档搜索中找不到任何东西 不是一个好的搜索:INF 搜索产生几个结果。 例如,在 MathLog 中查看 返回值 在成功的情况下,价值的自然对数。如果val为负数,该函数返回NaN(未定义的值)。如果值为0,函数返回INF(无穷大)。 这个结果意味着:代码在数值计算的算法上有错误(例如,我们忘记了初始化变量--我们希望最坏的结果,在除法运算中我们没有想到...)。 Поиск - MQL5.community www.mql5.com Поиск выполняется с учетом морфологии и без учета регистра. Все буквы, независимо от того, как они введены, будут рассматриваться как строчные. По умолчанию наш поиск показывает страницы... Alexandr Sokolov 2019.11.02 05:29 #9886 Vladimir Karputov: 不是一个好的搜索:INF 搜索产生几个结果。 例如,在 MathLog 中查看 返回的值 在成功的情况下,价值的自然对数。如果val为负数,该函数返回NaN(未定义的值)。如果值为0,函数返回INF(无穷大)。 这个结果意味着:代码中包含了数值计算算法的错误(例如,我们忘记了初始化变量--我们希望是最坏的结果,在除法运算中我们没有想到...)。 这就是我在搜索>>文档中发现的所有内容(但我没有阅读每一个描述,我总是按标题来找--习惯)。 关于变量的初始化(我要么误解了你的意思,要么是第一次听说),比如说。 double a = 0, b; ...这还不够吗?我通常声明变量并使用 Vladimir Karputov 2019.11.02 05:38 #9887 Alexandr Sokolov: 这是我在搜索>>文档中看到的所有内容(但我没有看每一条的描述,我总是通过标题找到它--习惯) *** 坏习惯。 亚历山大-索科洛夫。 ...这还不够吗?我通常声明变量并使用 这里出现了 "黑天鹅"--b 变量没有被初始化,它可以包含任何垃圾。 Alexandr Sokolov 2019.11.02 05:40 #9888 Alexandr Sokolov: MLQ5的指标中的 "inf "能说明什么? 这是我第一次遇到这种情况,我在文档搜索中找不到任何东西 我知道问题出在哪里了! 如果你已经初始化了缓冲区EMPTY_VALUE ArrayInitialize(Bufer,EMPTY_VALUE); ...然后你在进一步的计算中复制或计算了足够数量的时间序列,然后将任何数值乘以缓冲区的EMPTY_VALUE--你得到的是inf 在这里,我只是提醒了一下,只有乘以EMPTY_VALUE的结果是inf Alexandr Sokolov 2019.11.02 05:42 #9889 Vladimir Karputov: 谢谢你 Vladimir Karputov 2019.11.02 05:44 #9890 Alexandr Sokolov: 我知道问题出在哪里了! 如果你已经初始化了EMPTY_VALUE缓冲区 ...然后在进一步的计算中,你复制或计算了足够数量的时间序列,然后将任何数值乘以缓冲区中的EMPTY_VALUE - 然后你会得到inf 在这里,我刚刚进行了调整,只有在与EMPTY_VALUE相乘时,才会得到Inf 看起来你找到了原因。所以当用 EMPTY_VALUE初始化一个缓冲区 时,在算术运算过程中,我们应该首先检查 "EMPTY_VALUE是否意外地存在于这个索引的缓冲区? 1...982983984985986987988989990991992993994995996...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好。请告诉我错误在哪里。
你好。能否请你告诉我错误在哪里?
在代码的某处
在代码中的某个地方。
妙趣横生。
这就是BuySellVolume。总成交量不等于买入和卖出的总和,而只是略微多一些。
MLQ5的指标中的 "inf "能说明什么?
这是我第一次遇到这种情况,我在文件搜索中没有发现任何东西。
MLQ5的指标中的 "inf "能说明什么?
这是我第一次遇到这种情况,我在文档搜索中找不到任何东西
不是一个好的搜索:INF 搜索产生几个结果。
例如,在 MathLog 中查看
在成功的情况下,价值的自然对数。如果val为负数,该函数返回NaN(未定义的值)。如果值为0,函数返回INF(无穷大)。
这个结果意味着:代码在数值计算的算法上有错误(例如,我们忘记了初始化变量--我们希望最坏的结果,在除法运算中我们没有想到...)。
不是一个好的搜索:INF 搜索产生几个结果。
例如,在 MathLog 中查看
在成功的情况下,价值的自然对数。如果val为负数,该函数返回NaN(未定义的值)。如果值为0,函数返回INF(无穷大)。
这个结果意味着:代码中包含了数值计算算法的错误(例如,我们忘记了初始化变量--我们希望是最坏的结果,在除法运算中我们没有想到...)。
这就是我在搜索>>文档中发现的所有内容(但我没有阅读每一个描述,我总是按标题来找--习惯)。
关于变量的初始化(我要么误解了你的意思,要么是第一次听说),比如说。
...这还不够吗?我通常声明变量并使用
这是我在搜索>>文档中看到的所有内容(但我没有看每一条的描述,我总是通过标题找到它--习惯)
***
坏习惯。
...这还不够吗?我通常声明变量并使用
这里出现了 "黑天鹅"--b 变量没有被初始化,它可以包含任何垃圾。
MLQ5的指标中的 "inf "能说明什么?
这是我第一次遇到这种情况,我在文档搜索中找不到任何东西
我知道问题出在哪里了!
如果你已经初始化了缓冲区EMPTY_VALUE
...然后你在进一步的计算中复制或计算了足够数量的时间序列,然后将任何数值乘以缓冲区的EMPTY_VALUE--你得到的是inf
在这里,我只是提醒了一下,只有乘以EMPTY_VALUE的结果是inf
谢谢你
我知道问题出在哪里了!
如果你已经初始化了EMPTY_VALUE缓冲区
...然后在进一步的计算中,你复制或计算了足够数量的时间序列,然后将任何数值乘以缓冲区中的EMPTY_VALUE - 然后你会得到inf
在这里,我刚刚进行了调整,只有在与EMPTY_VALUE相乘时,才会得到Inf
看起来你找到了原因。所以当用 EMPTY_VALUE初始化一个缓冲区 时,在算术运算过程中,我们应该首先检查 "EMPTY_VALUE是否意外地存在于这个索引的缓冲区?