新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 170

 
Sergey Gritsay:

CodeBase 中有大量的例子,寻找关于挂单的专家顾问,看看代码是怎么写的。

我在CodeBase 中搜索了大约一个小时,没有找到任何可以理解的东西。这对我来说太复杂了。这些代码对我来说太大,难以理解,而我所需要的只是几个4-6行的代码。谢谢你的答复,但这并不适合。
 
maxon777:

我在挂单(即如果价格是0.7777,则开立挂单)

2) 当订单(市价订单)达到任何数值时关闭订单(即如果价格是0.6666,则关闭订单)。

获得4-6行代码的答案?

你是那些写道:"有什么可做的?它只需要几行字...一百英镑算什么?"

让我们把话说清楚。

你必须首先确定价格已经达到0.7777。它是否达到了顶端?底下?如果前一个跳动点是0.7776,而当前的跳动点是0.7778,这是否可以?在这种情况下,价格将不等于0.7777的值。因此,你必须检查过去的值和当前的值是否有相交的需要。相应地,你必须存储前一个tick的值并知道当前tick的值。这意味着--你需要一个函数来获取tick的值并存储它的值,这样你以后就有东西可以与之比较--三个价格:前一个tick,当前tick和交叉价格本身。

更进一步。我们需要知道价格将在哪个方向越过必要值,相应地,我们需要在必要的价格上设置必要类型的挂单。

要设置它,我们需要从当前价格计算出设置的价格,将获得的挂单设置距离与StopLevel值进行比较,如果获得的距离小于该值,那么:a) 纠正订单设置距离,以免达到误差130,并设置订单,或者b) 等待,直到设置距离超过StopLevel(与浮动点差,我们也应该在每个tick上收到),看看价格是否已经越过预设水平,如果它在正确值上-即如果StopLevel已经设置,我们可以设置订单。е.,它已经离开该层下了一个订单,或者火车已经离开。

你还需要计算挂单的止损和取值,这些值不能低于StopLevel(如有必要,请纠正)。
如果所有的检查都通过了,应该向服务器发送一个订单,设置一个待定的订单,得到一个回复--如果回复中包含一个错误,则处理它(需要另一个函数)...

这是针对待处理的订单。

对于平仓来说,情况大致相同--识别交叉点,发送交易指令,并在出现错误的情况下处理服务器的响应。


如果你能在4-6行中完成这些工作,那么......。你会 在仓库里得到 一枚奖章...;)

 
我觉得经过这样的解释,就少了一个程序员新手))))。
 
Andrey Koldorkin:
我觉得经过这样的解释,就少了一个程序员新手))))。
 

伙计们,valuta中的(.e)是什么,请解释一下。

 
你需要的代码部分是一个可靠的多货币追踪止损,从设定的收支平衡点和设定的价格后退一步开始。
 
Vitaliy29:
你需要一个代码部分--一个可靠的多货币追踪止损,从设定的收支平衡点和设定的价格缩进开始。

请看这个,http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=62

Автоматизация торговли на финансовых рынках - Скачать e-Trailing2.rar
  • www.kimiv.ru
Оглавление файлового архива  Разработки на MQL4 Советники   Новая улучшенная бесплатная версия "кимовского трала". Добавлен параметр Magic, позволяющий более гибко отбирать сопровождаемые позиции, а также разделены параметры трала для покупок и продаж. Кроме того, вместо параметра ProfitTrailing теперь используется TrailingStart. Это почти то...
 
Artyom Trishkin:

你要回答这个问题。

1) 在达到任何数值时开立挂单(即如果价格是0.7777,则开立挂单)

2) 当订单(市价订单)达到任何数值时关闭订单(即如果价格是0.6666,则关闭订单)。

获得4-6行代码的答案?

你是否属于那些写道:"有什么好做的?它只需要几行字...一百英镑算什么?"

让我们把话说清楚。

你必须首先确定价格已经达到0.7777。它是否达到了顶端?底下?如果前一个跳动点是0.7776,而现在的跳动点变成了0.7778,这是否可以?在这种情况下,价格将不等于0.7777的值。因此,你必须检查过去的值和当前的值是否有相交的需要。相应地,你必须存储前一个tick的值并知道当前tick的值。这意味着--你需要一个函数来获取tick的值并存储它的值,这样你以后就有东西可以与之比较--三个价格:前一个tick、当前tick和交叉价格本身。

