回溯测试中的伟大EA! - 页 112

 
BrazilianTrader:
对低建模质量的报告进行猜测的意义何在?

人们应该知道,在对虚拟结果作出决定之前,他们应该提高自己的建模质量。

即使是90%的回测结果也不太值得信任。

听起来很明智,机械师应该这样工作。

1.90%的回测。

2.模拟账户几个月。

3.真实账户。

4.盈利。

5.大笑。

我认为,我们不应该把所有的功劳给一个在50%的建模质量报告中 "工作非常好 "的EA。

好的观点

 
BrazilianTrader:
建模质量50.00%,听起来不好......

甚至90%都不够好,但如果前向测试得出好的结果,这就是我们需要去做的。

 

需要编码帮助...

我在这里需要一些帮助...我不明白为什么会这么困难。

我所想要的是一个基于几个条件的简单平仓指令。

这是短半场。还有一个与之对应的多头半价。

但是为什么这个代码...

int ExitMarket() // -------------------- Working the open orders -------------------

{

total = OrdersTotal();

for(int cnt = 0; cnt < OrdersTotal(); cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

// We search for orders opened by this code on our currency

if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)// if this code has an open order on this currency

{

if(OrderType() == OP_SELL) // If the obtained order is by the selling of the currency

{

if(Ask >= OrderStopLoss())// Closing order if it reached the level of the stoploss

{

OrderClose(OrderTicket(), OrderLots(), MODE_ASK , SlipPage, Violet); // Close the order

}

else

{

// We close when the direction reverses

if(ADX DIplus1 || Closing > LowerE)

{

total = OrdersTotal();

OrderClose(OrderTicket(), OrderLots(), MODE_ASK , SlipPage, Violet); // Close the order

Print("Patient1 closed short ticket ",OrderTicket()," on a reverse @: ",Ask," Orders remaining open: ",total," BECAUSE cls: ",Closing," > lwrE: ",LowerE," or ADX: ",ADX," DI+1: ",DIplus1);

total = OrdersTotal();

Print(" Orders remaining open: ",total);

}

else

{

Print("stays open");

}

}

}//ifsell

}//if order is open

}//fororders

return(0);

}//exitmarket [/PHP]

why does it produce this output?

[PHP]2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.272 Orders remaining open: 1 BECAUSE cls: 1.2718 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2719 Orders remaining open: 1 BECAUSE cls: 1.2717 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.272 Orders remaining open: 1 BECAUSE cls: 1.2718 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2718 Orders remaining open: 1 BECAUSE cls: 1.2716 > lwrE: 1.2715 or ADX: 31.5632 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2717 Orders remaining open: 1 BECAUSE cls: 1.2715 > lwrE: 1.2715 or ADX: 31.5632 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

这段代码从来没有满足过反转条件,却能打印出反转线?

而且即使它打印了反转线,也没有关闭头寸?

 

为什么人们要在这个EA上浪费时间? 它不可能在真实账户上运行。 你不会得到那种填充物的。

 
aegis:
为什么人们要在这个EA上浪费时间? 它不可能在真实账户上运行。 你不会得到那种填充物的。

缺少更好的东西吗?

就我个人而言,我是来学习的,我得到了很多编码经验和实践。如果目标是学习,那么对我来说就有很大的价值。然而,如果你有更好的EA让我 "浪费我的时间",....,我洗耳恭听。

btw如果你能解决这个编码问题,请随意。

https://www.mql5.com/en/forum/174700/page75

 
aegis:
为什么人们要在这个EA上浪费时间? 它不会在真实账户上工作。 你不会得到那种填充物的。

有趣的结论,"EA专家博士"...

我们想知道你对这个EA的真实经验,告诉我们它没有用...

或者至少,任何EA都是如此......

也许,这似乎是最有可能的,你对 "经典三步法 "的任何EA都没有经验,而且害怕用 "神奇的致富公式 "来编造你的希望,并感到失望;那么什么更容易呢? 当然是封锁我们的思想,说这个EA根本不起作用。

多么可悲。

有些人是来输钱的,有人会说。但他们是来学习和提高的,肯定是。

我们和你这样的人不一样,我们更喜欢测试、失败、改进、改变,一遍又一遍,重新设定我们的观点,相信坚实或灵活的策略,其中肯定包括 "接受变化"。

这个EA在真实账户 上可能看起来不工作,但我们在这里要让它工作。

 

看来我已经解决了我之前的编码问题。

现在留给我的是一系列新的问题和需要回答的问题。

我得出结论,由于该EA的交易方式,任何传统的指标都不可能真正帮助它。它的大部分交易都是在同一根柱子内进行的,所以没有任何趋势性指标会在柱子内跟踪它。作为一个反向交易者,典型的趋势指标对它没有什么帮助。

然而,仍有一条过滤交易的途径尚未被利用,即程序自身独特的决策逻辑。虽然这是一个相当艰巨的任务,但我相信在开发一个数据档案中,哪些网络参数构成了一个成功的交易,哪些构成了一个失败的交易,在网络逻辑中,有潜在的回报。

要做到这一点,我建议使用回溯测试器 在日志中生成cyberia在开立每个订单时接受的决定性参数,然后将所有获胜的交易和失败的交易分类到它们各自的组中,然后从对这两组的分析中看到是否有任何明显的区别性,可以安装和使用作为过滤参数。

我认为我之前发布的关于212度水温的电影片段在这里适用。现在这个交易在70-72%左右。这很好,但现在还没有相当的蒸汽。它很热,但它就像211度的水一样,还差一度才真正有用。我的目标是要达到这一度。这可能只意味着在它的赢/输比率上再增加几个百分点。如果它能达到80%,只要再增加十个百分点,那就很了不起了。现在它是一个很难坚持的项目,因为它似乎从来没有真正起飞过。(我的经验是)...

