供专业人士考虑。 - 页 2

 
Integer:

红线显示的是缩水,你需要找到最大值。

为什么需要找到最大的缩减量?这告诉你什么?
 
Andrei01:

测试器正确地测量了股票的最大缩水,但它没有考虑到此刻的平衡状态,这没有意义。

换句话说,如果未平仓订单上涨,然后又下跌了100点,测试器将显示100点的资产缩水,而逻辑上决定策略风险的真实缩水等于零。 很明显,这种计算对估计策略风险毫无用处。


Andrei01:
而为什么要寻找最大的缩水?这告诉你什么?
好吧,如果你不需要它或不了解它的用途,为什么要加入对话,甚至强加你的意见?
 
Andrei01:

测试仪正确地测量了最小和最大的缩减量,但它没有考虑到那一刻的平衡状态,这使得这种测量成为无稽之谈。

也就是说,如果未平仓订单上升,然后下降100点,测试器将显示100点的权益缩水,而逻辑上决定策略风险的真实缩水等于零。很明显,这样的计算对于战略风险估计来说是没有用的。

请解释你在哪里找到最小缩水这样的参数,在哪份报告中。我没有遇到过这种情况。我不认为余额对我来说是没有价值的,只要我的权益是好的,我不在乎它是否在地上)。或者我有什么误解吗?在我看来,似乎只有挂单 才可能下跌和上涨。我是不是搞错了?如果我早点知道,我就会开始在我感兴趣的方向上提高或降低卖出和买入订单)。我相信在试运行期间发现的权益最大跌幅可能会在真实交易中重复出现;因此我认为将其从最大跌幅中算起是正确的。

 
Integer:

一般来说,最大缩减量不是最大和最小权益之间的差额。开始时,MaxEquity=Equity,MinEquity=Equity,Drawdown=0。如果权益>MaxEquity,我们以MaxEquity-MinEquity的方式计算缩减。 如果得到的值高于之前计算的缩减,我们存储较高的值并重置最小值-MinEquity=MaxEquity,并存储新的最大值MaxEquity=Equity。
能否请你调整一下我发布的代码?谢谢你。
 

以下是我的工作情况。

double MaxEq;
double MaxDD;

void DD_Init(){ // Вызываем из init
   MaxEq=AccountEquity();
   MaxDD=0;
}

void DD_Start(){ // Вызываем из start


   if(!IsTesting()){
      return;
   }      
   if(AccountEquity()>MaxEq){
      MaxEq=AccountEquity();
   }
   else{
      MaxDD=MathMax(MaxEq,MaxEq-AccountEquity());
   }
}
void DD_Deinit(){ // Вызываем из deinit

      if(!IsTesting()){
         return;
   }      
   Print("Просадка: "+DoubleToStr(MaxDD,2));
}
 
khorosh:
能否请你调整一下我发布的代码?谢谢你。


没有真正进入它,但乍一看似乎很好,有了新的最大值,最小值被重置......
 
Andrei01:
为什么要寻找最大的缩水?这告诉你什么?


表示在最不幸的情况下(EA在绿线所示的时刻开始),存款是否足够。

 
Integer:

我没有深入研究,但乍一看,它看起来很好,有了新的最大值,最小值就会被重置...
好吧,如果不是OnGoing,我也不会怀疑,因为我的代码计算出的结果与测试器中的结果一致。
 

图片在这里https://www.mql5.com/ru/forum/136747/page696

顾问在一定时间内只开1笔交易(不关闭),在测试器中检查最大缩减量 - 在视觉模式下测试。

1. 直到2月3日结束(提前按停)。

2.在2月3日结束前

附加的文件:
 
serferrer:

图片在这里https://www.mql5.com/ru/forum/136747/page698

顾问在一定时间内只开1笔交易(不关闭),在测试器中检查最大缩减量 - 在视觉模式下测试。

1. 直到2月3日结束(提前按停)。

2.在2月3日结束前

你的帖子的目的是说明如何正确计算缩减,还是说明测试者计算缩减的方法不正确?请给一个详细的答案,不要这么口无遮拦,这里不是每个人都是专业人士。谢谢你的提示。在我看来,你的代码,如果包含在真正的EA中,将确定一个或多个未平仓交易从开仓到关闭这些交易的缩水,但它不会搜索整个EA工作时间的最大缩水。还是我弄错了?你能批评一下我的代码吗?它是否正确地执行了寻找最大缩水的任务?