Dimitri, você disse que não era escritor! Mas você é! Parabéns por um bom começo. É bom perceber que você começou com um material pequeno, mesmo que não seja tão volumoso, o principal é começar, e aí, com o passar do tempo, será cada vez mais longo ganhar experiência por meio de seus artigos e/ou de outros escritores.
Obrigado por sua atenção.
Dimitri, você disse que não era escritor! Mas você é! Parabéns por um bom começo. É bom perceber que você começou com um material pequeno, mesmo que não seja tão volumoso, o principal é começar, e à medida que for avançando, será cada vez mais longo ganhar experiência por meio de seus artigos e/ou de outros escritores.
Obrigado por seu tempo.
iMA_handle=iMA("EURUSD",PERIOD_H1,40,0,MODE_SMA,PRICE_CLOSE); //conectar o indicador e obter seu identificador ....... ChartIndicatorAdd(ChartID(),0,iMA_handle); // adicionar o indicador ao gráfico de preçosEle não funciona assim. Mas se você remover o símbolo e a hora, tudo estará OK.
iMA_handle=iMA(NULL,0,40,0,MODE_SMA,PRICE_CLOSE);
Ele não funciona assim. Mas se você remover o símbolo e a hora, tudo estará OK.
Se você testar no EURUSD e no período de uma hora, tudo funcionará.
Por outro lado, você encontrou o problema e o resolveu por conta própria usando a ajuda (talvez), o que não é uma vantagem?
Obrigado, o artigo foi corrigido.
Algumas pequenas perguntas:
1 O que acontece ou acontece quando o período de tempo do gráfico é alterado durante a execução?
2 ima_handle definido em OnInit(), iMA_handle=iMA("EURUSD",PERIOD_H1,10,0,MODE_SMA,PRICE_CLOSE);
É possível alterar os parâmetros dinâmicos desse identificador pelo próprio programa, como alterar PERIOD_H1,10 para PERIOD_M15, 39 durante a execução?
3 O que é deal?
Parabéns!
Código extremamente simples e bem escrito... Acho que, ao fazer referência à biblioteca, você fez em poucas linhas o que eu fiz em quase 100 (apenas para abrir posições longas e fechar posições longas).
Refiro-me especialmente a essas linhas:
if(m_Position.Select(my_symbol)) //se a posição para esse símbolo já existir
{
if(m_Position.PositionType()==POSITION_TYPE_SELL) m_Trade.PositionClose(my_symbol); //e essa é uma posição de venda, então feche-a
if(m_Position.PositionType()==POSITION_TYPE_BUY) return; /ou então, se essa for uma posição de compra, saia
}
m_Trade.Buy(0.1,my_symbol); //se chegamos até aqui, significa que não há posição; então a abriremos
}
if(iMA_buf[1]<Close_buf[1] && iMA_buf[0]>Close_buf[0]) //se os valores do indicador eram menores que o preço de fechamento e se tornaram maiores
{
if(m_Position.Select(my_symbol)) //se a posição para esse símbolo já existir
{
if(m_Position.PositionType()==POSITION_TYPE_BUY) m_Trade.PositionClose(my_symbol); //e essa é uma posição de compra, então feche-a
if(m_Position.PositionType()==POSITION_TYPE_SELL) return; /ou então, se essa for uma posição de venda, saia
}
m_Trade.Sell(0.1,my_symbol); //se chegamos aqui, significa que não há posição; então a abrimos
}
A única coisa que perdi pode ser um comando para negociar somente quando uma nova barra aparecer. Houve uma discussão em: www.mql5.com/en/forum/5762
Utilizo o seguinte código, postado lá por mogplus8:
static int LastBarCount=0;
if(Bars(_Symbol,_Period)>LastBarCount)
LastBarCount=Bars(_Symbol,_Period);
else
return;
Estou um pouco confuso com sua declaração sobre Trades.
As negociações apresentadas no artigo são muito parecidas com os "selos" no artigo http://mqlmagazine.com/leading-article/orders-positions-and-deals-part-i/. São a mesma coisa? Eles são a mesma coisa? Quais são as diferenças?
A propósito, na página vinculada, o autor afirma: Cada ordem colocada no mercado é uma negociação em si, com seu próprio resultado, independente das demais.
Colei as palavras aqui apenas para esclarecer os possíveis equívocos para aqueles que prestaram atenção aos comentários.
Obrigado.
- mqlmagazine.com

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Uma rápida inicialização ou um guia breve para iniciantes foi publicado:
Olá, caro leitor! Neste artigo, tentaremos explicar e mostrar como você pode facilmente e rapidamente compreender os princípios da criação de Expert Advisors, trabalhar com indicadores, etc. Este artigo é destinado a iniciantes e não apresentará nenhuma dificuldade ou exemplos de difícil entendimento.
Autor: Dmitriy Parfenovich