Características da linguagem mql5, subtilezas e técnicas - página 149

 
fxsaber:

Obrigado, boa regra. Tornei-me uma vítima da minha própria incompetência. Realmente, é necessária mais alguma regra para um caso tão mais óbvio.


Talvez para ambos os casos Alerta inteligente a fazer?

Don't)))) Seria de todo aborrecido))))

 
Vladimir Simakov:
Qual é o problema com este código? Deinit pregou o objecto por um ponteiro constante (conheço aqui o cabo). queima normal de membros em estilo C++, ou então os criadores dissolveram toda a gente))))

Não haverá problemas no arranque. Uma vez iniciado, pode-se esperar um pouco e depois criar uma situação para a EA que a sua execução se decomponha.

Não é um mistério, é apenas que a compreensão vem muito melhor se se procurar o problema em código aparentemente inócuo.
 
fxsaber:

Não haverá problemas no arranque. Uma vez iniciado, pode-se esperar um pouco e depois criar uma situação para a EA que a sua execução se decomponha.

Não é um mistério, é apenas que a compreensão vem muito melhor se se procurar o problema em código aparentemente inócuo.
Eu sei qual é o problema. Mudança de prazos e oops... É o padrão aqui. Advertência? Para quê? Para mim próprio, quando confrontado com tal coisa, só a conto na elevação das minhas capacidades. Com o seu exemplo, IMHO, aqui na força de 20% da comunidade são capazes de se encontrar, então porquê privá-los do desenvolvimento?
 
Vladimir Simakov:
Eu sei qual é o problema aqui. Mudança de prazos e oops... É o padrão aqui. Advertência? Para quê? Para mim próprio, quando confrontado com tal coisa, só a conto na elevação das minhas capacidades. Com o seu exemplo, IMHO, aqui na força de 20% da comunidade são capazes de se encontrar, então porquê privá-los do desenvolvimento?

Tive uma situação ainda mais interessante. Não houve alteração de nada, mas OnDeinit foi chamado após o restabelecimento da ligação. Agora vou ficar de olho na Razão.

 

Sou constantemente confrontado com a necessidade de procurar no Market Watch o símbolo necessário. Por exemplo, o símbolo do gráfico actual.

Cada vez que é preciso muito tempo precioso. Fi-lo automatizado através do seguinte guião.

// После запуска и нажатия ENTER делает активным в Обзоре рынка символ чарта.
#include <WinAPI\winuser.mqh>

#define  GA_ROOT           0x00000002

#define  WM_KEYDOWN        0x0100
#define  WM_LBUTTONDOWN    0x0201

#define  VK_DELETE         0x2E

#define  WM_CHAR           0x0102

#define  GET_HANDLE                                                                       \
  long Handle = user32::GetAncestor(::ChartGetInteger(0, CHART_WINDOW_HANDLE), GA_ROOT); \
                                                                                         \
  for (int i = 0; i < sizeof(ControlID) / sizeof(int); i++)                              \
    Handle = user32::GetDlgItem(Handle, ControlID[i]);


bool SetSymbolNavigator( const string SymbName )
{
  const bool Res = ::SymbolInfoInteger(SymbName, SYMBOL_EXIST);

  if (Res)
  {
    static const int ControlID[] = {0xE81C, 0x804B, 0x27A0, 0x271B, 0x3E9};
    GET_HANDLE

    user32::SendMessageW(Handle, WM_LBUTTONDOWN, 0, 0);
    user32::SendMessageW(Handle, WM_KEYDOWN, VK_DELETE, 0);

    const int Size = ::StringLen(SymbName);
    
    for (int i = 0; i < Size; i++)
      user32::SendMessageW(Handle, WM_CHAR, SymbName[i], 0);
  }

  return(Res);
}

void OnStart()
{
  SetSymbolNavigator(_Symbol);
}
 
fxsaber:

Sou constantemente confrontado com a necessidade de procurar no Market Watch o símbolo necessário. Por exemplo, o símbolo do gráfico actual.

Cada vez que é preciso muito tempo precioso. Automatizei-o utilizando o seguinte guião como uma tecla de atalho.

Colega, clarifique o objectivo. Quer que o símbolo apareça no "Market Watch" ou deve ser destacado no "Market Watch"?

 
Denis Kirichenko:

Colega, clarifique o objectivo. Quer que o símbolo apareça no Market Watch ou deve ser destacado no Market Watch?

A ser destacado. Muitos personalizados, por exemplo. Preciso de fazer o Tester naquele personalizado, cujo gráfico eu posso ver.

Depois, corro este guião e, depois disso, deixo cair o símbolo seleccionado no Market Watch com o rato no testador. Tudo isto demora alguns segundos.

 
fxsaber:

A ser destacado. Por exemplo, existem muitos personalizados. Preciso de fazer o teste com aquele personalizado, cujo gráfico posso ver.

Depois, eu corro este guião, e depois disso, deixo cair o personagem destacado no Market Watch com o rato no testador. Tudo isto demora alguns segundos.

Bem, então este guião não funciona para mim. Nada acontece, o símbolo não é realçado.

Lançamento, prima Enter. Vejo um erro no registo:

2019.11.29 11:47:38.609 Error   file C:\Users\Admin\AppData\Roaming\MetaQuotes\Terminal\5 B326B03063D8D9C446E3637EFA32247\MQL5\Scripts\Shared Projects\Testing\fxsaber\SetActiveSymbol.mq5 not found

Sim, baptizei o guiãoSetActiveSymbol.mq5.

 
Denis Kirichenko:

Vejo um erro nos registos

Simplesmente não vai começar assim. Não há nenhum ficheiro.

 
fxsaber:

Simplesmente não vai começar assim. Não há nenhum ficheiro.

Há. Só dei uma entrada a partir do diário de bordo. O completo é assim:

2019.11.29 12:37:18.851 Scripts script SetActiveSymbol (AUDJPY,H1) loaded successfully
2019.11.29 12:37:18.878 Scripts script SetActiveSymbol (AUDJPY,H1) removed
2019.11.29 12:37:26.419 Error   file C:\Users\Admin\AppData\Roaming\MetaQuotes\Terminal\5 B326B03063D8D9C446E3637EFA32247\MQL5\Scripts\Shared Projects\Testing\fxsaber\SetActiveSymbol.mq5 not found
Razão: