Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1636

 
Alexey Viktorov #:
Era exatamente o oposto. No OnDeInit(), o Expert Advisor não teve tempo de apagar todos os objetos pelo laço. Foi discutido aqui no fórum. A solução é inequívoca, para apagar tudo por prefixo.

O prefixo não é sem um ciclo?

 
Valeriy Yastremskiy #:

O prefixo não é sem um ciclo?

int  ObjectsDeleteAll( 
   long           chart_id,   // идентификатор графика 
   const string     prefix,   // префикс имени объекта 
   int       sub_window=-1,   // индекс окна 
   int      object_type=-1    // тип объекта для удаления 
   );
ObjectsDeleteAll - Графические объекты - Справочник MQL4
ObjectsDeleteAll - Графические объекты - Справочник MQL4
  • docs.mql4.com
ObjectsDeleteAll - Графические объекты - Справочник MQL4
 
Alexey Viktorov #:

Oh, cara... Sabe, são apenas os velhos tempos, sabe?

Sim, isso é o que eu faço. Como uma boa regra geral, não remova nada supérfluo, apenas o seu próprio)

 
Alexey Viktorov #:
Era exatamente o oposto. No OnDeInit(), o Expert Advisor não teve tempo de apagar todos os objetos pelo laço. Isto foi discutido aqui no fórum. A solução é inequívoca, apagar tudo por prefixo.

Exatamente o contrário,ObjectsDeleteAll não teve tempo de apagar tudo porque foi interrompido pelo deinit)

enquanto um simples loop apaga tudo - o terminal está esperando pelo programa.


ps.ObjetosDeleteAll é o mesmo laço, não diferente do personalizado.

 
Como trabalhar com um arquivo em programa mql5 sem gravar o arquivo em disco, mas para trabalhar somente em RAM, para acelerar. Eu quero transferir dados de um programa mql5 para um programa no meu computador.
 
pribludilsa #:
Como trabalhar com arquivo em programa mql5 sem gravar o arquivo em disco, mas para trabalhar somente em RAM, para acelerar. Eu quero transferir dados de um programa mql5 para um programa no meu computador.

Sem escrever em disco você pode experimentar o BD SQLite, mas eu não fiz isso e não estou muito confiante no sucesso. Em geral, você precisa experimentar.

 
Alexey Viktorov #:

Sem escrever em disco você pode experimentar o BD SQLite, mas eu não fiz isso e não estou muito confiante no sucesso. Em geral, você precisa experimentar.

Obrigado.
 
Valeriy Yastremskiy #:

É melhor dar a razão, sobre o deslocamento, bem feito, eu queria escrever)

É com isso que eu estava contando - ou a pessoa vai querer pensar no motivo, ou alguém vai dizer à pessoa na segunda (terceira, quinta) vez - é mais fácil de entender (especialmente se a pessoa quiser entender, mostrar interesse)

 
Artyom Trishkin #:

O ciclo de eliminação deve ser revertido:

e isto se aplica não apenas à eliminação de objetos gráficos, mas em geral à eliminação de quaisquer objetos nas listas de terminais.

É porque os objetos são sistematicamente armazenados em uma matriz?

Se você excluir cada grupo de objetos separadamente por um ciclo (ArrowDown e ArrowUp), eles serão excluídos corretamente do gráfico.

for(ushort i=0; i < n_arrow_down ; i++) {
      Print("ObjectName ",ObjectName(i),", i-down = ",i);
      ObjectDelete("ArrowDown"+IntegerToString(i, 4, '0'));
    }
    for(ushort i=0; i < n_arrow_up ; i++) {
      Print("ObjectName ",ObjectName(i),", i-up = ",i);
      ObjectDelete("ArrowUp"+IntegerToString(i, 4, '0'));
    }
Enquanto a saída dos ciclos é a mesma que no primeiro caso:
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 21
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 20
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 19
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 18
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 17
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 16
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 15
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 14
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 13
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 12
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 11
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0020, i-up = 10
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0018, i-up = 9
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0016, i-up = 8
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0014, i-up = 7
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0012, i-up = 6
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0010, i-up = 5
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0008, i-up = 4
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0006, i-up = 3
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0004, i-up = 2
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0002, i-up = 1
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0000, i-up = 0
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0017, i-down = 18
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0015, i-down = 17
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0013, i-down = 16
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0011, i-down = 15
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0009, i-down = 14
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0007, i-down = 13
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0005, i-down = 12
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0003, i-down = 11
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0001, i-down = 10
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0018, i-down = 9
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0016, i-down = 8
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0014, i-down = 7
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0012, i-down = 6
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0010, i-down = 5
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0008, i-down = 4
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0006, i-down = 3
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0004, i-down = 2
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0002, i-down = 1
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0000, i-down = 0
 
MakarFX #:
Por que você precisa apagar através de um loop?
Eu não sabia que havia um ObjectsDeleteAll, e agora quero chegar ao fundo da questão.
Razão: