Discussão do artigo "Construtor de estratégia visual. Criação de robôs de negociação sem programação" - página 6
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
...
Adicionarei a rolagem de roda em versões futuras....
Gostaria de compartilhar minha experiência na implementação da rolagem de roda. Talvez minha tecnologia não seja adequada para você, mas pode lhe dar a ideia certa (se você ainda não tiver decidido o método de implementação).
Dentro da função OnChartEvent() na condição :
1. eu uso a função ChartNavigate e defino o gráfico atual para a posição -100 barras atrás.
2. Eu defino o número da primeira barra visível usando ChartGetInteger(0,FIRST_VISIBLE_BAR) para a variável estática "First_bar_number".
3. Em seguida, corrijo o evento de gráfico CHARTEVENT_CHART_CHANGE uma vez (uso o sinalizador "a" e o sinalizador "b" para essa finalidade).
4. Comparo "Number_of_the_first_bar" e "Number_of_this_bar" (que também obtenho por meio de ChartGetInteger(0,FIRST_VISIBLE_BAR), mas em cada evento CHARTEVENT_CHART_CHANGE, e não uma vez, como com "Number_of_the_first_bar") e determino a direção do deslocamento do gráfico.
e determinar a direção do deslocamento do gráfico.
5. Em seguida, tudo é simples - movo a imagem do kanvas com ObjectSetInteger(0,G_CORE[CANVAS][_NAME],OBJPROP_YOFFSET,G_CORE[CANVAS][_FIELD_TO_VIEW_Y_DISTANCE]); retorno o gráfico à sua posição original - ChartNavigate(0,CHART_END,-100);
6. Eu pulo o próximo evento de gráfico porque ele é gerado a partir da função ChartNavigate chamada . Em seguida, tudo se repete.
Aqui está o código:
A desvantagem desse método é que o gráfico em segundo plano se movimenta. No entanto, seu construtor ocupa toda a parte visível dele e, portanto, isso não será perceptível.
A vantagem desse método é que você obtém uma excelente rolagem com a roda, não inferior à rolagem das janelas do Windows. Há energia, desaceleração... Além disso, ao passar o mouse sobre uma barra de rolagem horizontal e rolar a roda, tenho uma barra de rolagem horizontal. É fácil fazer isso.
Com essa rolagem, os usuários sentirão como se estivessem trabalhando em windup).
Esta é a aparência: https://www.mql5.com/ru/forum/139237/page7
Gostaria de compartilhar minha experiência na implementação da rolagem com a roda. Talvez minha tecnologia não seja adequada para você, mas ela pode lhe dar a ideia certa (se você ainda não tiver decidido o método de implementação).
Dentro da função OnChartEvent() na condição :
1. eu uso a função ChartNavigate e defino o gráfico atual para a posição -100 barras atrás.
2. Eu defino o número da primeira barra visível usando ChartGetInteger(0,FIRST_VISIBLE_BAR) na variável estática "First_bar_number".
3. Em seguida, corrijo o evento de gráfico CHARTEVENT_CHART_CHANGE uma vez (uso o sinalizador "a" e o sinalizador "b" para essa finalidade).
4. Comparo o "Number_of_the_first_bar" e o "Number_of_this_bar" (que também obtenho por meio de ChartGetInteger(0,FIRST_VISIBLE_BAR), mas em cada evento CHARTEVENT_CHART_CHANGE, e não uma vez, como no caso de "Number_of_the_first_bar").
e determinar a direção do deslocamento do gráfico.
5. Em seguida, tudo é simples - movo a imagem do kanvas com ObjectSetInteger(0,G_CORE[CANVAS][_NAME],OBJPROP_YOFFSET,G_CORE[CANVAS][_FIELD_TO_VIEW_Y_DISTANCE]); retorno o gráfico à sua posição original - ChartNavigate(0,CHART_END,-100);
6. Eu pulo o próximo evento de gráfico porque ele é gerado a partir da função ChartNavigate chamada . Em seguida, tudo se repete.
Aqui está o código:
A desvantagem desse método é que o gráfico em segundo plano se move. No entanto, seu construtor ocupa toda a parte visível dele, portanto, isso não será perceptível.
A vantagem desse método é que você obtém uma excelente rolagem de roda, não inferior à rolagem das janelas do Windows. Há energia, desaceleração... Além disso, ao passar o mouse sobre uma barra de rolagem horizontal e rolar a roda, tenho uma barra de rolagem horizontal. É fácil fazer isso.
Com essa rolagem, os usuários se sentirão como se estivessem trabalhando no windup).
Esta é a aparência: https://www.mql5.com/ru/forum/139237/page7
Obrigado.
O que há de errado com CHARTEVENT_MOUSE_WHEEL?
https://www.mql5.com/pt/docs/constants/chartconstants/enum_chartevents
Obrigado.
O que há de errado com CHARTEVENT_MOUSE_WHEEL?
https://www.mql5.com/pt/docs/constants/chartconstants/enum_chartevents
Quando fiz a rolagem com a roda, ela ainda não estava lá. Portanto, nem sequer tentei. (Além disso, ainda estou trabalhando no MT4, e parece que ele não está disponível lá).
Ele fornece energia e desaceleração?
Quando fiz a rolagem com a roda, ela ainda não estava lá. Por isso, nem sequer tentei. (Além disso, ainda estou trabalhando no MT4, e parece que ele não está disponível lá).
Ele fornece energia e desaceleração?
Não sei, não experimentei. Só me lembro de que existe esse evento.
Boa tarde.
Sou o NEOPROGRAMMIST para quem este produto e o artigo sobre ele existem.
Tenho uma dúvida - para fins didáticos, tentei reproduzir o Expert Advisor do exemplo número 1 (cruzamento de MA rápida e lenta). Fiz tudo como no artigo, letra por letra. Como resultado, o Expert Advisor às vezes abre e fecha imediatamente várias posições, criando instantaneamente uma perda. E, às vezes, ele abre uma única posição, tudo como deveria, e a fecha quando chega o sinal oposto. Tudo parecia estar bem pelo menos com esses, mas percebi que eles são sempre apenas Bai.
O esquema se dissolveu após reiniciar o computador (atualização à noite), portanto não consigo encontrar um possível erro, pois o código ainda é muito fraco, além de ser muito grande e incompreensível.
Você poderia revisar o código e sugerir o que eu fiz de errado?
Não sei, não experimentei. Só me lembro de que existe esse evento.
O evento está lá, mas ninguém o usou ainda).
Eu adoraria me livrar do meu método por causa da oscilação do gráfico, mas o MT4 não tem esse evento, e o MT5 ainda não sabe como ele funciona....
Boa tarde.
Eu sou o NEOPROGRAMISTA para o qual este produto e o artigo sobre ele existem.
Tenho uma dúvida - para fins didáticos, tentei reproduzir o Expert Advisor do exemplo número 1 (cruzamento de MA rápida e lenta). Fiz tudo como no artigo, letra por letra. Como resultado, o Expert Advisor às vezes abre e fecha imediatamente várias posições, criando instantaneamente uma perda. E, às vezes, ele abre uma única posição, tudo como deveria, e a fecha quando chega o sinal oposto. Tudo parecia estar bem, pelo menos com esses, mas percebi que eles são sempre apenas Buy.
O esquema se dissolveu depois de reiniciar o computador (atualização à noite), então não consigo encontrar um possível erro, pois o código ainda é muito fraco, além de ser tão grande e incompreensível.
Você poderia revisar o código e sugerir o que eu fiz de errado?
Comece examinando o padrão nº 1. Esse é exatamente o mesmo padrão considerado no artigo (apenas Travelling e Lossless foram adicionados). Você pode ver os parâmetros de todos os elementos e brincar com eles.
Há uma série de erros em seu Expert Advisor. Um deles é que você não alterou o tipo de transação no elemento para fazer vendas (ele diz "compra" em vez de venda).
Comece estudando o padrão nº 1. Esse é exatamente o esquema considerado no artigo (apenas Travelling e Breakeven foram adicionados). Você pode ver os parâmetros de todos os elementos e brincar com eles.
Há alguns erros em seu Expert Advisor. Um deles é que você não alterou o tipo de transação no elemento para fazer vendas (ele diz "compra" em vez de venda).
Obrigado, fiquei agradavelmente surpreso com a rapidez de sua resposta.
Entendo que o tipo de transação não foi alterado, e esse é o motivo pelo qual apenas as compras funcionam normalmente.
Mas em que lugar está errado o fato de que em meio segundo, aparentemente a cada tick, toda uma série de ordens é aberta e fechada de uma só vez, e há ordens de compra e venda. ???
Obrigado, fiquei agradavelmente surpreso com a rapidez da resposta.
Entendo que o tipo de transação não foi alterado, e esse é o motivo pelo qual apenas as compras funcionam normalmente.
Mas em que lugar está errado o fato de que em meio segundo, aparentemente a cada tick, toda uma série de ordens é aberta e imediatamente fechada, e há ordens de compra e venda. ???