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

 
YanSay:

Assim?

Gostaria de pedalar assim:

for(int i=OrdersTotal()-1; i>WRONG_VALUE; i--)

Estou acostumado a pós-decremento/pós-incrementação - faz sentido para mim, ao contrário do incremento/decremento de prefixo, uma vez que (da ajuda) o incremento de prefixo (++i) e o decremento (--k) são aplicados a uma variável pouco antes de usar essa variável em uma expressão.

Sua comparação, por outro lado, não é de modo algum correta:

if(NormalizeDouble((Ask-OrderStopLoss()>Trailing*Point),Digits))

Aqui você está normalizando um valor booleano - o resultado da comparação de dois valores - o valor da expressão Ask-OrderStopLoss() é comparado com o valor da expressão Trailing*Point e então você normaliza o resultado desta comparação.

O resultado da comparação só pode ser falso (0) ou verdadeiro (não zero). Portanto, é este zero ou não zero que você vai normalizar.

É assim que você deve fazer a comparação:

if(NormalizeDouble((Ask-OrderStopLoss())-Trailing*Point,Digits)>DBL_EPSILON)
  {
   // Ask-OrderStopLoss() больше Trailing*Point
  }
 
Juer:
O que significa que há um erro?


Eu tenho uma função com dois objetos:

Uma das classes tem uma estrutura com mais de 4000 campos (em sua maioria enumeros).

O que fazer com este erro?

bool              CheckCandleOneRules(CCandlePropertiesBase *candle,
                                      CCandleRule *rule,
                                      int dir);

Aqui o tamanho das variáveis locais é muito grande (mais de 512kb) em tempo de compilação.

O que procurar e o que fazer? A função tem um conjunto de fios CArrayString, suspeito que o erro possa estar relacionado a ela.

Eu o preencho usando o método Add(), depois faço Clear( ) e Shutdown() novamente. E então eu o preencho novamente com novos dados usando o método Add(). Neste caso, a matriz será preenchida novamente a partir de elemento nulo?

 

Como saber, na história, a seqüência mais longa de velas consecutivas e multidirecionais?

Por exemplo: o primeiro é em baixa, o segundo é em alta, o terceiro é em baixa e assim por diante. Suponho que precisamos de um laço e uma variável para registrar o número de tais velas, mas eu não sei qual deve ser o laço e como, por que condição, sair dele.

 
PolarSeaman:

Como saber, na história, a seqüência mais longa de velas consecutivas e multidirecionais?

Por exemplo: o primeiro é em baixa, o segundo é em alta, o terceiro é em baixa e assim por diante. Suponho que precisamos de um laço e uma variável para registrar o número de tais velas, mas não sei qual deve ser o laço e como sair dele, por qual condição.

Não sei que tipo de laço deve ser usado para sair dele.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
  • www.mql5.com
Получает в массив rates_array исторические данные структуры MqlRates указанного символа-периода в указанном количестве. Отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества данных рекомендуется в качестве приемного...
 
Alexey Viktorov:

CopyRates e loop sobre um conjunto de estruturas MqlRates.

Obrigado, um loop em uma matriz, como? e quando sair dela?

 
PolarSeaman:

Obrigado, o loop da matriz, como? e quando sair dele?

O mesmo que para a lista de pedidos. Somente você deve ter cuidado com a direção da indexação na matriz. E quando sair... Se deve ser feito apenas uma vez e entre as últimas barras, deve sair assim que a seqüência for quebrada. Se for um indicador, então saia quando a matriz tiver terminado.
 
PolarSeaman:

Como saber, na história, a seqüência mais longa de velas consecutivas e multidirecionais?

Por exemplo: o primeiro é em baixa, o segundo é em alta, o terceiro é em baixa e assim por diante. Suponho que precisamos de um laço e uma variável para registrar o número de tais castiçais, mas não sei qual deve ser o laço e como, por que condição, sair dele.

Não sei que tipo de ciclo deveria ser, mas não sei de que condição sair dele.

 
Alexey Viktorov:
e depois sair assim que a seqüência for quebrada.

Como eu gravo esta seqüência em primeiro lugar?

 
Vitaly Muzichenko:

E contar de onde a consistência máxima, de quando o câmbio foi criado?

Seria ótimo) Mas o histórico do corretor é limitado, busca através de todos os disponíveis. ou no ano passado, ou seja, desde 15. 04. 17

 
PolarSeaman:

Como, em geral, esta seqüência deve ser escrita?

Como escrevê-lo, Alexey respondeu. Seria ótimo se ele pudesse escrever o código como ele o vê, se ele tiver tempo e vontade).

Eu vejo a implementação através da bandeira, mas me parece errado, que eu não queira nem mesmo começar a tentar.

PS. A propósito, é um indicador, ou um EA?
Razão: