[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 403 1...396397398399400401402403404405406407408409410...432 新评论 Artyom Trishkin 2013.06.07 11:34 #4021 solnce600: 它用什么按钮来让你微笑或振作起来? 乌里不知道,我也不知道这个按钮,但有时我们会摇摇尾巴 ...:))) Dimka-novitsek 2013.06.07 12:12 #4022 lottamer:2个小时试图写一篇测试文章,以进一步测试不同的条件。不起作用!请告诉我这个错误。问题是,订单在自己的方向上2个百分点后打开。打开卖和结束... 一切似乎在逻辑上都是正确的!只有注意--所有的变量都必须在开头以上声明,包括括号内的变量。 Dmitry Fedoseev 2013.06.07 12:21 #4023 hoz: 我想知道为什么这里会有一个条件?有一个while循环,原则上可能是无限的,所以已经采取了措施,使其更容易从图表中取出EA或将其关闭。如果出了问题,最好是终止启动,而不是循环。在下一次打勾时,重复它。 TarasBY 2013.06.07 13:00 #4024 lottamer:Kim的函数有一个时间参数="自1970年以来的日期和时间(秒)"我尝试了2种变体。而这两者给出的利润不是当天的,而是整个历史的全部利润....。 本日开始于当前D1条的开头(iTime (NULL,PERIOD_D1, 0)),但你不是在寻找简单的方法吗?:))) Vadim Zhunko 2013.06.07 13:20 #4025 hoz: 我不太理解写一个独立函数的逻辑。毕竟,函数RefreshRates() 本身的作用是更新预定义变量的数据。而买入 和卖出 是预定义的变量。如果函数RefreshRates() 更新预定义的变量,为什么还要写一些额外的函数? 那里有一个奇特之处。bool RefreshRates( ) 刷新预定义变量和时间序列数组中的数据。当专家顾问或脚本已经进行了很长时间的计算,需要更新数据时,可以使用这个功能。如果数据被更新,它返回TRUE,否则返回FALSE。数据可能不会被更新,只因为它对应于客户终端的 当前状态。专家顾问和脚本使用他们自己的历史数据副本工作。当前符号上的数据副本是在专家顾问或脚本首次启动时创建的。在每次启动专家顾问时(记住,该脚本只执行一次,不依赖于传入的点数),最初创建的副本会被更新。当专家顾问或脚本运行时,一个或几个新的点会到来,所以数据会过时。数据也不是即时更新的。这必须得到控制。 Viktar Dzemikhau 2013.06.07 13:55 #4026 Zhunko:那里有一个奇特之处。bool RefreshRates( ) 刷新预定义变量和时间序列数组中的数据。当专家顾问或脚本已经进行了很长时间的计算,需要更新数据时,可以使用这个功能。如果数据被更新,它返回TRUE,否则返回FALSE。数据可能不会被更新,只因为它对应于客户终端的当前状态。专 家顾问和脚本使用他们自己的历史数据副本工作。当前符号上的数据副本是在专家顾问或脚本首次启动时创建的。在每次启动专家顾问时(记住,该脚本只执行一次,不依赖于传入的点数),最初创建的副本会被更新。当专家顾问或脚本运行时,一个或几个新的点会到来,所以数据会过时。数据也不是即时更新的。这必须得到控制。 根据给定的参考,让我们采取ASK价格。如果我们运行RefreshRates(),预定义变量 数组中的数据会被更新。如果ASC的价格发生了变化,那么在运行RefreshRates() 后,ASC将采取新的价值。如果是这样的话。数据可能不会仅仅因为与客户终端的当前状态相匹配而刷新。则ASC值没有变化。因此,以前的ASK值将在计算中使用,因为它没有改变,就像以前一样。毕竟,如果RefreshRates() 返回的值是TRU,这意味着它已经成功地更新了数据,所以我们不需要再去检查它了你不同意吗? Vadim Zhunko 2013.06.07 16:17 #4027 hoz: 基于这个参考,我们来看看ASC的价格。如果我们运行RefreshRates(),预定义变量数组中的数据会被更新。因此,如果ASC的价格发生了变化,那么在运行RefreshRates() 后,ASC将采取新的价值。而如果是这样的话。则ASC值没有变化。因此,以前的ASK值将被用于计算,这就是它的原貌,因为它没有改变。毕竟,如果RefreshRates() 返回TRU值,它已经成功地更新了数据,我们不需要再去检查它了!你不同意吗?不,它可以返回FALSE,数据将是新的。数据可能不被更新的唯一原因是它对应于客户终端的 当前状态。 你必须找到一个指示,告诉你数据是新鲜的。对于不同的任务,它可能是不同的。 Viktar Dzemikhau 2013.06.07 17:33 #4028 Zhunko:不,它可以返回FALSE,数据将是新的。那么,文件中存在一个明显的错误?而文件不能被信任?Zhunko: 你必须找到一个能让你认为数据是新鲜的指示。对于不同的任务,它可能是不同的。假设我们谈论的是ASK价格。我们有两个变量。ASC -RefreshRates()之后的询问 值。_ASK - 最后已知的询问 值。_____________________________________________________________________________________这很难说。这里可能是什么标志?有两种可能性。1.预定义变量 的值已经改变。RefreshRates() 返回True。2.预定义变量的值没有 改变。RefreshRates() 返回False。如果我们看一下另一面,关于找到一个标志。有2种可能性。1.预定义变量的值已经改变。也就是说,在我们的案例中,Ask = ASC2.预定义变量的值没有 改变。即:Ask = _ASK要么有一个变化的值,要么有一个不变的值,没有其他选择。那你想做什么? Vadim Zhunko 2013.06.07 18:31 #4029 hoz:那么,文件中存在一个明显的错误?而文件不能被信任?比方说,我们谈论的是ASK价格。我们有2个变量。ASC -RefreshRates()之后的询问 值。_ASK - 最后已知的询问 值。_____________________________________________________________________________________这很难说。这里可能是什么标志?有两种可能性。1.预定义变量的值已经改变。RefreshRates() 返回True。2.预定义变量的值没有 改变。RefreshRates() 返回False。如果我们看一下另一面,关于找到一个标志。有2种可能性。1.预定义变量的值已经改变。也就是说,在我们的案例中,Ask = ASC2.预定义变量的值没有 改变。即:Ask = _ASK要么有一个变化的值,要么有一个不变的值,没有其他选择。那你想怎么做呢?文件都是有序的。这正是所描述的,这也是我向你指出的。如果数据被更新,则返回TRUE,否则返回FALSE。数据可能不被更新的唯一原因是它与客户终端的 当前状态 相匹配。所以这个函数只说已经收到了新的数据。我不知道你想怎么做其他的事情。我从服务器(MarketInfo())上检查数据,有零条。我一直等到它们都是一样的。顺便说一下,这并不能保证在不久的将来历史上没有 "洞"。可能很容易有1、2、3个小节或几个小节的缺失,而零点小节会在那里。有时他们会在事后才来。有时他们不这样做。 Viktar Dzemikhau 2013.06.07 19:23 #4030 Zhunko:也就是说,这个函数说新数据已经到达,但仅此而已。 因此,如果有新的数据进来,这就是我们需要的,不是吗?Zhunko: 我从服务器(MarketInfo())上检查了零条的数据。我等待着他们也是如此。顺便说一下,这并不能保证在最近的历史上没有 "洞"。可能很容易有1、2、3个小节或几个小节的缺失,而零点小节会在那里。有时他们会晚点来。有时他们不这样做。 嗯,是的,我们需要第0条的数据。MarketInfo()从零条上提取数据,仅此而已。为什么我们要用别的东西来检查呢?Zhunko: 顺便说一下,它并不能保证在最近的历史中没有 "洞"。可能很容易出现1、2、3个小节或几个小节的缺失,而零会出现在那里。有时他们会晚点来。有时他们不这样做。即使历史上有一个缺口,也不会影响当前的计算。它在当时会有一个洞。也就是说,如果我们获得了当前的Ask,我们并不真正关心几个柱子前的价格(我的意思不是正式的,而是关于某个市场变量的当前时刻,因为函数RefreshRates()将对第0个柱子上的当前时刻进行处理!)。当然,我是在挖空心思,但我想了解如何做得更好。你,Vadim,说我在上面写的函数不正确,我再重复一遍,加了几行。double fGet_TradePrice(int fi_price, // Цена: 0 - Bid; 1 - Ask string fs_symbol) // валютная пара { double ld_price = 0.0; switch (fi_price) { case 0: if (fs_symbol == Symbol()) { RefreshRates(); ld_price = Bid; } else ld_price = MarketInfo(fs_symbol, MODE_BID); case 1: if (fs_symbol == Symbol()) { RefreshRates(); ld_price = Ask; } else ld_price = MarketInfo(fs_symbol, MODE_ASK); } if (ld_price != 0) return (ld_price); }在你看来,这里面有什么问题? 1...396397398399400401402403404405406407408409410...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
它用什么按钮来让你微笑或振作起来?
2个小时试图写一篇测试文章,以进一步测试不同的条件。
不起作用!
请告诉我这个错误。
问题是,订单在自己的方向上2个百分点后打开。
打开卖和结束...
一切似乎在逻辑上都是正确的!只有注意--所有的变量都必须在开头以上声明,包括括号内的变量。
我想知道为什么这里会有一个条件?
有一个while循环,原则上可能是无限的,所以已经采取了措施,使其更容易从图表中取出EA或将其关闭。
如果出了问题,最好是终止启动,而不是循环。在下一次打勾时,重复它。
Kim的函数有一个时间参数="自1970年以来的日期和时间(秒)"
我尝试了2种变体。
而这两者给出的利润不是当天的,而是整个历史的全部利润....。
我不太理解写一个独立函数的逻辑。毕竟,函数RefreshRates() 本身的作用是更新预定义变量的数据。而买入 和卖出 是预定义的变量。如果函数RefreshRates() 更新预定义的变量,为什么还要写一些额外的函数?
那里有一个奇特之处。
bool RefreshRates( )
刷新预定义变量和时间序列数组中的数据。当专家顾问或脚本已经进行了很长时间的计算,需要更新数据时,可以使用这个功能。如果数据被更新,它返回TRUE,否则返回FALSE。数据可能不会被更新,只因为它对应于客户终端的 当前状态。专家顾问和脚本使用他们自己的历史数据副本工作。当前符号上的数据副本是在专家顾问或脚本首次启动时创建的。在每次启动专家顾问时(记住,该脚本只执行一次,不依赖于传入的点数),最初创建的副本会被更新。当专家顾问或脚本运行时,一个或几个新的点会到来,所以数据会过时。
数据也不是即时更新的。这必须得到控制。
那里有一个奇特之处。
bool RefreshRates( )
刷新预定义变量和时间序列数组中的数据。当专家顾问或脚本已经进行了很长时间的计算,需要更新数据时,可以使用这个功能。如果数据被更新,它返回TRUE,否则返回FALSE。数据可能不会被更新,只因为它对应于客户终端的当前状态。专 家顾问和脚本使用他们自己的历史数据副本工作。当前符号上的数据副本是在专家顾问或脚本首次启动时创建的。在每次启动专家顾问时(记住,该脚本只执行一次,不依赖于传入的点数),最初创建的副本会被更新。当专家顾问或脚本运行时,一个或几个新的点会到来,所以数据会过时。
数据也不是即时更新的。这必须得到控制。
根据给定的参考,让我们采取ASK价格。如果我们运行RefreshRates(),预定义变量 数组中的数据会被更新。如果ASC的价格发生了变化,那么在运行RefreshRates() 后,ASC将采取新的价值。如果是这样的话。
数据可能不会仅仅因为与客户终端的当前状态相匹配而刷新。
则ASC值没有变化。因此,以前的ASK值将在计算中使用,因为它没有改变,就像以前一样。
毕竟,如果RefreshRates() 返回的值是TRU,这意味着它已经成功地更新了数据,所以我们不需要再去检查它了你不同意吗?
基于这个参考,我们来看看ASC的价格。如果我们运行RefreshRates(),预定义变量数组中的数据会被更新。因此,如果ASC的价格发生了变化,那么在运行RefreshRates() 后,ASC将采取新的价值。而如果是这样的话。
则ASC值没有变化。因此,以前的ASK值将被用于计算,这就是它的原貌,因为它没有改变。
毕竟,如果RefreshRates() 返回TRU值,它已经成功地更新了数据,我们不需要再去检查它了!你不同意吗?
不,它可以返回FALSE,数据将是新的。
数据可能不被更新的唯一原因是它对应于客户终端的 当前状态。
不,它可以返回FALSE,数据将是新的。
那么,文件中存在一个明显的错误?而文件不能被信任?
你必须找到一个能让你认为数据是新鲜的指示。对于不同的任务,它可能是不同的。
假设我们谈论的是ASK价格。我们有两个变量。
ASC -RefreshRates()之后的询问 值。
_ASK - 最后已知的询问 值。
_____________________________________________________________________________________
这很难说。这里可能是什么标志?有两种可能性。
1.预定义变量 的值已经改变。RefreshRates() 返回True。
2.预定义变量的值没有 改变。RefreshRates() 返回False。
如果我们看一下另一面,关于找到一个标志。有2种可能性。
1.预定义变量的值已经改变。也就是说,在我们的案例中,Ask = ASC
2.预定义变量的值没有 改变。即:Ask = _ASK
要么有一个变化的值,要么有一个不变的值,没有其他选择。那你想做什么?
那么,文件中存在一个明显的错误?而文件不能被信任?
比方说,我们谈论的是ASK价格。我们有2个变量。
ASC -RefreshRates()之后的询问 值。
_ASK - 最后已知的询问 值。
_____________________________________________________________________________________
这很难说。这里可能是什么标志?有两种可能性。
1.预定义变量的值已经改变。RefreshRates() 返回True。
2.预定义变量的值没有 改变。RefreshRates() 返回False。
如果我们看一下另一面,关于找到一个标志。有2种可能性。
1.预定义变量的值已经改变。也就是说,在我们的案例中,Ask = ASC
2.预定义变量的值没有 改变。即:Ask = _ASK
要么有一个变化的值,要么有一个不变的值,没有其他选择。那你想怎么做呢?
文件都是有序的。这正是所描述的,这也是我向你指出的。
如果数据被更新,则返回TRUE,否则返回FALSE。数据可能不被更新的唯一原因是它与客户终端的 当前状态 相匹配。
所以这个函数只说已经收到了新的数据。
我不知道你想怎么做其他的事情。我从服务器(MarketInfo())上检查数据,有零条。我一直等到它们都是一样的。顺便说一下,这并不能保证在不久的将来历史上没有 "洞"。可能很容易有1、2、3个小节或几个小节的缺失,而零点小节会在那里。有时他们会在事后才来。有时他们不这样做。
也就是说,这个函数说新数据已经到达,但仅此而已。
我从服务器(MarketInfo())上检查了零条的数据。我等待着他们也是如此。顺便说一下,这并不能保证在最近的历史上没有 "洞"。可能很容易有1、2、3个小节或几个小节的缺失,而零点小节会在那里。有时他们会晚点来。有时他们不这样做。
顺便说一下,它并不能保证在最近的历史中没有 "洞"。可能很容易出现1、2、3个小节或几个小节的缺失,而零会出现在那里。有时他们会晚点来。有时他们不这样做。
即使历史上有一个缺口,也不会影响当前的计算。它在当时会有一个洞。也就是说,如果我们获得了当前的Ask,我们并不真正关心几个柱子前的价格(我的意思不是正式的,而是关于某个市场变量的当前时刻,因为函数RefreshRates()将对第0个柱子上的当前时刻进行处理!)。
当然,我是在挖空心思,但我想了解如何做得更好。
你,Vadim,说我在上面写的函数不正确,我再重复一遍,加了几行。
在你看来,这里面有什么问题?