新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1468 1...146114621463146414651466146714681469147014711472147314741475...1953 新评论 ANDREY 2021.05.18 18:06 #14671 大家好。 我在mql4中写了一个简单的代码,每当价格从最近的本地最低点上升30点时,就在分钟图上开一个订单。开单后,当地的低点成为订单的开仓价。 void OnTick() { if (Bid<LoU) LoU=Bid; //******************** if (Bid-LoU>=0.0030&&Pr!=LoU) { OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0); Pr=LoU; LoU=Bid; } } 我不喜欢我的代码是什么.....它几乎必须在每一个刻度上执行。我可以改进这段代码,它将不会在每个tick上执行,而是在几乎每分钟的蜡烛上执行。这意味着程序必须做大量的工作,以找到订单的开启点。Q:能否请您提出一种语言结构,帮助我找到代码中提到的订单的开仓点,而不需要尝试点位或蜡烛图,或者尽可能少的尝试,即让程序在寻找开仓点上花费尽可能少的时间。谢谢你的帮助。 Tretyakov Rostyslav 2021.05.19 05:40 #14672 ANDREY: 大家好。我在mql4中写了一个简单的代码,每当价格从最近的本地最低点上升30点时,就在分钟图上开一个订单。开单后,当地的低点成为订单的开仓价。 我不喜欢我的代码是什么.....它几乎必须在每一个刻度上执行。我可以改进这段代码,它将不会在每个tick上执行,而是在几乎每分钟的蜡烛上执行。这意味着程序必须做大量的工作,以找到订单的开启点。Q:能否请您提出一种语言结构,帮助我找到代码中提到的订单的开仓点,而不需要尝试点位或蜡烛图,或者尽可能少的尝试,即让程序在寻找开仓点上花费尽可能少的时间。谢谢你的帮助。 //+------------------------------------------------------------------+ int OnInit() { LoU=Bid; } //+------------------------------------------------------------------+ void OnTick() { if ((Bid+30*Point)<=LoU) { if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Bid; } } ANDREY 2021.05.19 05:59 #14673 MakarFX: 谢谢你的帮助。 但我的代码的结果和我的不一样。 这是我在GBPUSD一分钟图表上的代码结果,时间为2010年1月4日到2010年1月5日。 而这是你的代码的结果 Tretyakov Rostyslav 2021.05.19 06:17 #14674 ANDREY:谢谢你的帮助。但我的代码的结果和我的不一样。 这是我在GBPUSD一分钟图表上的代码结果,时间为2010年1月4日到2010年1月5日。 这是你的代码的结果 显示代码 OnInit() ANDREY 2021.05.19 06:34 #14675 MakarFX:给我看看OnInit()的代码。 double LoU; int OnInit() { LoU=Bid; } //+------------------------------------------------------------------+ void OnTick() { if ((Bid+30*Point)<=LoU) { if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Bid; } } 我刚刚把你的代码复制到MetaEditor,得到的结果就是上面的。 你的代码打开一个订单并向下计数30点(黄色),而我的代码向下计数(蓝色)。 谢谢您的帮助 Tretyakov Rostyslav 2021.05.19 06:41 #14676 ANDREY:我只是把你的代码复制到MetaEditor中,得到了上面的结果。谢谢你的帮助。 我需要你的代码来理解这一点。 在你的代码中,如果价格下跌,LoU会在每个tick 上改变,但在我的代码中,LoU只在开仓后改变。 ANDREY 2021.05.19 06:47 #14677 MakarFX:我需要你的代码来理解重点是什么。在你的代码中,如果价格下跌,LoU在每个tick 上都会改变,而我的LoU只在交易开始后才改变。你有30个点在错误的一边。我在之前的帖子中添加了一张图片,而我的代码在第一篇帖子中。 只要价格超过当地最低点的30点,*底向上* - 开立一个订单。而我的代码完全按照我的需要打开了订单。但我希望它在这方面花费的时间最少。 在我的代码中,同意LoU在每个订单打开后的每一个tick上发生变化。没有它,程序将无法找到最近的局部最低点,我们应该从那里计算30点。我正在努力寻找解决方案,所以LoU不会在每个tick或每分钟的蜡烛上发生变化,但订单会在我的代码中打开的地方打开。 Tretyakov Rostyslav 2021.05.19 06:51 #14678 ANDREY:我只是把你的代码复制到MetaEditor中,得到了上述结果。你的代码打开订单并向下计算30点(黄色),而我的代码向上计算(蓝色)。 谢谢您的帮助 我的错误......更换 double LoU; int OnInit() { LoU=Bid; } //+------------------------------------------------------------------+ void OnTick() { if ((Bid-30*Point)>=LoU) { if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Bid; } } ANDREY 2021.05.19 06:56 #14679 MakarFX:我的错误......更换 谢谢你的帮助。 我做到了。它打开了大量的订单(27657个订单),其中有我需要的订单。 以下是初始订单的截图 ANDREY 2021.05.19 07:10 #14680 MakarFX:我的错误......替换 这是你的代码,其中有改动的一行。double LoU; int OnInit() { LoU=Bid; } //+------------------------------------------------------------------+ void OnTick() { if ((Bid+30*Point)>=LoU) { if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Bid; } } 我怎样才能使代码只打开所需的订单? 1...146114621463146414651466146714681469147014711472147314741475...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我在mql4中写了一个简单的代码,每当价格从最近的本地最低点上升30点时,就在分钟图上开一个订单。开单后,当地的低点成为订单的开仓价。
我不喜欢我的代码是什么.....它几乎必须在每一个刻度上执行。我可以改进这段代码,它将不会在每个tick上执行,而是在几乎每分钟的蜡烛上执行。这意味着程序必须做大量的工作,以找到订单的开启点。
Q:
能否请您提出一种语言结构,帮助我找到代码中提到的订单的开仓点,而不需要尝试点位或蜡烛图,或者尽可能少的尝试,即让程序在寻找开仓点上花费尽可能少的时间。
谢谢你的帮助。
大家好。我在mql4中写了一个简单的代码,每当价格从最近的本地最低点上升30点时,就在分钟图上开一个订单。开单后,当地的低点成为订单的开仓价。
我不喜欢我的代码是什么.....它几乎必须在每一个刻度上执行。我可以改进这段代码,它将不会在每个tick上执行,而是在几乎每分钟的蜡烛上执行。这意味着程序必须做大量的工作,以找到订单的开启点。
Q:
能否请您提出一种语言结构,帮助我找到代码中提到的订单的开仓点,而不需要尝试点位或蜡烛图,或者尽可能少的尝试,即让程序在寻找开仓点上花费尽可能少的时间。
谢谢你的帮助。
谢谢你的帮助。
但我的代码的结果和我的不一样。
这是我在GBPUSD一分钟图表上的代码结果,时间为2010年1月4日到2010年1月5日。
而这是你的代码的结果
谢谢你的帮助。
但我的代码的结果和我的不一样。
这是我在GBPUSD一分钟图表上的代码结果,时间为2010年1月4日到2010年1月5日。
这是你的代码的结果
显示代码 OnInit()
给我看看OnInit()的代码。
我刚刚把你的代码复制到MetaEditor,得到的结果就是上面的。
你的代码打开一个订单并向下计数30点(黄色),而我的代码向下计数(蓝色)。
谢谢您的帮助
我只是把你的代码复制到MetaEditor中,得到了上面的结果。
谢谢你的帮助。
我需要你的代码来理解这一点。
在你的代码中,如果价格下跌,LoU会在每个tick 上改变,但在我的代码中,LoU只在开仓后改变。
我需要你的代码来理解重点是什么。
在你的代码中,如果价格下跌,LoU在每个tick 上都会改变,而我的LoU只在交易开始后才改变。
你有30个点在错误的一边。我在之前的帖子中添加了一张图片
在我的代码中,同意LoU在每个订单打开后的每一个tick上发生变化。没有它,程序将无法找到最近的局部最低点,我们应该从那里计算30点。我正在努力寻找解决方案,所以LoU不会在每个tick或每分钟的蜡烛上发生变化,但订单会在我的代码中打开的地方打开。,而我的代码在第一篇帖子中。 只要价格超过当地最低点的30点,*底向上* - 开立一个订单。而我的代码完全按照我的需要打开了订单。但我希望它在这方面花费的时间最少。
我只是把你的代码复制到MetaEditor中,得到了上述结果。
你的代码打开订单并向下计算30点(黄色),而我的代码向上计算(蓝色)。
谢谢您的帮助
我的错误......更换
我的错误......更换
谢谢你的帮助。
我做到了。它打开了大量的订单(27657个订单),其中有我需要的订单。
以下是初始订单的截图
我的错误......替换
这是你的代码,其中有改动的一行。
我怎样才能使代码只打开所需的订单?