Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
stap:
由于该问题与测试有关,必须考虑到以下因素。在测试 过程中会产生嘀嗒声序列。Tick序列是根据4个检查点(开盘价、最高价、最低价和收盘价)的历史买入值生成的。因此,在测试器中,专家顾问处理基于买入值产生的ticks。
第二点。目前,历史数据不存储价格值。只要看看"MQL5参考- 访问时间序列和指标 "部分的表格就知道了。在CopyClose()或CopyLow()等函数中,你找不到CopyLast()函数。因此,即使需要,也不可能根据价格值生成一个 tick 队列。
还可以尝试阅读MetaTrader 5的测试基础 和MetaTrader 5策略测试器的Tick生成算法 等文章。
既然问题是关于测试...
首先,感谢您的及时回复。你的信息原来是有用的,可以理解。
我已经检查过了,确实在订单中显示的执行价格之前就会触发止损单(存在真实交易的事实),因为卖价和买价都等于订单的执行价格。
因此,事实证明,终端不是通过已执行的交易价格,而是通过传入的卖出或买入报价的价格来控制挂单的执行。至少,它在EA测试 模式下是这样做的。如果我说错了,请纠正我。
此外,我决定进行一个小实验。任务是找出可用的历史卖价和买价,并用于测试专家顾问。输入:交易所 - FORTS,服务器 - 其中一个经纪人,仪器 - RIH3,期间从17.12.12到12.03.13,在策略测试器中测试了带有代码的专家顾问(在M1上以OHLC模式进行测试)。
结果很有趣。在不同的时间间隔内,卖出价和买入价的点差值原来是恒定的,从10到340点不等。例如,从13年2月20日10:00:00到13年2月25日18:49:59,每个钩子的价差是140点,从13年2月25日19:00:00到13年2月26日18:44:59,价差是30点,再从13年2月26日19:00:00到18:49:59,每个钩子是270点,等等。当然,我不是股票市场的猛男,但在流动的RTS期货中,140、270和更多的点差是非常罕见的。
因此,我唯一的结论是,对于在策略测试器中测试专家顾问,MT5终端/经纪商/证券交易所(我不知道还有谁)肯定不提供历史卖价和买价。
因此,出现了两个问题。
1.如果挂单将在测试模式下使用不符合实际价值的卖价和买价执行,如何可靠地测试EA(=交易策略)。如果我在FORTS终端Quik工作,我有一个坚定的信念,即挂单必须不在Ask和Bid价格上工作(也就是说,不用于交易的价格。 例如,对于一个低流动性的工具,我可以发送一个具有巨大价差的价格给滑块),但只有当真正的交易是以订单中提到的价格作为执行价格时,才能进行。
2.如果测试模式下的卖出价和买入价在历史上并不可靠,那么在真实交易模式下的挂单执行将被监控--也是在卖出价和买入价上?它们是否真实可靠,即来自交易所?如果终端手册中说:"在具有 "交易所执行 "模式的符号中,所有订单类型的执行都是按最后价格(最后执行的交易价格)进行的",那么为什么具有交易所执行模式的符号的测试模式显示挂单在其属性中按买入和卖出价格执行?还是只在测试模式下,在实际交易中会像手册中描述的那样,即挂单会被控制/执行在实际执行的交易价格上?
我为写得太多而道歉,我想我应该分享我的想法,也许有人会发现它对历史有用...
你知道,由于缺乏俄罗斯股市的平台版本,我还没有监测到交易所执行模式下的终端操作。但是,我可以立即提出将关于交换执行模式下的终端 操作和交换执行模式下的测试器 操作的问题进行划分。
为了检查当终端在交易所执行模式下工作时,"所有订单类型 在最后价格下工作 "这一说法的正确性,请尝试(我还想不出更好的办法)在当前报价的上方和下方放置几个挂单,同时运行你的上述代码。并尝试直观地跟踪订单在哪个价格(买入、卖出或最后)被执行。
谈论 "历史问价值 "是不太正确的。我昨天写道,根据某些保存的出价值,生成一个刻度线系列。另一方面,卖出价很可能是根据买入价和价差值来建模的。例如,正如你在M1的OHLC模式下测试的那样,这里只是简单的ask==bid+spread。
我不知道RTS期货的性质,因此我不能对 "点 "差进行评论。但以欧元兑美元为例,一个点是0.00001。
你是否让它变得更简单。开发人员知道针对你的情况的正确答案。因此,在你的个人资料中找到 "服务台 "部分,要求他们介绍在交易所执行模式下以最后价格处理挂单的 可能性(根据MT5手册)。稍微描述一下你的情况,看看反应。也许一切都已经在我们面前想好了 :)
谢谢你的有见地的评论和建议!
经纪商BCS和Otkritie已经提供了通过MT5终端在俄罗斯证券交易所(迄今为止只有FORTS期货和期权市场)进行交易的可能性。
如何在私信 中设置屏蔽?
从你自己身上?))
从你,而不是在信号处打开电脑,再次看到舔食者。