程序库: BestInterval - 页 22

 
fxsaber:

如果您将 MT4Orders 放在 BestInterval 之前,它就会正常工作。

该库只涉及交易操作及其历史记录。此外,它还可以与 SB 和其他库并行工作。

因此,指标不会对其产生任何影响。

我明白了,谢谢,我会试试的。
 
fxsaber:

净额计算中的 BestInterval 只在一种特定情况下(为我自己制作的)正确使用交易历史记录。

如果这不是秘密,那是什么情况呢?也许我可以用类似的方法,而不用萨满教。

 
traveller00:

如果不是秘密,是什么情况?我也许可以使用类似的方法,而不需要任何萨满教。

变形 TC

 
fxsaber:

我无法回答。我还不知道。

说我很高兴显然是轻描淡写.....BestInterval 现在棒极了。而且改动很小。还是老样子,举个例子。


下面是一个 24 小时通行证。


我们应用经典的 BestInterval。

Profit = 8018.00 = 8018.00 + 0.00 (0.00%) - Amount of Delete Intervals = 0 (2019.09.14 - 2019.12.04)
00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09
SUMMARY: 00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09

Profit = 10721.00 = 8018.00 + 2703.00 (33.71%) - Amount of Delete Intervals = 1 (2019.09.14 - 2019.12.04), 13:00 - 08:00, CountHours = 18
00:00:00 - 08:03:48 : Profit = 3278.00 (30.58%), Total = 161 (79.50%), PF = 2.21, Mean = 20.36, DD = 518.00, RF = 6.33
13:07:59 - 23:59:59 : Profit = 7443.00 (69.42%), Total = 389 (74.55%), PF = 2.14, Mean = 19.13, DD = 417.00, RF = 17.85
SUMMARY: 00:00:00 - 23:59:59 : Profit = 10721.00 (100.00%), Total = 550 (76.00%), PF = 2.16, Mean = 19.49, DD = 536.00, RF = 20.00

我们可以看到,利润增加了三分之一,其他指标也变得更好了。


但我们需要灵活性。就是这样。

Profit = 8018.00 = 8018.00 + 0.00 (0.00%) - Amount of Delete Intervals = 0 (2019.09.14 - 2019.12.04)
00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09
SUMMARY: 00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09

Profit = 4868.00 = 8018.00 + -3150.00 (-39.29%) - Amount of Delete Intervals = 1 (2019.09.14 - 2019.12.04), 20:00 - 01:00, CountHours = 4
00:00:00 - 01:31:54 : Profit = 1067.00 (21.92%), Total = 32 (87.50%), PF = 4.63, Mean = 33.34, DD = 177.00, RF = 6.03
19:29:54 - 23:59:59 : Profit = 3801.00 (78.08%), Total = 118 (83.90%), PF = 5.53, Mean = 32.21, DD = 249.00, RF = 15.27
SUMMARY: 00:00:00 - 23:59:59 : Profit = 4868.00 (100.00%), Total = 150 (84.67%), PF = 5.29, Mean = 32.45, DD = 310.00, RF = 15.70


利润没有增加,反而减少了!但看看其他指标。我们并没有找到利润最高、契合概率最高的区间,而是找到了一个更窄的区间,但比经典区间更有味道。


创新是这样添加的

#define  BESTINTERVAL_SLIPPAGE // 创建一个人工过滤器来计算最佳时间间隔。


现在,市场模式研究的质量有了很大提高。对多人测试工作有重大影响。

[删除]  
因此,150 笔交易的可能性更大,不是吗?
 
trader_number_one:
因此,150 次交易更有可能,不是吗?

交易次数 取决于区间的长度。

 

有时,删除时间间隔的操作会出错。即

const double Profit = dDeals[i].Profit + SlipPerLot * dDeals[i].Lots;

会产生 NaN,因为 dDeals[i].Lots 在 i=0 时等于 NaN。

似乎是 int Set( const DEAL &dDeals[] ) 函数在金额=0 时没有填满手数字段造成的。或者说在 void ToNull( void ) 中没有填写 Lots 更正确?

但无论如何,这个错误非常令人不快,很少发生,而且不容易调试。

 
traveller00:

但无论如何,这个错误非常令人不快,很少出现,而且不容易调试。

是的,我很高兴在没有正确检查的情况下发布了它。我会检查的,谢谢。

 
我更正了int Set( const DEAL &dDeals[] ) 函数,将 Lots 填为 0。如果我改错了或遗漏了什么,请给我回信。谢谢。
 
traveller00:
我更正了int Set( const DEAL &dDeals[] ) 函数,将 Lots 填为 0。如果我改错了或遗漏了什么,请给我回信。谢谢。

到目前为止,我只做了这些

        const double Profit = dDeals[i].Profit ? dDeals[i].Profit + SlipPerLot * dDeals[i].Lots : 0;

其余部分不需要对 Lots 进行修正。但有一些错误与另一个(旧的)相关。需要更正。