Novo MetaTrader 4 Terminal de Clientes 387 e MetaTrader 4 Data Center construído 387 - página 15

 
joo:

Todos têm direito a uma opinião pessoal, mas ninguém tem o direito de insultar os outros.

Neste caso, tudo é perfeitamente transparente - dois membros do fórum expressaram suas opiniões muito negativas sobre o cargo de nen, que foi seguido por uma proibição, e Renat explicou claramente para que era a proibição.

+100
 
joo:

.... A proibição se seguiu, e Renat explicou claramente o motivo da proibição.

Eu só lhe pedi para fazer duas coisas:

1) informar ao visitante do perfil de um membro do fórum que este mesmo membro do fórum está proibido.

2) quando a proibição for emitida - para especificar o motivo (não após a explicação inteligível, mas no momento do anúncio da proibição).

Isto é apenas material técnico, que não tem nada a ver com moralidade, ou educação, ou qualquer outra coisa.

Ainda ouso sugerir a maneira correta de banir um usuário: um usuário não deve ser banido do fórum, mas apenas a criação de novos tópicos e postagens. para que o banido pelo menos possa fazer uma pergunta (pessoalmente) e não deitar a lista de usuários com novos apelidos.

É puramente uma solicitação/sugestão técnica/tecnológica para melhorar o motor do fórum.

 
f.t.:

Eu só lhe pedi para fazer duas coisas:

1) informar ao visitante do perfil de um membro do fórum que este mesmo membro do fórum está proibido.

2) quando a proibição for emitida - para especificar o motivo (não após a explicação inteligível, mas no momento do anúncio da proibição).

Isto é apenas material técnico, que não tem nada a ver com moralidade, ou educação, ou qualquer outra coisa.

Também ouso sugerir a maneira correta de banir um usuário: um usuário não deve ser banido do fórum, mas apenas a criação de novos tópicos e posts. que banido pelo menos poderia fazer uma pergunta (em particular) e não acarretava a lista de usuários de novos apelidos.

isto é puramente um pedido/proposta técnica/tecnológica para melhorar o motor do fórum.

Pessoalmente não tenho nada contra o que você disse, pelo contrário, eu o apoio. É que seu exemplo com nen foi infeliz e eu afixei com uma dica disso.
 
ANG3110:

OK, vou dar uma olhada no artigo que você está se referindo.

Sobre os dados subcarregados... Agora, por causa da passagem do tempo, não posso citar os troncos. Mas era algo parecido com isto.

No corretor americano ATC, a EA foi deixada ligada e o terminal foi fechado. No dia seguinte, o terminal foi aberto e após a abertura e o login automático houve uma pausa sem cotações. O consultor especializado enviou um pedido adicional para abrir uma posição e o histórico começou a ser trocado e a posição foi aberta de acordo com os cálculos do dia anterior na área onde deveria ter sido fechada, mas acabou de ser aberta e imediatamente perdida contra o mercado que se movia na direção oposta. A posição acabou sendo fechada com uma perda profunda, não me lembro o quanto perdeu, mas muito.

Outro caso. Deixei um Expert Advisor com um cálculo de canal em seu algoritmo, algo semelhante ao Bollinger, mas exigindo muitas barras porque tinha um algoritmo de adaptação. Eu não vi o momento em que o comércio começou, mas o vi cerca de 20 minutos depois. Descobriu-se que os desvios da média adaptada não foram considerados e o canal quebrou na linha, como se estivesse na média. Meu consultor especializado estava abrindo e fechando uma posição após a outra e perdeu cerca de $4.500 em 20 minutos por 0,2-0,3 lotes. 4.500$ em um mercado totalmente vencedor. Isto poderia acontecer se houvesse muito poucos dados ou se faltasse algo para o projeto que citei acima.

Agora eu sempre desligo os EAs após a negociação. Agora eu sempre desabilito os Expert Advisors após a primeira vez que abro o terminal novamente e espero que os dados sejam bombeados e só depois os ligo.

Do meu ponto de vista

um EA requer que os dados estejam disponíveis (geralmente quaisquer dados)

Pois todos os erros são divididos em erros no código e erros nos dados!

O problema é resolvido pela análise da disponibilidade dos dados. O problema é resolvido através da análise da disponibilidade dos dados necessários

e sua exatidão antes de usá-los!


