错误、漏洞、问题 - 页 147

 
Vladix:

在mql5中是否有可能跟踪一个未结头寸的状态,比如说,它现在正在被关闭?

...

但是,下一个tick来了,所有上述步骤都要重复,选择仓位,获取成交量,再在收盘方向上放置一个仓位。

怎样才能避免这种情况?

没有什么需要做的。在当前的tick被OnTick()函数处理之前,所有进入的tick被跳过。

仓位实时发生的情况,可以用OnTrade()函数来追踪。

Обработка торговых событий в эксперте при помощи функции OnTrade()
Обработка торговых событий в эксперте при помощи функции OnTrade()
  • 2010.06.01
  • KlimMalgin
  • www.mql5.com
В 5-ой версии языка MQL появилась масса нововведений, в том числе работа с событиями различных типов (события таймера, торговые события, пользовательские и т.д.). Возможность обработки событий позволяет создавать совершенно новый тип программ для автоматического и полуавтоматического трейдинга. В этой статье мы рассмотрим торговые события и напишем для функции OnTrade() код, который будет обрабатывать событие Trade.
 
Valmars:

没有必要做任何事情。只要当前的tick没有被OnTick()函数处理,所有新到的tick都被跳过。

可以用OnTrade()函数来跟踪实时发生的头寸情况。

如果不是因为请求的异步执行,一切都会好起来。但是,当一个tick出现时,该头寸就被关闭了,而当下一个tick出现时,该头寸仍在列表中,那么我们如何理解该头寸是开仓、开张还是关闭?如何处理贸易事件?我认为,一个基本的操作不应该如此复杂。

理想的情况是,当试图关闭一个头寸时,它得到的状态是 "关闭 "或 "处理中 "或其他,通过这个状态可以确定它目前正在进行某种行动,然后就可以问心无愧地离开。

而现在,你必须翻阅大量的历史,了解一切是如何发生的,而且不能保证一切都会正确。

 
Vladix:

如果不是因为请求的异步性,一切都会很好。但是,当一个tick到来时,该仓位被关闭,而当下一个tick到来时,它们仍然在列表中,那么我们如何理解它们是开仓还是平仓?如何处理贸易事件?我认为,一个基本的操作不应该如此复杂。

理想的情况是,当试图关闭一个头寸时,它会得到一个 "关闭 "或 "处理 "状态或其他什么,这将表明它目前正处于某种行动过程中,然后就可以问心无愧地离开。

而现在,你必须翻阅大量的历史,了解一切是如何发生的,而且不能保证一切都会正确。

不要在每一个tick上开仓-平仓,在每一个交易操作 后做一个延迟。
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
EQU:

为什么...谁能说NewBar不是一个事件?)))))))))

OnNews - 新闻来了,机器人必须阅读它...正式的。而不是通过以左手的方式戳穿WinAPI。

1.NewBar - 一个你可以自己实现的事件。这可能是他们的建议。我曾经问过关于连接的问题,答案很简单:你必须自己去实现它。

这不是一个问题--我实施了它,现在我试图在计时器的帮助下跟踪几乎所有我需要的东西(我已经有大约30个事件)。当我完成后,用户不能改变我感兴趣的任何参数,这样,专家就不知道了。

2.OnNews - 这个想法总体上是可以理解的,你可以加入。虽然,开发商可能会指出News.wav的存在。

虽然,我长期以来一直向开发商寻求通过与经济新闻和其他FA的日历合作的可能性来扩展语言的功能。你认为他们会做对一切吗?我不这么认为。

这次我已经递交了申请,希望还在。如果一个专家能自己做一些工作就好了......

Документация по MQL5: Основы языка / Функции
Документация по MQL5: Основы языка / Функции
  • www.mql5.com
Основы языка / Функции - Документация по MQL5
 
Vladix:

如果不是因为异步请求,一切都会很好。但是,当一个tick到来时,该仓位被关闭,而在下一个tick时,它们仍然在列表中,我们如何理解它们是开仓、开张还是关闭?如何处理贸易事件?我认为,一个基本的操作不应该如此复杂。

理想的情况是,当你试图关闭一个头寸时,它得到的状态是 "关闭 "或 "处理中 "或其他什么,你可以据此确定它目前正处于某种行动过程中,然后就可以问心无愧地离开。

而现在,你必须翻阅大量的历史,了解一切是如何发生的,而且不能保证一切都会正确。

即使是现在,如果你知道如何去做,也可以轻松完成。开发人员已承诺重写OnTrade(),在那里添加必要的参数。如果做到了,处理起来将更加容易。

没有人阻止在现场处理这种情况,在OnTick()或OnTime()中--在交易操作 的地方;或者在OnTrade()中,如果你想捕捉用户行为或不直接由代码控制的交易操作。

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
Interesting:

1.NewBar - 一个你可以自己实现的事件。这可能是他们的建议。我曾经问过关于连接的问题,答案很简单--你应该自己实施。

...

我对如何看待OnNewBar有点模糊...)

OnNewBar(ulong Param), 其中Param - 在时间框架的位置上以比特方式填入1的新条...- 并非所有的图表都是按条数 同时更新...

例如......。

...00001 - 只更新了一分钟

...00111 - 只有一分钟,2和3被更新...以此类推...

这只是一个想法,但我认为这将是有用的。虽然......?;)

 
EQU:

我对如何看待OnNewBar有点模糊...)

OnNewBar(ulong Param), 其中Param--在时间框架的位置上填充1个新条...- 并非所有的图表都按条数 同时更新...

例如......。

...00001 - 只有分钟被更新。

...00111 - 只有一分钟,2和3被更新...等等...

这只是一个想法,但我认为这将是有用的。虽然......?;)

在牺牲参数的情况下,有必要进行思考。是否值得这样做(可能,把TF作为ENUM_TIMEFRAMES 放在那里更容易)?

至少,我想做这样的事情,但后来我放弃了......。

PS

我忘了告诉你,我想在Chart类中编造OnNewBar,我现在正在做这个工作(目前我还在收拾那里的标准东西+我自己的愉快的琐事)。

只是不要问我为什么不喜欢 标准的 CChart...:)

 

如果你需要跟踪一个新的酒吧,看看我的代码。它可能会派上用场。我已经尝试了不同的变体--这个方法是最可靠的。

https://www.mql5.com/ru/code/107

isNewBar
isNewBar
  • 投票: 7
  • 2010.05.07
  • Prival
  • www.mql5.com
Функция анализа появления нового бара на заданном таймфрейме.
 
Prival:

如果你需要跟踪一个新的酒吧,看看我的代码。它可能会派上用场。我已经尝试了不同的变体--这个方法是最可靠的。

https://www.mql5.com/ru/code/107

与符号周期 SERIES_LASTBAR_DATE 相比,最后一棒的打开时间有什么问题 ?比你的版本容易得多,而且你不需要一个指标。


此外,对于一个多货币EA来说,应该为每个符号定义一个新的条形图,这意味着我们应该为所有符号初始化指标。

 
Prival:

如果你需要跟踪一个新的酒吧,看看我的代码。它可能会派上用场。我已经尝试了不同的变体 - 这个方法是最可靠的

https://www.mql5.com/ru/code/107

再次--代码...代码...。代码是好的......但战术也是好的,循环......。;)

图表没有收到创建新条形图的信息吗?我不相信......)))。

把它做成一个事件有问题吗? 至少是一个预定义的变量吗?

而且一般来说--处理事件要比填充堆积如山的代码要容易。此外--有错误(无错误的程序永远不会!!!)))))