if (Use_Comission==true)
{
int LotPos=StringToInteger(Order.Market_Order_Info(ALL,ALL,ALL,"Lot"));//Получаем текущий объем позицииif (LotPos!=LotOld)
{
int LotDelta=0;
if (LotPos>LotOld)LotDelta=LotPos-LotOld;
if (LotPos<LotOld)LotDelta=LotOld-LotPos;
TesterWithdrawal(LotDelta*Comission);
LotOld=LotPos;
}
}
我试着在每笔交易中提取资金--作为正滑点和佣金的补偿。
结果发现,测试结果 被强烈扭曲,而且很奇怪--提款前的恢复系数是35.88,变成了84.73,资金的缩减是1176,变成了498。
结果是完全扭曲的--解决办法是在去初始化时我自己重新计算所有的东西,然后通过文件查看结果,但这是非常不舒服的,而且我不能很快做到这一点。
如果止损点是浮动的,包括根本没有止损点,那么在去初始化过程中就不能进行准确的缩减计算--必须考虑每个刻度(栏)的缩减。结果发现,测试结果 被强烈扭曲,而且很奇怪--提款前的恢复系数是35.88,变成了84.73,资金的缩减是1176,变成了498。
我的印象是,你需要减少存款。或增加地段。在策略中尝试输入精度系数,该地段取决于该系数
我的印象是,你需要减少存款。或增加地段。试试策略中的进场精度系数,它决定了手数。
什么是"入门效率比"?
害怕野兽吗?所以很多人已经使用了可变手数,这取决于交易的积极结果的概率!
我有计划使用很多增加,这取决于输掉的系列的长度。你的方法是如何实施的?这不就等于根据止损 的范围来改变交易量吗?
两种方式都尝试一下,也就是说,你想到的所有变体和组合。有些东西将是最有效的
我的障碍仅仅是我的语言知识水平低,否则我现在已经试过一百次了 :)因此,在实现一个想法之前,我必须三思而行。
有趣的是,有一天,在实施一个想法时,代码中的一个错误(更确切地说,MT4和MT5在向一些指标传递变量的顺序上存在差异)创造了一个伟大的过滤器--现在我把它和另一个想法一起使用,结果是更糟,但它仍然是好的。
这是我现在得到的结果(经过一些调整),当测试 "基于真实刻度的每个刻度 "时,有50ms的延迟,每手提取3.4个存款单位。
由于部分提款,数字有点失真。
是这样实施的。
从3773笔交易的报告来看,每笔交易1手,得到3773*3.4=12828.20 - 提款13719 delta 890.8 .
如果有人知道为什么我有这样的差异,请告知。
这是否值得考虑?最主要的是,结果是积极的