for (f = 0.01; f<=1.0; f=f+0.01)//цикл перебора переменной f для поиска оптимального ее значения,при котором TWR-максимально
{
for ( orderIndex = 1;orderIndex<Qnt; orderIndex++) //при заданной f проходим по всем закрытым ордерам
{ // и считаем относительный конечный капитал (TWR)TWR = MathPow(TWR*(1+f*(-Mas_Outcome_of_transactions[orderIndex]/(D))),0.33); // TWR - это произведение всех HPR
}
if (TWR>TWR_Rez) {
TWR_Rez = TWR;
G=MathPow (TWR_Rez, 0.001988); // 1/503 сделки по данной торговой системе, как в книжке: в степени 1/N Print(" TWR = ",TWR_Rez," G = ",G, " при f = ", f);} // если текущий TWR > результирующего, elsebreak; // то результирующий делаем равным текущему, иначе переходим на след итерацию цикла по f
}
Print("Закрытых позиций = ", Qnt, " Нетто Профит/лосс = ", SUMM, " У последней ",Qnt, " закрытой позы профит/лосс = ",
Mas_Outcome_of_transactions[Qnt]);
要么是我又搞错了,要么是在测试器中第一次和第二次运行EA的结果完全相同。唯一的 "但是":第二次,专家顾问仍然计算出最佳参数f...
没错--这个参数是用来计算之后竞价中的拍品数量。该方法是几何 平均数。见该书第31页。31的书,并在任何板块中运行,并尝试计算它。
我自己现在按照你第一页的建议,把产品分解到根部,以避免过度填充。
那么为什么要再次进行测试呢?如果我们能在deinit()函数中找到最不赚钱的交易,也能找到交易的数量,而不是手动输入这些参数?也就是说,在第一次测试后计算出最佳的f。
还是测试人员不允许这样做?
那么为什么要再次进行测试呢?如果我们能在deinit()函数中找到最不赚钱的交易,也能找到交易的数量,而不是手动输入这些参数?也就是说,在第一次测试后计算出最佳的f。
还是测试者不允许你这样做?
理论上它允许,但...它可以通过不同的方式实施。但这将是一个纯粹的配合。你必须在不知道未来的情况下进行计算
理论上它允许,但...有不同的方法来实现它。但这将是一个纯粹的配合。我们需要一个不知道未来的计算。
关键是它是R.Vince--见pp上面的拖车帖子。31-32.没有办法--只要对任何情况采取有代表性的样本,就可以了,然后拿出一个向上的最大损失的四舍五入值,甚至不是四舍五入,而是增加1.5的系数,就可以了...这里一切都很好。交易--也在500以下,就这样......我已经可以计算出带有必要的右/左公差的最佳F。
问题是不同的--如何避免TWR变量溢出?
关键是这是R.文斯--见pp上面的拖车帖子。31-32.没有办法--只需为任何情况取一个有代表性的样本,然后从那里起舞,并将最大损失的数值四舍五入,甚至不是四舍五入,而是增加1.5倍,就是这样...这里的一切都很正常。
问题是不同的--你如何避免过度代表TWR变量?
限制计算的深度
限制计算的深度
如何?
怎么说呢?
我只是指正在分析的交易数量。真实或虚拟。
有些东西开始出现了--由于变量的绝对值并不重要,而只是在f的某一数值上进行多、少的比较,我根据MaxZ 的建议添加了TWR的第三度根 : 第一页,在这个区块中--它运行良好,没有溢出。
在日志中。
我只是在谈论分析的交易数量。真实或虚拟
我在测试器中使用开盘价做了所有的计算,交易从2002年到2011年至今 - 503,最高损失的交易=-628。
结果见上文。我现在正在对其他专家顾问变体进行测试。
下面是解决这个问题的方法的文字,来自于源代码--第1页。31.
我们已经看到,最好的交易系统是具有最高几何平均数的系统。为了计算几何平均数,我们需要知道f。因此,让我们一步一步地描述我们的行动。
1.以给定的市场体系中的交易历史 为例。
2.通过观察从0到1的不同的f值,找到最佳的f值。
3.一 旦你找到了f,就采取N度 TWR 的根 (N 是交易总数) 。 这是你对这个市场系统的几何平均数。现在你可以用得到的几何平均数将这个系统与其他系统进行比较。f值将告诉你在这个市场系统中要交易多少个合同。一旦找到f,就可以通过将最大的损失除以负的最优/来转换为货币等值。例 如,如果最大的损失等于100美元,最佳f=0.25,那么-100美元/-0.25=400美元。换句话说,你应该为每400美元的账户投注1个单位。为了简单起见,你可以以单位为基础计算一切(例如,一个5美元的芯片或一个期货合约,或100股)。分配给每个单元的美元数可以通过将你的最大损失除以负的最佳f来计算。最佳f 是平衡系统的盈利能力(基于1个单位)和风险(基于1个单位)的结果 。 许多人认为,最佳的固定分数是将账户的百分比分配 给有些东西开始出现了--由于变量的绝对值并不重要,而只是在f的某一数值上进行多、少的比较,我根据MaxZ 的建议添加了TWR的第三度根 : 第一页,在这个区块中--它运行良好,没有溢出。
在日志中。