编码帮助 - 页 40

 

谢谢mladen。

我现在已经完成了我的代码(感谢你的帮助),它工作得非常好。我的代码是根据我过去几年对H4和D1图表的手动交易编写的。我正在考虑分散我的风险,有两个账户,一个交易长期图表,另一个交易短期图表的独立账户。所以我想调整这个代码,以适应M5和M15图表。我知道策略可以在一个时间框架上工作,但不能在另一个时间框架上工作,而且我注意到短线图表的随机性更大,不太尊重S/R,容易出现长时间的盘整。

我想知道你是否有关于短线策略的任何提示--我正在考虑的一些事情是让EA检查 多个符号以寻找最佳机会,而不是只有一个符号,还可能添加一个MVA,在较高的时间框架上创造总共3个趋势的稳定性,并可能添加一段代码,在盘整区域停止交易(例如如果最后50个柱子在50点范围内)。也可能只在价格低于/高于唐氏通道的中线时进行交易,甚至检查芯的高度。

 

...

所有,只有一个 "警告":在metatrader中,没有办法对多符号交易的EA进行回测。所以,如果你打算这样做,你要得到一些可靠的结果的唯一方法是通过长时间的正向测试。

即使在正常的测试中,正向测试也是唯一真正可以接受的形式(由于metatrader反向测试的一些问题:完全缺乏历史买入价、卖出价和隐含价差,缺乏掉期、佣金和所有与之相关的东西,以一种相当奇怪的方式模拟的ticks,...等等...),但人们很少这样做,因为它需要时间和奉献精神。如果你真的想开发一个你想依赖的系统,那么只有正向测试可以考虑。

所以这将是唯一的提示。策略:人们有1000种交易方式,很多人都以这种方式为生,所以不存在 "唯一 "的方法。试试你自己的方法,通过预先测试,你甚至可能发现你已经有了一个成功的系统。

crsnape@btinternet.com:
谢谢mladen。

我现在已经完成了我的代码(感谢你的帮助),它运行得非常好。我的代码是基于我在过去几年中对H4和D1图表的手动交易而编写的。我正在考虑分散我的风险,有两个账户,一个交易长期图表,另一个交易短期图表的独立账户。所以我想调整这个代码,以适应M5和M15图表。我知道策略可以在一个时间框架上起作用,但不能在另一个时间框架上起作用,而且我注意到短线图的随机性更大,不太尊重S/R,容易出现长时间的盘整。

我想知道你是否有关于短线策略的任何提示--我正在考虑的一些事情是让EA检查多个符号以寻找最佳机会,而不是只有一个,也可能添加一个MVA,在更高的时间框架上创造总共3个趋势的稳定性,也可能添加一段代码,在盘整区域停止交易(例如如果最后50个柱子在50点范围内)。也可能只在价格低于/高于唐氏通道的中线时进行交易,甚至检查芯的高度。
 

谢谢mladen的建议。

我的EA有一个奇怪的问题。当我在H4图表上进行回测时,它应该这样做。然而,当我在H1图表上进行回测时,它加载的是日志中的输入(TimingChart = 240和TrendChart 1440),而不是TimingChart 60和TrendChart 240(我已经改变了代码中的外部变量,也确保了将EA连接到图表时输入是正确的。但它仍然加载错误的时间框架)。在日志中出现了一大堆问题,包括OrderModify错误1和ordersend错误130,零分叉,当我在H4图表上测试时,这些问题并不存在。除了改变外部变量,我没有改变测试之间的代码,我只能推测是输入产生了错误。PS(对于错误130,我的经纪人的SL最低为0)。

我还想澄清一下,我把我的EA连接到H1图表上,只是为了确保,而且在策略测试器 的下拉菜单上选择H1。我也关闭了MT4并重新加载,看是否能解决问题,但不幸的是没有。

有什么想法吗?

 

嗨,谁能告诉我,如果我正在处理一个订单,但我不想输入止盈水平(或任何其他参数),我是否只需插入0?

另外,如果我不想改变其中的一个输入,那么OrderModify()怎么办?如果在订单结束时没有输入止损水平,是否仍然是OrderStopLoss()还是插入其他参数?

谢谢。

 

...

止盈、止损、滑点和神奇数字参数而言,是的。

有些参数有不同的避免方式:例如,颜色0是黑色的,所以你必须在这个地方使用CLR_NONE。另外,如果需要字符串,请使用NULL(更容易发现,也是metatrader中的通常做法)。

crsnape@btinternet.com:
你好,谁能告诉我,如果我正在处理一个订单,我不想输入止盈水平(或任何其他参数),我是否可以简单地插入0?
 

你好mladen,在OrderModify中,如果我想保持原来的OrderSend中的输入,我是否要输入,比如说止损,OrderStopLoss()?如果在OrderSend中没有输入止损,我是否要插入0还是OrderStopLoss()呢?

谢谢

 

如果最初没有止损 单,OrderStopLoss()将返回0,所以结果是一样的。

crsnape@btinternet.com:
你好,在OrderModify中,如果我想保持OrderSend中的原始输入,我是否要输入,比如说止损,OrderStopLoss()?如果在OrderSend中没有输入止损,我是否要插入0或者仍然是OrderStopLoss()? 谢谢
 

在订单结束的情况下,滑点是指价差值 吗?

 

我注意到滑点是MQL4书中允许的最大滑点。最大滑差的代码是单独写的吗?

 

...

没有

这是一个最大的价格滑移,你(用户)将接受经纪人在订单打开执行时的价格滑移

一个例子:

价格1.0000,允许滑点0,订单必须在1.0000打开,或者,如果它不能在这个确切的价格打开,你会得到一个重新报价

价格1.0000,允许滑点3,订单可以在0.9997和1.0003之间的任何地方打开。

crsnape@btinternet.com:
在订单结束的情况下,滑点是指点差值吗?
原因: