无效的请求--刚刚开始,想不明白...... - 页 6

 
-Alexey-:

为什么,我为自己写了一个,但为四个。

所以你个人写了一个通用库,脱离了EA的业务逻辑,可以在任何EA中使用?

我也不相信这一点。当然,服务器响应处理程序代码是存在的,但都在业务逻辑中,而不是作为一个通用库。

 
Renat:

所以你亲自写了一个通用库,与EA的业务逻辑分离,可以在任何EA中使用?

我也不相信这一点。当然,服务器响应处理程序代码是存在的,但都在业务逻辑中,而不是作为一个通用库。

是的,我可以证明这一点。当然,是为了一定数量的钱。
 
-Alexey-:
是的,我可以证明这一点。当然,是有代价的。

我的意思是,也没有适用于MT4的库。

要证明这一点并不难。

 
Renat:

也就是说,也没有适用于MT4的库。

要证明这一点并不难。

就是说,它确实存在。转账后,它将立即提供给你。但你在4号或5号中都没有。
 
Renat:

雷纳特,我有一种感觉,标准库的使用 属于合唱:"OOP或不OOP"。

否则我就不明白为什么人们会有强烈的信念,认为简化交易操作的OOP包装器不应该被使用。

有些人声称需要一个包装器来完成所有的逻辑,处理错误,重复查询等。而同时它的使用据说是危险的,每一行都有一个错误......

 
-Alexey-:
也就是说,它就在那里。

你没有。所有的错误都由业务逻辑处理。
你在MT4中使用同步性属性,这在一定程度上简化了处理过程,但你的方法并不能保证100%的所有情况。可能是95%,这纯粹是你的圣经,整个交易过程都是基于此。
但MT5在处理返回代码+异步方面要复杂很多倍。

你在要求一个包裹者做不可能的事。标准库不是商业逻辑。它是一个 "覆盖 "终端功能的封装器。覆盖在糖块馅料上的包装纸。
这是一个用户友好的界面,接管了一些常规的工作。接管同类的代码。你不会吃了一个纸包装,然后抱怨它为什么不能吃。:)

但包装者不能保证任何东西,因为你是充当担保人的人。你的商业逻辑。:)
就像打印功能不能保证自由磁盘空间和记录错误一样。你必须使用其他函数来处理错误,而且这些函数是针对特定情况的。


-Alexey-,让我们来聊一聊具体的缺陷,你说出你想解决的具体 缺陷。

如果你愿意,你可以浏览每个返回代码,看看主要的可能情况。

 
papaklass:


回答这些问题。
- 我为什么要把所有这些61种方法拖在我身后?它是理性的吗?

这个问题是在你是否需要OOP编程的平面。我不能明确地回答这个问题。
在我的实践中,我将OOP用于高级模型。
当然,我在我的基地里就在功能上使用了很多。

相应地,当我使用一个OOP类时,它包含了很多不必要的东西来完成某些特定的任务。 这就像kanvas绘图库的功能。有线条、方块和文字。但没有什么可争论的--这个班级是否应该有一个广场。它就在那里。对于一项特定的任务。


他们在一个班级内试图解决的问题太多了。

你错了。他们根本没有解决任何问题。他们把自己包裹在RUTINA 身边。这很难理解吗?


因此,错误处理应该是针对所有要解决的任务。

它不可能在那里。由于圣经并没有解决任何问题。它简化了RUTINE,仅此而已。 它不能做得更多,也不需要太复杂。

解决办法很简单:根据要解决的问题,将一个繁琐的班级分成几个小班级。
在这种情况下,我将只涉及那些适合我的战略的课程,而没有多余的东西。而且,实现错误处理将比现在容易得多。

好吧,这不是一个包罗万象的套路。它已经是一个具有你的 专家的特定逻辑的问题解决者。
你不能在一个单一的函数中提供错误处理--打开或关闭。总是发现1001种情况,当预期的错误不适合时,你必须做其他事情。

如果你知道一个适用于所有情况的通用函数,请出示。我甚至无法想象,在不知道某个特定EA的逻辑的情况下,怎么可能提前提供所有可能的错误处理。
即使我真的做了这样的功能--它与你最上面的所有话语-- "你又制造了太多的噪音 " 相矛盾。

而如果你应用你的方法,通过带有方向性的宏编写代码(ORDER_TYPE_BUY / ORDER_TYPE_SELL),那么类将是相当紧凑的。
它都在哪里?

但宏也没有 错误处理。 它们是由特定专家顾问的业务逻辑在特定错误中处理的。其实并不难理解,不存在普遍的情况。

如果Renat能学会听取论坛的建议,并努力掌握这些建议的含义,MT5在这个发展阶段已经远远领先于今天的水平。

雷纳特一直在重复--我们是在一个技术论坛。 我们不能在这里谈论抽象的东西。

因此,请给我们一些具体的信息。让我们考虑一下职权范围,他需要的交易功能 和可能出现的错误以及如何处理这些错误,好吗?

 
papaklass:

回答这些问题。

- 如果我只需要下一个市场订单,或一个挂单,为什么要把所有这些61种方法都拖在后面?它是理性的吗?

- 如果我有一个未平仓的头寸,只需要设置止损,为什么要用61种方法拖动所有这些功能?它是理性的吗?

- 如果我有一个带止损的未平仓头寸,当价格达到他们的水平时就会被触发,我为什么要拖动所有这些61种方法?它是理性的吗?

没有人禁止你。

  1. 不要使用别人已经写好的库形式的现成解决方案,而是从头开始写你自己的代码。
  2. 以修改后的类的形式重写一个已经准备好的库,从里面删除你认为 "多余 "的方法。
  3. 覆盖开箱即用的库中的方法,通过继承
 
papaklass:

"把交易 的操作分成不同的等级 "有什么意义呢?

这就像你有不同的EA用于开仓、平仓和修改一样。这似乎是可能的,但没有人这样做(除了极少数例外,特殊任务)。

而且我非常喜欢这句话:"如果我只需要下一个市价订单或挂单,为什么要拖着所有这些61种方法呢?这合理吗?"

那么,每个专家顾问将有大约100kb的内存开销。天啊...


顺便说一句,这里有一个投票 你使用标准库进行交易操作吗?

 
papaklass:

坦率地说,我不应该出来发表我的帖子。

不是没有原因的,我意识到我不是唯一一个不循规蹈矩的人 :) 在投票中--我已经表达了我的敬意