Por exemplo: antes de dividir, é elementar verificar se estamos tentando dividir por zero.

este será o tom correto em quase qualquer situação, mesmo que você esteja certo ... que uma variável ... não pode ser = 0

A verificação dará 100% de certeza de que o programa não falhará ao se dividir! PORTANTO, VERIFIQUE OS DADOS!




para evitar este tipo de coisa!

o consultor especializado deve saber exatamente quantos bares precisa!

mais um algoritmo simples, mas eficaz

você deve começar a partir da vela que está trabalhando atualmente sobre o prazo ou prazos necessários

para correr até a profundidade correta! s e ver se há alguma barra perdida - não é muito difícil

não vou dar o código ... há aqui quem possa facilmente escrever tal código!


Em seguida, o consultor especializado não rasga ou fecha, ele REPARA!! que não há uma HISTÓRIA TOTAL!

você !!! leve isto em consideração - tome providências para preencher as barras que faltam!

e somente depois disso você permite que ele seja comercializado!

--

seu problema é que seu algoritmo não tem tal controle!

acrescente! porque é mais fácil do que perder $4.500 ...

--

Para aqueles que não conseguem escrever tal código, eles o escreverão aqui por $100-200

é menos de 4.500 dólares!

 
YuraZ:

do candelabro de trabalho atual sobre o prazo ou prazos desejados

corra até a profundidade certa! s e veja se há alguma barra perdida - não é muito difícil

Obrigado Yura pela dica.

Mas o que devo fazer, se acabo de abrir o terminal e a barra zero ainda está velha, por exemplo, do dia anterior. É claro que podemos correr até uma certa profundidade a partir dela contando as barras perdidas, mas isso será um erro. Como a EA sabe se esta é a última barra ou não? Eu disse anteriormente que, em princípio, pode-se comparar TimeLocal() e TimeCurrent() levando em conta a diferença de tempo e adicionando um pequeno delta, porque às vezes não há cotação para 3-5 minutos, especialmente em pares CAD, e provavelmente pode ser considerado um erro. Talvez seja suficiente fazê-lo durante a montagem e fixação das barras perdidas depois, por exemplo, quando a comunicação é interrompida por vários minutos, e provavelmente não é necessário recalcular em cada barra porque demoraria muito tempo para recalcular. O consultor especializado que escrevi sobre perdas requer até 20 mil barras para a adaptação inicial estatística. Para tal número seria angustiante procurar ciclos em cada barra e provavelmente não é necessário. Naturalmente, não é a melhor maneira e depende do relógio do computador, além disso. Talvez você possa pensar em algo melhor? Entretanto, como tenho observado ultimamente, se a função IsConect() for acionada, a barra zero geralmente aparece quase imediatamente.

 
ANG3110:

Obrigado, Yura, pela dica.

Mas o que devo fazer, se o terminal for apenas aberto e a barra zero ainda estiver velha - digamos do dia anterior. É claro que podemos correr até uma certa profundidade a partir dela contando as barras perdidas, mas isso será um erro. Como a EA sabe se esta é a última barra ou não? Eu disse anteriormente que, em princípio, pode-se comparar TimeLocal() e TimeCurrent() levando em conta a diferença de tempo e adicionando um pequeno delta, porque às vezes não há cotação para 3-5 minutos, especialmente em pares CAD, e provavelmente pode ser considerado um erro. Talvez seja suficiente fazer isso durante a montagem e fixação das barras perdidas depois, por exemplo, quando a comunicação é interrompida por vários minutos, e provavelmente não é necessário recalcular em cada barra porque demoraria muito tempo para contar. O consultor especializado que escrevi sobre perdas requer até 20 mil barras para a adaptação inicial estatística. Para tal número seria angustiante correr ciclos em cada barra e provavelmente não é necessário. Naturalmente, não é a melhor maneira e depende do relógio do computador, além disso. Talvez você possa pensar em algo melhor? Entretanto, como eu estava observando ultimamente, se a função IsConect() for acionada, a barra de zero geralmente aparece quase imediatamente.

Bem, tudo me parece simples... O procedimento int start() é chamado apenas com um novo tick, e é 100% significa que a função TimeCurrent() (retorna o último tempo conhecido do servidor (hora de chegada da última cotação)) já será real, independentemente da disponibilidade de barras...

Acho que tudo fica claro depois disso...

 
Renat:

Infelizmente, você não especificou nenhum dado inicial, parâmetros de teste ou registros.

Além disso, você está se referindo a bibliotecas (DLL), que não só exigem muitas instalações, mas também não funcionam devido à falta de bibliotecas adicionais (isto é para o autor das bibliotecas, que se esqueceu de arquivos DLL adicionais).

Entre em contato com o autor dessas bibliotecas para obter informações.


Se você seguisse o link fornecido por mim, você veria que apenas um parâmetro de entrada tem um valor e é definido como descrito: StopLoss=100...1 000 passo 10; x=1...1 000 000 passo 1. Além disso, eu lhe disse que a construção anterior não gerou este erro, então o erro é seu. Tudo funciona de fato. Ela só transmite esta estranha mensagem. Portanto, pode ser apenas esta mensagem para mim e pode não funcionar para outra pessoa por causa das conseqüências deste erro.
 
ANG3110:

Obrigado, Yura, pela dica.

Mas o que devo fazer, se o terminal for apenas aberto e a barra zero ainda estiver velha - digamos do dia anterior. É claro que podemos correr até uma certa profundidade a partir dela contando as barras perdidas, mas isso será um erro. Como a EA sabe se esta é a última barra ou não? Eu disse anteriormente que, em princípio, pode-se comparar TimeLocal() e TimeCurrent() levando em conta a diferença de tempo e adicionando um pequeno delta, porque às vezes não há cotação para 3-5 minutos, especialmente em pares CAD, e provavelmente pode ser considerado um erro. Talvez seja suficiente fazê-lo durante a montagem e fixação das barras perdidas depois, por exemplo, quando a comunicação é interrompida por vários minutos, e provavelmente não é necessário recalcular em cada barra porque demoraria muito tempo para recalcular. O consultor especializado que escrevi sobre perdas requer até 20 mil barras para a adaptação inicial estatística. Para tal número seria angustiante correr ciclos em cada barra e provavelmente não é necessário. Naturalmente, não é a melhor maneira e depende do relógio do computador, além disso. Talvez você possa pensar em algo melhor? Embora, como eu estava observando ultimamente, se a função IsConect() fosse acionada, a barra de zero geralmente aparece quase imediatamente.

Hi!


isto também pode ser verificado de forma lógica!

Primeiro, você recebe alguns carrapatos e cronometra o TimeCurrent() e se ele estiver longe das barras, você o carrega - mas você também precisa levar em conta o fim de semana.

na segunda-feira você precisa saber a hora de início em seu corretor, e na sexta-feira a hora de término ( na sexta-feira, em pequenos ff tem um pequeno erro de alguns compassos

( hora de início na segunda-feira e hora de término na sexta-feira pode ser calculada automaticamente pelo método de média para um período maior )

exemplo de lógica

// простой пример контроля истори, просто логика 
 
int ФЛАГпроверкиИСТОРИ =0; // 0-история не проверена или не загружена

void init()
{
    ФЛАГпроверкиИСТОРИ   =0; // ставим флаг
}


void start()
{
     // читаем историю на предмет пропущеных баров
    if ( ФЛАГпроверкиИСТОРИ   == 0)
    {
// проверяем а вся ли нужна история есть и если нет то она загружается
      // загружаем
       если загружена ФЛАГпроверкиИСТОРИ=1;
       return;
    }
}


 
Akkarin:

Se você seguisse o link fornecido por mim, você veria que apenas um parâmetro de entrada tem valor e foi definido, como é dito na descrição: StopLoss=100..1 000 passo 10; x=1..1 000 000 passo 1. Além disso, eu disse que a construção anterior não gerou este erro, então o erro é seu. Tudo funciona de fato. Ela só transmite esta estranha mensagem. Portanto, pode ser apenas esta mensagem para mim, enquanto outra pessoa pode deixar de trabalhar por causa das conseqüências deste erro.


Resolvi diligentemente tudo, li tudo, entendi a lógica, mas me deparei exatamente com o que ele disse - biblioteca dll de terceiros não suficiente, que o autor do conjunto de bibliotecas não expôs (embora até mesmo tenha feito o instalador).

Aparentemente, um esquecimento trivial. Mas não posso vasculhar a Internet procurando por alguns arquivos dll.

Razão: