新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1477 1...147014711472147314741475147614771478147914801481148214831484...1953 新评论 ANDREY 2021.05.20 17:49 #14761 MakarFX:不过,它还是会在每一次打勾 时进行检查和最低限度的计算得到关闭......滚回两格。 我的最低计算是像你的照片中那样被击中。但后来我添加了LoY1变量,就不再出现这种错误了。结果,所有订单的开仓方式(按时间、金额和价格)与我最初的代码相同,也就是我需要的方式。我的代码在另一个地方失败了 ....但我把它固定 在同一个地方。 double LoU,LoY1,Pr; int x; void OnTick() { if (Low[1]>Low[2]&&Time[2]>x&&Low[2]<LoY1) { LoU=Low[2]; LoY1=Low[2]; } //************************************************************** if (Bid-LoU>=0.0030&&Pr!=LoU) { OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0); Pr=LoU; LoU=Bid; LoY1=Bid; x=TimeCurrent(); } } 你也可以从LoU的30点开始下挂单,而不是在市场上开盘。 这样你就不需要在每个tick上检查Bid。但在挂单的情况下,每当LoU 发生变化时,我们应该删除旧的挂单并设置一个新的挂单,或者改变当前挂单的参数而不删除它。而所有这些都应该比检查每一个Bid tick的频率低得多 。 在我的案例中,哪种变体在代码实现方面的耗时最少? 1.在每次打勾时检查投标 是否离LoU 有30个点的距离 2.每次改变LoU 时,要删除旧的待定,并设置一个新的。 3.随着LoU 的每次改变,改变活动LoU的参数 谢谢你的帮助。 Taras Slobodyanik 2021.05.20 19:00 #14762 ANDREY:我对最小值的计算就像你的照片中那样,出现了偏差。但后来我添加了LoY1的变量,它就停止了。 有标准函数iLowest和iHighest。 Tretyakov Rostyslav 2021.05.20 19:05 #14763 ANDREY:我对最小值的计算就像你的照片中那样,出现了偏差。但后来我添加了一个变量LoY1,它停止了这种游离。结果是,所有订单的开仓方式(按时间、金额和价格)与我原来的代码相同(也就是我想要的方式)。我的代码在另一个地方失败了 ....但我把它固定 在同一个地方。你也可以从LoU的30点开始下挂单,而不是在市场上开盘。 这样你就不需要在每个tick上检查Bid。但在挂单的情况下,每当LoU 发生变化时,我们应该删除旧的挂单并设置一个新的挂单,或者改变当前挂单的参数而不删除它。而所有这些都应该比检查每一个Bid tick的频率低得多 。 在我的案例中,哪种变体在代码实现方面的耗时最少?1.在每次打勾时检查投标 是否离LoU 有30个点的距离2.每次改变LoU 时,要删除旧的待定,并设置一个新的。3.随着LoU 的每一次改变,改变活动位置的参数 1)x不是int,是datetime(将来会很方便)。 2)你的初始代码没有挂单 3) 现在你的代码在每个tick上做更多的操作 检查您的信息 Tretyakov Rostyslav 2021.05.20 19:19 #14764 Taras Slobodyanik:有标准的iLowest和iHighest 函数。 不合适......时间序列项目的数量不固定 Taras Slobodyanik 2021.05.20 19:46 #14765 MakarFX: 不是的......时间序列元素的数量不是恒定的 呃......它是否妨碍你找到高/低点? Tretyakov Rostyslav 2021.05.20 21:00 #14766 Taras Slobodyanik:呃......这是否妨碍你找到高/低点? iLowest 和iHighest 函数意味着在一定数量的条形图(时间序列元素的数量)中搜索。 在这种情况下,这个数字是未知的,而且每次都在变化 ANDREY 2021.05.21 01:45 #14767 MakarFX:1)x不是int,是datetime(将来会很方便)。2)你的初始代码没有挂单3) 现在你的代码在每个tick上做更多的操作检查你的信息。 这是我的旧代码 这是我的新代码,与旧代码的时间段相同 对我来说,每个刻度的操作数远不如在这个数字上花费的时间重要。如果我没有记错的话,新的代码需要的时间少了25%....。 谢谢你的帮助。 [删除] 2021.05.21 07:25 #14768 Aleksei Stepanenko: 这里有一个微妙的问题。首先我们设定尺寸,然后通过重置为零来释放固定,这并不改变尺寸。 没有其他的办法。 非常感谢您! ANDREY 2021.05.21 07:50 #14769 MakarFX:不过,它还是会在每一次打勾 时进行检查和低点的计算得到偏离......滚回两格。 以下是我的原始代码,没有添加你的内容 下面是您的最新改进 也许if(TimeSeconds(TimeCurrent())==0)应该只适用于那些没有订单的部分,以及寻找下一个最小值的部分? 如果我没有弄错的话,由于你的功能,我的代码只在每分钟的蜡烛开始时才开始执行,这就是为什么它不能正确开仓。 谢谢你的帮助。 Tretyakov Rostyslav 2021.05.21 08:15 #14770 ANDREY:以下是我的原始代码,没有添加你的内容以下是有你最新改进的代码 也许,if(TimeSeconds(TimeCurrent())==0)应该只适用于那些没有开仓的部分,并在其中寻找下一个低点?如果我没有弄错的话,你的函数只在每分钟的蜡烛开始时开始执行我的代码。谢谢你的帮助。是 1...147014711472147314741475147614771478147914801481148214831484...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不过,它还是会在每一次打勾 时进行检查
和最低限度的计算得到关闭......滚回两格。
我的最低计算是像你的照片中那样被击中。但后来我添加了LoY1变量,就不再出现这种错误了。结果,所有订单的开仓方式(按时间、金额和价格)与我最初的代码相同,也就是我需要的方式。我的代码在另一个地方失败了 ....但我把它固定 在同一个地方。
你也可以从LoU的30点开始下挂单,而不是在市场上开盘。 这样你就不需要在每个tick上检查Bid。但在挂单的情况下,每当LoU 发生变化时,我们应该删除旧的挂单并设置一个新的挂单,或者改变当前挂单的参数而不删除它。而所有这些都应该比检查每一个Bid tick的频率低得多 。
在我的案例中,哪种变体在代码实现方面的耗时最少?
1.在每次打勾时检查投标 是否离LoU 有30个点的距离
2.每次改变LoU 时,要删除旧的待定,并设置一个新的。
3.随着LoU 的每次改变,改变活动LoU的参数
谢谢你的帮助。
我对最小值的计算就像你的照片中那样,出现了偏差。但后来我添加了LoY1的变量,它就停止了。
有标准函数iLowest和iHighest。
我对最小值的计算就像你的照片中那样,出现了偏差。但后来我添加了一个变量LoY1,它停止了这种游离。结果是,所有订单的开仓方式(按时间、金额和价格)与我原来的代码相同(也就是我想要的方式)。我的代码在另一个地方失败了 ....但我把它固定 在同一个地方。
你也可以从LoU的30点开始下挂单,而不是在市场上开盘。 这样你就不需要在每个tick上检查Bid。但在挂单的情况下,每当LoU 发生变化时,我们应该删除旧的挂单并设置一个新的挂单,或者改变当前挂单的参数而不删除它。而所有这些都应该比检查每一个Bid tick的频率低得多 。
在我的案例中,哪种变体在代码实现方面的耗时最少?
1.在每次打勾时检查投标 是否离LoU 有30个点的距离
2.每次改变LoU 时,要删除旧的待定,并设置一个新的。
3.随着LoU 的每一次改变,改变活动位置的参数
1)x不是int,是datetime(将来会很方便)。
2)你的初始代码没有挂单
3) 现在你的代码在每个tick上做更多的操作
检查您的信息
有标准的iLowest和iHighest 函数。
不是的......时间序列元素的数量不是恒定的
呃......它是否妨碍你找到高/低点?
呃......这是否妨碍你找到高/低点?
iLowest 和iHighest 函数意味着在一定数量的条形图(时间序列元素的数量)中搜索。
在这种情况下,这个数字是未知的,而且每次都在变化
1)x不是int,是datetime(将来会很方便)。
2)你的初始代码没有挂单
3) 现在你的代码在每个tick上做更多的操作
检查你的信息。
这是我的旧代码
这是我的新代码,与旧代码的时间段相同
对我来说,每个刻度的操作数远不如在这个数字上花费的时间重要。如果我没有记错的话,新的代码需要的时间少了25%....。
谢谢你的帮助。
这里有一个微妙的问题。首先我们设定尺寸,然后通过重置为零来释放固定,这并不改变尺寸。 没有其他的办法。
不过,它还是会在每一次打勾 时进行检查
和低点的计算得到偏离......滚回两格。
以下是我的原始代码,没有添加你的内容
下面是您的最新改进
也许if(TimeSeconds(TimeCurrent())==0)应该只适用于那些没有订单的部分,以及寻找下一个最小值的部分?
如果我没有弄错的话,由于你的功能,我的代码只在每分钟的蜡烛开始时才开始执行,这就是为什么它不能正确开仓。
谢谢你的帮助。
以下是我的原始代码,没有添加你的内容
以下是有你最新改进的代码
也许,if(TimeSeconds(TimeCurrent())==0)应该只适用于那些没有开仓的部分,并在其中寻找下一个低点?
如果我没有弄错的话,你的函数只在每分钟的蜡烛开始时开始执行我的代码。
谢谢你的帮助。