Discussão do artigo "Automatizando Estratégias de Trading em MQL5 (Parte 7): Construindo um EA de Grid Trading com Escalonamento Dinâmico de Lote"
//--- Recuperar preços de barras recentes para a lógica do sinal de negociação double low1 = iLow(_Symbol, _Period, 1); double low2 = iLow(_Symbol, _Period, 2); double high1 = iHigh(_Symbol, _Period, 1); double high2 = iHigh(_Symbol, _Period, 2);
Essas variáveis não são usadas... por que esse código?
no código ...onde você usa a variável low1?
Qual é o problema com as variáveis? Algum erro? Elas são funções que podem ser usadas em qualquer parte do código.
Se eu tivesse que explicar melhor, eu diria para obter os preços mínimo e máximo da barra anterior e da barra anterior + 1.
void ExecuteInitialTrade(double ask, double bid){ //--- Sinal de compra: mínima da barra anterior acima da MA e barra anterior abaixo da MA if (iLow(_Symbol, _Period, 1) > maData[1] && iLow(_Symbol, _Period, 2) < maData[1]){ gridSize = ask - gridSize_Spacing; //--- Definir o acionador da grade abaixo da pergunta atual TakeProfit = ask + takeProfitPts; //--- Definir TP para COMPRA if(obj_Trade.Buy(LotSize, _Symbol, ask, 0, TakeProfit,"Initial Buy")) Print("Initial BUY order executed at ", ask, " with LotSize: ", LotSize); else Print("Initial BUY order failed at ", ask); isTradeAllowed = false; } //--- Sinal de VENDA: máxima da barra anterior abaixo da MA e barra anterior acima da MA else if(iHigh(_Symbol, _Period, 1) < maData[1] && iHigh(_Symbol, _Period, 2) > maData[1]){ gridSize = bid + gridSize_Spacing; //--- Definir o acionador da grade acima do lance atual TakeProfit = bid - takeProfitPts; //--- Definir TP para SELL if(obj_Trade.Sell(LotSize, _Symbol, bid, 0, TakeProfit,"Initial Sell")) Print("Initial SELL order executed at ", bid, " with LotSize: ", LotSize); else Print("Initial SELL order failed at ", bid); isTradeAllowed = false; } }
Especificamente aqui. Você pode mudar para o uso das funções ou ainda excluí-las se não as quiser. Isso está claro? Obrigado.
double low1 = iLow(_Symbol, _Period, 1);
Por exemplo: ..... para o sinal de compra, você usou a variável iLow e não Low1
if (iLow(_Symbol, _Period, 1) > maData[1] && iLow(_Symbol, _Period, 2) < maData[1]){
é apenas para meu estudo, obrigado!!!
Essas quatro linhas podem ser comentadas
// double low1 = iLow(_Symbol, _Period, 1); // double low2 = iLow(_Symbol, _Period, 2); // double high1 = iHigh(_Symbol, _Period, 1); // double high2 = iHigh(_Symbol, _Period, 2);
está ok.....best EA .
As 4 linhas são confusas para um novato
ótimo artigo - muito obrigado... Estou estudando a abordagem de negociação que usarei para editar minhas próprias negociações com símbolos de hashedge personalizados!
verificando....
- 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 Automatizando Estratégias de Trading em MQL5 (Parte 7): Construindo um EA de Grid Trading com Escalonamento Dinâmico de Lote foi publicado:
O grid trading é uma abordagem sistemática que posiciona ordens de compra e venda em intervalos de preço predeterminados, permitindo que os traders capitalizem sobre as flutuações do mercado sem exigir previsões precisas de tendência. Essa estratégia se beneficia da volatilidade do mercado ao abrir e fechar negociações continuamente dentro de uma faixa de preço definida. Para aprimorar seu desempenho, integraremos o escalonamento dinâmico de lote, que ajustará os tamanhos das posições com base em condições predefinidas, como saldo da conta, volatilidade ou resultados de negociações anteriores. Nosso sistema de Grid Trading operará com os seguintes componentes principais:
Em resumo, aqui está a visualização completa do blueprint da estratégia para facilitar o entendimento.
Ao combinar um sistema de grid estruturado com dimensionamento adaptativo de lote, criaremos um EA que maximiza os retornos enquanto gerencia o risco de forma eficaz. Em seguida, implementaremos esses conceitos em MQL5.
Autor: Allan Munene Mutiiria