从专业人员到超级专业人员的任何问题 - 1。 - 页 40

 
olyakish:

你能给我一个例子,说明你设置了什么数字吗?

20或0.00020 ?


当然是20!它总是以点数来设定。

   int      slippage,            // проскальзывание

但对于5位数的价差来说,这还不够!正如上面已经建议的那样,更多的价差是合理的,或者更好的是双倍的价差!

 
borilunad:

当然,是20个!始终以点带面。

但对于5位数的价差来说,这还不够!按照上面的建议,更多的价差是明智的,或者最好是双倍的价差。

谢谢你,我意识到了这一点。你回答了一个不是针对你的问题。

 
olyakish:

谢谢你,我意识到了这一点。你回答了一个不是针对你的问题。


对不起,我不知道你在参加考试!;)
 

在终端中是否有一个记录崩溃的模式?

我指的是无声的崩溃,当终端在没有错误的情况下直接关闭。

我想找到优化过程中终端有时会崩溃的原因。该战略使用了dll。所有的代码都被包裹在try-catch中,有自己的日志记录,但它没有显示任何错误,尽管如此,终端有时会在大量的基因中崩溃。整个系统是不可检测的,可能在100次迭代中崩溃,也可能在10000次迭代中存活,参数的设置和范围绝对相同。

任务管理器没有显示任何内存泄漏(我知道它不是这种目的的最佳工具,但还是)。

 
TomKein:

在终端中是否有一个记录崩溃的模式?

我指的是无声的崩溃,当终端在没有错误的情况下直接关闭。

我想找到优化过程中终端有时会崩溃的原因。该战略使用了dll。所有的代码都被包裹在try-catch中,有自己的日志记录,但它没有显示任何错误,尽管如此,终端有时会在大量的基因中崩溃。整个系统是不可检测的,可能在100次迭代中崩溃,也可能在10000次迭代中存活,参数的设置和范围绝对相同。

任务管理器没有显示任何内存泄漏(我知道它不是这种目的的最佳工具,但还是)。

在我看来,测试器中的dll并不工作,所以它并不拖累这个过程!"。
 

为什么要写你不知道的东西?

 
TomKein:

终端是否有一个记录崩溃的模式?

如果终端通知你崩溃了,你可以手动转储,然后用它来解决这个问题。

如果终端在没有崩溃通知窗口的情况下直接关闭,你必须自己进行转储。我有一个叫breakpad的项目,从chrome出来的,它不难连接到几乎任何项目,并即时做dump dump。有一次,我用这种方式调试了终端的dll。

 

有什么方法可以将变量名称作为一个字符串来获取吗?

int varTakeProfit = 1;
Print( VarName( varTakeProfit ), " = ", varTakeProfit ); // varTakeProfit = 1

string VarName( int Var )
{
   ???
}
 
#define  VarName(x) #x


int varTakeProfit = 1;
Print( VarName( varTakeProfit ), " = ", varTakeProfit ); //  varTakeProfit = 1

 
Andrey Khatimlianskii:

有什么方法可以将变量名称作为一个字符串来获取吗?

在MQL中没有这种东西。如果出现了这样的任务,我就会做以下工作。

struct ValueAndName
{
   double   fValue;                     // Значение переменной
   string   sName;                      // Имя переменной

   ValueAndName(double _fValue, string _sName)
   {
      SetData(_fValue, _sName);
   }

   void SetData(double _fValue, string _sName)
   {
      fValue = _fValue;
      sName = _sName;
   }
};

VarAndName g_stVarTakeProfit(12.0, "VarTakeProfit");
VarAndName g_stVarStopLoss(20.0, "VarStopLoss");

void OnStart()
{
  Print("Значение переменной ", g_stVarTakeProfit.sName, " равно: ", g_stVarTakeProfit.fValue);
  Print("Значение переменной ", g_stVarStopLoss.sName, " равно: ", g_stVarStopLoss.fValue);
}