Qualquer pergunta de um PROFI para um SUPER PROFI - 1. - página 40

 
olyakish:

você pode me dar um exemplo do número que você definiu

20 ou 0.00020 ?


Claro que 20! É sempre definido em pontos:

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

Mas isso não é suficiente para um spread de 5 dígitos! Como já foi avisado acima, mais propagação é razoável, ou melhor ainda, o dobro da propagação!

 
borilunad:

É claro, 20! Sempre em pontos:

Mas isso não é suficiente para um spread de 5 dígitos! Aconselhado acima, mais espalhamento é sensato, ou melhor ainda dobrar o espalhamento!

Obrigado, estou ciente disso. Você respondeu a uma pergunta que não lhe foi dirigida.

 
olyakish:

Obrigado, eu estou ciente disso. Você respondeu a uma pergunta que não lhe foi dirigida.


Desculpe, eu não sabia que você estava fazendo um exame! ;)
 

Existe algum modo no terminal onde o registro de troncos trava?

Refiro-me a quedas silenciosas, quando o terminal simplesmente fecha sem um erro.

Quero descobrir a razão pela qual o terminal às vezes cai durante a otimização. A estratégia utiliza dll. Todo o código é envolvido em tentativas - captura, com seu próprio registro, mas não mostra nenhum erro, no entanto, os terminais às vezes se chocam com a genética maciça. O sistema geral é indetectável, pode cair em 100 iterações, ou pode sobreviver em 10.000, com conjunto e gama de parâmetros absolutamente idênticos.

O gerente de tarefas não mostra nenhum vazamento de memória (entendo que não é a melhor ferramenta para tais propósitos, mas ainda assim).

 
TomKein:

Existe algum modo no terminal onde o registro de troncos trava?

Refiro-me a quedas silenciosas, quando o terminal simplesmente fecha sem um erro.

Quero descobrir a razão pela qual o terminal às vezes cai durante a otimização. A estratégia utiliza dll. Todo o código é envolvido em tentativas - captura, com seu próprio registro, mas não mostra nenhum erro, no entanto, os terminais às vezes se chocam com a genética maciça. O sistema geral é indetectável, pode cair em 100 iterações, ou pode sobreviver em 10.000, com conjunto e gama de parâmetros absolutamente idênticos.

O gerente de tarefas não mostra nenhum vazamento de memória (entendo que não é a melhor ferramenta para tais propósitos, mas ainda assim).

Na minha opinião, a dll no testador não funciona, portanto não retarda o processo!
 

Por que escrever algo sobre o qual você não tem idéia?

 
TomKein:

O terminal tem um modo no qual ele registra falhas?

Se o terminal notificá-lo sobre o acidente, você pode despejá-lo manualmente e depois usá-lo para descobri-lo.

Se o terminal simplesmente fechar sem janela de notificação de colisão, você terá que fazer o despejo sozinho. Eu tenho um projeto chamado breakpad fora do cromo, não é muito difícil de conectar a quase qualquer projeto e ele escreve despejos de forma confiável. Uma vez eu depurei a dll para o terminal dessa forma.

 

Existe uma maneira de obter o nome da variável como uma string?

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:

Existe uma maneira de obter o nome da variável como uma string?

Não existe tal coisa na MQL. Se tal tarefa surgir, eu faço o seguinte:

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);
}
Razão: