Erros, bugs, perguntas - página 131

 
Dmitriy2:

o código é inserido, o ficheiro não é anexado


Foram feitas correcções.

Por favor, tente novamente.

 
alexvd:

Pende por causa do loop infinito.

Tem a única forma de sair do laço - por quebra. Mas o intervalo que tem ocorre quando uma determinada condição é satisfeita. Um dos componentes

Recebe sempre o manípulo indicador dentro da função e copia-o sem verificar se os dados estão prontos.

Sugestão.

1. Levar a variável de manuseamento para o nível global.

2. Receber o manípulo indicador no OnInit (de qualquer forma não se altera os parâmetros parabólicos).

3. Antes de copiar dados do buffer de indicadores, verificar a sua prontidão (calculabilidade) - a função BarsCalculated (Parabólico) ajudá-lo-á.

4) Organizar a saída do ciclo, se não se fizer o item 3. 3 não é cumprida.

2. não está a mudar no exemplo de teste, de facto esta função é usada a toda a hora com parâmetros diferentes, é por isso que recebo a pega não no OnInit

3. Vou verificar, apenas não compreendo bem para que preciso dele, a condição é tal que não pode falhar, uma série de pontos parabólicos são as barras mais próximas, devem definitivamente ser carregados (e, em geral, compreendo que o histórico é carregado para o testador um ano antes da data de início especificada do teste). Funciona realmente bem. Funciona em MQL4 tanto em real como no provador (embora exista uma função parabólica incorporada, não uma função separada).

 
alexvd:

Foram feitas correcções.

Tente novamente.

Sim, funcionou, obrigado.
 
Dmitriy2:

2. não muda no exemplo de teste, e de facto esta função é usada a toda a hora com parâmetros diferentes, por isso recebo a pega não no OnInit

3. ok, vou fazer uma verificação, apenas não compreendo realmente o ponto, a condição é tal que não pode falhar, uma série de pontos parabólicos são as barras mais próximas, devem definitivamente ser carregados (e em geral, compreendo que o histórico é carregado para o testador um ano antes da data de início do teste especificada). Funciona realmente bem. Funciona em MQL4 tanto em real como no testador (embora não exista uma função parabólica separada, mas está construída em...).

3. Já foi discutido e descrito na referência(https://www.mql5.com/ru/docs/series/barscalculated), porque é que é necessário.

Nota

Esta função é útil quando se pretende obter dados indicadores logo após a sua criação (para obter um manípulo indicador).

Este é o seu caso.

O indicador é calculado com base nos dados da barra. As barras estão lá, mas os dados calculados podem estar ausentes.

Документация по MQL5: Доступ к таймсериям и индикаторам / BarsCalculated
Документация по MQL5: Доступ к таймсериям и индикаторам / BarsCalculated
  • www.mql5.com
Доступ к таймсериям и индикаторам / BarsCalculated - Документация по MQL5
 
Rosh:
Isto significa que esta posição é o resultado de vários ofícios neste instrumento. Como consequência, vê-se o preço médio ponderado da posição.
Pensei queo preço médio ponderado apenas se referia a indicadores técnicos... penso que nem sempre consigo chegar a 0 no testador durante as corridas... por vezes alguns cêntimos ainda estão de fora
 
alexvd:

3. O motivo da sua necessidade já foi discutido muitas vezes e é descrito na ajuda(https://www.mql5.com/ru/docs/series/barscalculated).

Este é o seu caso.

O indicador é calculado sobre os dados da barra. As barras estão lá, mas os dados calculados podem não estar.

Sim, tenho-o com o BarsCalculated, obrigado.

Mas de qualquer forma é logicamente errado que funcione e não funcione no testador. É preciso ter todas as verificações já construídas no testador, e se o pedido for para alguns dados e não estiver lá, então o erro aparecerá. Mas o testador tem barras, mas por alguma razão não pode calcular os dados e mantém-se em silêncio...

 
maryan.dirtyn:
Pensei queo preço médio ponderado era apenas um indicador técnico... Nem sempre recebo 0 quando estou a correr no Testador de Estratégia... Por vezes podem ocorrer alguns cêntimos.

Média ponderada por volume. Por exemplo, houve três transacções no EURUSD:

Acordo
Volume
Preço
Comprar EURUSD
0,1 lote
1.2800
Comprar EURUSD0,2 lotes
1.3400
Comprar EURUSD0,3 lotes
1.2000
Total: Posição longa no EURUSD
0,6 lote
?


Como resultado, temos uma posição no EURUSD com o volume de 0,6 lotes, mas a que preço?

 
Rosh:

Média ponderada por volume. Por exemplo, houve três transacções no EURUSD:

Acordo
Volume
Preço
Comprar EURUSD
0,1 lote
1.2800
Comprar EURUSD0,2 lotes
1.3400
Comprar EURUSD0,3 lotes
1.2000
Total: Posição longa no EURUSD
0,6 lote
?


Acabamos por ficar com uma posição EURUSD de 0,6 lotes, mas a que preço?

Não seria mais fácil arredondar o preço para o nível de precisão da moeda ao nível do servidor? Afinal, o consultor especializado terá de lidar com o ajuste da precisão e do preço por ponto...
 
Interesting:
Não seria mais fácil arredondar o preço para o nível de precisão da moeda ao nível do servidor? Afinal, qualquer EA teria de sofrer com o ajuste na precisão e preço por ponto.
Porque é que a EA se daria ao trabalho? Este preço médio ponderado será necessário para calcular o fecho das posições. O Conselheiro Especialista não precisará dele. A posição terá de ser fechada a um preço normal com o número necessário de dígitos para este símbolo.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
Rosh:
Porque é que o Consultor Especialista deve sofrer? Este preço médio ponderado é necessário para calcular o fecho das posições. Não tem qualquer utilidade para o Consultor Especialista. Terá de fechar a posição a um preço normal com o número necessário de caracteres para este símbolo.

Em alguns casos, é necessário ter um valor de preço normalizado, independentemente da forma como o preço é recebido.

É mais fácil fazer a normalização do lado do servidor desde que o servidor recalcule o preço de abertura de qualquer forma (pelo menos na minha opinião).


A propósito, uma vez que estamos a falar de preço médio ponderado e de plataforma de compensação.

Tanto quanto sei, existem dois modelos de corte (fecho parcial) de uma posição perdida que foi anteriormente fechada:

1. Não fixar a perda no fecho parcial, mas simplesmente recalcular o preço de abertura (se não estou enganado, é o que a CF faz);

2. deixar o preço de abertura inalterado, fixando a perda.

O mesmo se aplica à inversão de posições perdidas


Quero saber a opinião dos criadores sobre que método será eventualmente padronizado no MT5, se possível porquê...

Razão: