Erros, bugs, perguntas - página 289

 
apenas registos - a reavaliação não afectará o desempenho do Consultor Especialista
etc.

Aqui está o código na EA (tentou muitas funções para determinar a igualdade da linha indicadora 0)

Tomei a mais simples.

if (Sp3Buffer[20]!=0 && Sp3Buffer[21]!=0 && Sp3Buffer[22]!=0 && Sp3Buffer[23]!=0 && Sp3Buffer[24]!=0)

aqui temos aqui os valores da linha indicadora do registo do testador via impressão

[20]=34.40035703438407[21]=35.93782852396674[22]=35.97127995180715[23]=30.49164953708304[24]=32.90441573888087

não há zero, mas olhando para o indicador - um zero claro - e nos valores de

do indicador é também zero.

que diabos?

 

Este é o tipo de disparate que surgiu no registo após o comando de actualização ter sido executado no gráfico:

2011.02.03 02:24:51 HistoryBase '#IBM' 1 barras inválidas removidas
2011.02.03 02:24:50 HistoryBase '#IBM' 1 barras inválidas removidas
2011.02.03 02:24:49 HistoryBase '#IBM' 1 barras inválidas removidas
2011.02.03 02:24:48 HistoryBase '#IBM' 1 barras inválidas removidas
2011.02.03 02:24:47 HistoryBase '#IBM' 1 barras inválidas removidas
2011.02.03 02:24:46 HistoryBase '#IBM' 1 barras inválidas removidas

etc. a cada segundo.

TF Sentinela

 
alexluek:
apenas registos - a reavaliação não afectará o desempenho do Consultor Especialista
etc.

Aqui está o código na EA (tentou muitas funções para determinar a igualdade da linha indicadora 0)

Tomei a mais simples.

aqui temos aqui os valores da linha indicadora do registo do testador via impressão

não há zero, mas olhando para o indicador - um zero claro - e nos valores de

do indicador é também zero.

que diabos?

Esqueceu-se de inverter a matriz?
 
sergey1294:
Esqueceu-se de inverter a matriz?
A ordem inversa de indexação é definida tanto no indicador como no Expert Advisor, mas eu não sei o que está errado. Obrigado
 

Interessante, acontece que o mesmo Expert Advisor em computadores diferentes acrescenta modelos ao gráfico a partir de locais diferentes:

em 1 computador da MetaTrader 5\Perfiles\Templates

em 2 computadores do MetaTrader 5\MQL5\Files

Adicionando linha emChartApplyTemplate(handle_Chart, "Sova15_30.tpl")

O que se passa, quem me pode ajudar a descobrir?

 
Pode dizer-me como obter a hora da última mudança de posição?
 
beginner:

Pode dizer-me como obter a hora da última mudança de posição?
https://www.mql5.com/ru/articles/138 find myposition.Time() lá
Как использовать торговые классы Стандартной библиотеки при написании советника
Как использовать торговые классы Стандартной библиотеки при написании советника
  • 2010.11.10
  • Samuel
  • www.mql5.com
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
 
beginner:

Pode dizer-me como obter a hora da última mudança de posição?

Determinar qual o comércio sobre o símbolo foi o último.

Pode apanhá-lo ou na OnTrade() ou na história.

Trolls:
https://www.mql5.com/ru/articles/138 find myposition.Time() lá

É assim que a hora de abertura da posição é devolvida, se bem me lembro (ou seja, tanto quanto sei, devolverá a hora da primeira transacção que abriu a posição).

Quanto ao artigo mencionado, a mirístoria e a provação podem ser úteis(talvez algo mais sirva).

 
Interesting:

Determinar qual o comércio sobre o símbolo foi o último.

Pode apanhá-lo ou na OnTrade() ou na história.

É assim que o tempo de abertura da posição é devolvido, se bem me lembro (isto é, tanto quanto sei, o tempo da primeira transacção, que abriu a posição, é devolvido).
Sim, este é o problema, ou seja, precisamos de encontrar a última troca para o instrumento necessário e obter o seu tempo, pode fazê-lo de forma mais simples?
 
beginner:
Sim, esse é o problema, ou seja, é necessário encontrar o último acordo para o símbolo requerido e obter o seu tempo, mas de uma forma mais fácil?

Está interessado numa posição específica (o símbolo e o seu Id são conhecidos) ou no caso geral para todas as posições?

Se apenas olhar para a história e analisar negócios (usando o mito), então aproximadamente assim:

1. Obtemos o número total de negócios para o período, passando por eles, seleccionando apenas os do símbolo e/ou os que participaram na formação da posição.

if (HistorySelect(0,TimeCurrent()))
ulong d_ticket; // deal ticket
{
// Получить общее количество сделок в истории
int tot_deals = HistoryDealsTotal();

  for(int j=0; j<tot_deals; j++)
  {
  d_ticket = HistoryDealGetTicket(j);

    if(d_ticket>0)  
    {
    mydeal.Ticket(d_ticket)

      if(mydeal.Symbol()==SymbolTitle)
      {
      //формируем список сделок и анализируем его (если я правильно понял последняя сделка наша)
      }

    }   

  }

}

2. é melhor seleccionar as ofertas não por símbolo, mas por identificação de uma posição específica (é mais fácil e mais fiável).

Embora tenha a certeza de que existem soluções mais correctas e simples.