更进一步。我们需要知道价格将在哪个方向越过必要值,相应地,我们需要在必要的价格上设置必要类型的挂单。

要设置它,我们需要从当前价格计算出设置的价格,将获得的挂单设置距离与StopLevel值进行比较,如果获得的距离小于该值,那么:a) 修正订单设置距离,以免达到误差130,并设置订单,或者b) 等到设置距离超过StopLevel(与浮动点差,我们也应该在每个tick上收到),看看价格是否已经越过预设水平,如果它在正确值上-即如果停止水平被设置,我们可以设置订单。е.,它已经离开该层下了一个订单,或者火车已经离开。

您还需要计算挂单的止损和止盈值,它们不应低于止损水平(如有必要,可进行修正)。
如果所有的检查都通过了,应该向服务器发送一个订单,设置一个待定的订单,得到一个回复--如果回复中包含一个错误,则处理它(需要另一个函数)...

这是为待处理的订单。

平仓也是如此--识别交叉点,发送交易指令,并在出现错误的情况下处理服务器的响应。


如果你能在4-6行中完成这些工作,那么......。你会 在仓库里得到 一枚奖章...;)

"你是那种说 "有什么可做的?这只是几行字而已...一百英镑算什么?"不,我不是那种人,我不明白为什么你认为我是一个顾客。我想学习这个程序,因为我对专家顾问有想法,其实施中的问题只是技术性的(我并不质疑这些问题非常大),但我并不是想说 "让我所有的软件和它的工作只有利润 "这样的话。相反,我从基础知识开始,我想写我的第一个专家顾问。我还写道,我想要一个非常简单的例子,不考虑所有的细节(尽管我明白它们非常重要),但我必须从某个地方开始。我知道让专业人士看我的要求会很痛苦,但我没办法,只要是我知道的就行。我想我可以借助if else操作符和OrderSend(OrderClose)函数以及其他一些东西来写这样一段代码,但我做不到。你写了很多复杂的术语,从而告诉我,我什么都做不了,是个编程的白痴,但我还是知道。我希望你不要认为我是一个傲慢的人,理解我只是想继续学习。但你也是对的,我希望已经找到了一个妥协的办法。
 
maxon777:
"你是那种说:"有什么可做的?这只是几行字而已...一百英镑算什么?"不,我不是那种人,我不明白为什么你认为我是一个顾客。我想学习这个程序,因为我对专家顾问有想法,其实施中的问题只是技术性的(我并不质疑这些问题非常大),但我并不是想说 "让我所有的软件和它的工作只有利润 "这样的话。相反,我从基础知识开始,我想写我的第一个专家顾问。我还写道,我想要一个非常简单的例子,不考虑所有的细节(尽管我明白它们非常重要),但我必须从某个地方开始。我知道让专业人士看我的要求会很痛苦,但我没办法,只要是我知道的就行。我想我可以借助if else操作符和OrderSend(OrderClose)函数以及其他一些东西来写这样一段代码,但我做不到。你写了很多复杂的术语,从而告诉我,我什么都做不了,是个编程的白痴,但我还是知道。我希望你不要认为我是一个傲慢的人,理解我只是想继续学习。但你也是对的,我希望已经找到了一个妥协的办法。

没有人说你是 "傻瓜",这不是真的。但是,同样是4-6行代码,你知道,会引起困惑--因为如果一个人学会了什么,他一定已经在尝试什么,他已经尝试过写什么,并且清楚地看到4-6行不适合它。

向我们展示你试图做的事情--让我们试着去理解。

我可以提出一个替代的、简化的版本--不要用ticks来寻找价格水平的交叉点,而用MA(1)来寻找--那么bar 1上的MA和bar 0上的MA将作为必要的水平交叉点的指标。

 
Sahet.Sh:

伙计们,valuta中的(.e)是什么,请解释一下。

这是给经纪人的问题,请随时联系支持。只有他知道他的.e后缀到底意味着什么。 这是他的决定。一般来说,货币对和其他工具名称中的后缀(以及前缀)可以表示任何意思:ie - 即时执行,m -市场执行,dot - 报价和佣金中的五位数,_OP - 交易二元期权的工具,...但当然,这只是经纪人的决定,他才是找出他所介绍的指定含义的最终权威。
原因: