Erros, bugs, perguntas - página 270

 
Rosh:

Execute esse indicador e verá por si próprio:

Assim, em

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])

aberto[] também não é uma série cronológica?

Não compreendo nada, dê-me por favor um exemplo de uma série temporal.

 
Voodoo_King:

construir 375. o insecto é realmente mau, em resultado do qual já perdi bastante dinheiro...

Os parâmetros EA não são restaurados aos parâmetros após o fecho/abertura do terminal.

Para ser mais exacto, algumas partes podem ser restauradas (por exemplo 3 de 6), enquanto as restantes são repostas às configurações padrão.


construir 381. NADA MUDOU!!!!

Cada vez que o terminal é reiniciado, os EAs são inicializados com parâmetros diferentes (o que eles quiserem).

Inicialização incorrecta dos parâmetros dos peritos

 
AlexSTAL:

Esta função verifica a direcção, não a mudança.

1) Sem rubricar

2) Com a inicialização

3) Código acima, apenas com a função de indexação da direcção da matriz ArrayGetAsSeries

Cometi um erro no balcão de atendimento com o nome da função simplesmente


Sim, descobri o erro de compilação. Obrigado pela mensagem. Uma reparação estará na próxima construção.
 
BoraBo:

Assim, em

aberto[] também não é uma série cronológica?

Não compreendo, por favor dê-me um exemplo de uma série de tempos.

Então não é um TC, e depois? Configure-o para uma série cronológica via Set e será um TC. É esta a primeira vez que gere o terminal? Que para si é uma notícia tão grande. Penso que alguém acabou de escrever que devemos decidir por nós próprios como trabalhar nos seus programas - com TS ou apenas com arrays.
 
joo:


É por isso que faço isto em OnCalculate():

Pode ajudar-me a fazer com queo ArrayGetAsSeries(baixo) dê verdade

 
BoraBo:

Pode ajudar a tornar oArrayGetAsSeries(baixo) output verdadeiro?

Estou farto disto :)) ponham-no como quiserem e olá. Não há nada a verificar. :))
 
BoraBo:

Assim, em

aberto[] também não é uma série cronológica?

Não compreendo nada, dê-me por favor um exemplo de séries cronológicas.

abertas[] e todas as outras matrizes na OnCalculate são séries temporais. Logo no início, quando a linguagem MQL5 estava a ser escrita, a ArrayGetAsSeries() voltou a ser verdadeira para eles e a sua indexação foi feita para eles exactamente como para as séries cronológicas, ou seja, para trás.

Mas depois acabou por ser muito inconveniente e não natural escrever os cálculos do indicador no estilo MQL4 e só havia uma saída - inverter a indexação das séries cronológicas para uma utilização conveniente. Começámos a escrever indicadores personalizados dentro deste espírito:

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[]         // Spread)
{
//---- переворачиваем все таймсерии, чтобы ими было удобно пользоваться, как обычными массивами
   ArraySetAsSeries(open,false);
   ArraySetAsSeries(high,false);
   ArraySetAsSeries(low,false);
   ArraySetAsSeries(close,false);
   ArraySetAsSeries(time,false);
   ArraySetAsSeries(tick_volume,false);
   ArraySetAsSeries(volume,false);
   ArraySetAsSeries(spread,false);
   ArraySetAsSeries(open,false);
.... остальной код
}

Mas sempre que tivemos de escrever uma tal confusão de conversões acabou por não ser também uma boa ideia. Por conseguinte, foi decidido passar estas séries cronológicas com indexação, como para as arrays habituais. Foi assim que obtivemos tal paradoxo, quando as séries temporais não são indexadas como as séries temporais. É por isso que a ajuda diz que a ordem de indexação deve ser verificada e, se necessário, definida conforme necessário.

 
BoraBo:

Ajude-me a tornarverdadeiro o ArrayGetAsSeries(baixo) output

Já retorna verdadeiro, mas devido a um erro do compilador o seu valor é emitido incorrectamente como um parâmetro. Verifique desta forma:

#property script_show_inputs
input bool isTimeSeria=true;


double Ups[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

//--- установим для массивов признак таймсерии
   Print("Установим для массивов признак таймсерии как ",isTimeSeria);
   ArraySetAsSeries(Ups,isTimeSeria);

//--- Проверим таймсерии
   if(ArrayGetAsSeries(Ups))
     {
      Print("1:  ArrayGetAsSeries(Ups)=true");
      Print("2:  ArrayGetAsSeries(Ups)=",ArrayGetAsSeries(Ups));
     }
   else
     {
      Print("ArrayGetAsSeries(Ups)=true!!!");
     }
  }
//+------------------------------------------------------------------+


Resultado:


 
Rosh:

Ele dá verdade, só por causa de um erro do compilador, o seu valor como parâmetro é emitido de forma incorrecta. Verifique desta forma:


Resultado:


Obrigada, descobriste-o.

ArrayIsSeries() eArrayGetAsSeries() no condicional se() o operador trabalhar como descrito, mas Print() produz sempre resultados falsos.


 

Desenvolvedores.

1. por favor verifique o carregamento do histórico no testador (este é o primeiro teste).

Estou a testar o EURUSD usando uma amostra MACD padrão em H1 com intervalo "mês passado".

Atingi 57% dos dados descarregados e congela com sucesso, apenas com esta linha no registo

2011.01.19 17:16:23	Tester	EURUSD: history preliminary downloading started

2. É possível fazer a alavanca de 1:200 e 1:500 nas novas construções no testador constantemente?

Compreendo que nem todas as empresas de corretagem têm essa influência, especialmente no MT5, mas no Testador de Estratégias isto deve provavelmente ser deixado porque é mais conveniente testar estratégias numa nova plataforma.