如果我继续学习这个课程,我想知道是否有其他人愿意协助我学习。我已经创建了一个版本的代码,在EA打开订单的时候打印出数据。在日志开始压缩输出和数据丢失之前,这将在日志中一次输出大约7到14个订单。这意味着要收集任何大量的数据,测试器需要重新启动很多次......除非有人教我如何让它把所有这些信息打印到一个文件中,而不是.....,我知道那是可能的,只是不知道如何做。

无论如何,我正在寻找拥有IBFX迷你账户的人,他们愿意作为这个项目的数据收集者,同时我开发一个电子表格来分析数据。如果你有兴趣,请通过邮件告诉我,并给我你的电子邮件地址,我将把我修改过的EA版本发给你,以输出数据。我还需要对它进行一次修改,但它几乎已经可以开始工作了。

我最感兴趣的数据是在我已经确定的塔型中的同一个柱子内出现的数据。我想先收集足够的测试数据,了解在这些时间内Cyberia的逻辑内部发生了什么,特别是。并不是说我认为其他的交易情况应该被忽视,但它们似乎没有那么大的潜力,所以我首先关注的是可能收益最高的领域....。

我想我已经和cybeira一起工作了足够多的时间,这些概率的东西已经开始在我身上磨灭了。

 

这里还有一个写文件的例子,就在MT编辑器里......

这将允许你记录到一个csv文件,根据你的需要修改输出。

int handle;

datetime orderOpen=OrderOpenTime();

handle=FileOpen("c:\cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

if(handle>0)

{

FileWrite(handle, Close[0], Open[0], High[0], Low[0], TimeToStr(orderOpen));

FileClose(handle);

}

我使用的是IBFX实盘交易,我可以为你在微型手进行实盘测试。但是,我的账户上还有其他的实盘交易,所以我必须把CT的结果单独拿出来。

请给我邮件地址

 

雇佣工程师 !!!!

Aaragorn:
看来我已经解决了我之前的编码问题。

现在,这给我留下了一系列新的问题和疑问需要回答。

我得出的结论是,由于该EA的交易方式,任何传统指标都不太可能真正帮助它。它的大部分交易都是在同一根柱子内进行的,所以没有任何趋势性指标会在柱子内跟踪它。作为一个反向交易者,典型的趋势指标对它没有什么帮助。

然而,仍有一条过滤交易的途径尚未被利用,即程序自身独特的决策逻辑。虽然这是一个相当艰巨的任务,但我相信在开发一个数据档案中,哪些网络参数构成了一个成功的交易,哪些构成了一个失败的交易,在网络逻辑中,有潜在的回报。

为了做到这一点,我建议使用回溯测试器在日志中生成cyberia在开立每个订单时接受的决定性参数,然后将所有获胜的交易和失败的交易分类到它们各自的组中,然后从对这两组的分析中看到是否有任何明显的区别性,可以安装和使用作为过滤参数。

我认为我之前发布的关于212度水温的电影片段在这里适用。现在这个交易在70-72%左右。这很好,但现在还没有相当的蒸汽。它很热,但它就像211度的水一样,还差一度才真正有用。我的目标是要达到这一度。这可能只意味着在它的赢/输比率上再增加几个百分点。如果它能达到80%,只要再增加十个百分点,那就很了不起了。现在它是一个很难坚持的项目,因为它似乎从来没有真正起飞过。(我的经验是)...

如果我继续这个课程,我想知道是否有其他人愿意协助我。我已经创建了一个版本的代码,在EA打开订单的时候打印出数据。在日志开始压缩输出和数据丢失之前,这将在日志中一次输出大约7到14个订单。这意味着要收集任何大量的数据,测试器需要重新启动很多次......除非有人教我如何让它把所有这些信息打印到一个文件中,而不是.....,我知道那是可能的,只是不知道如何做。

无论如何,我正在寻找拥有IBFX迷你账户的人,他们愿意作为这个项目的数据收集者,同时我开发一个电子表格来分析数据。如果你有兴趣,请通过邮件告诉我,并给我你的电子邮件地址,我将把我修改过的EA版本发给你,以输出数据。我还需要对它进行一次修改,但它几乎已经可以开始工作了。

我最感兴趣的数据是在我已经确定的塔型中的同一个柱子内出现的数据。我想先收集足够的测试数据,了解在这些时间内Cyberia的逻辑内部发生了什么,特别是。并不是说我认为其他的交易情况应该被忽视,但它们似乎没有那么大的潜力,所以我首先关注的是可能收益最高的领域....。

我想我已经和cybeira一起工作了足够多的时间,这些概率的东西已经开始在我身上产生了影响。

我准备好了,愿意并且能够帮助Aragorn。请查看 你的邮箱,查看 我的电子邮件地址

 

背面测试

Aaragorn,

你是否有可能修复cyberia,以便你可以在酒吧的开盘价上进行回测。目前这不起作用。

这是最可靠的回测方式。

阅读这篇文章。

https://www.mql5.com/en/code/9500

如果一个订单在同一个柱子上成交和退出,回测结果总是不可靠的,除非是在开盘时进场或在收盘时出场。这是因为不可能分辨出条形图中的价格行为。回溯测试将对条形图中发生的情况进行估计。有时,这种估计可能会导致在一个估计发生在出场前的价格上进行填充,但实际上是在出场后发生的。这可能导致在不可能的价格上补仓,特别是当市场向一个方向快速移动时。一些策略会无意中利用这些不可能的价格来产生不可能的结果。