Correção de EA basedo em MAXD Intradey

MQL5 Experts Forex

Trabalho concluído

Tempo de execução 17 horas
Comentário do desenvolvedor
Cliente muito compreensivo :), espero ter mais negócios com ele!
Comentário do cliente
Desenvolvedor rápido atencioso muito educado. com certeza recomendo a toda comunidade.

Termos de Referência

Olá, eu preciso de um desenvolvedor experiente em MQL5 para corrigir um código de Expert Advisor que está com erros de compilação. O código é para uma estratégia baseada no indicador MACD e tem parâmetros de risco definidos pelo usuário. O código está anexado a este pedido. Por favor, me diga quanto tempo e quanto custa para fazer esse trabalho.

#define MagicNumber 12345
//---
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\AccountInfo.mqh>


// Parâmetros de entrada
input int MagicNumber = 12345;  // Número mágico para identificar as operações do robô
input double RiskPercentage = 1.0;  // Percentual de risco por operação (1.0 = 1%)
input int StopLoss = 20;  // Valor do stop-loss em pips
input int TakeProfit = 30;  // Valor do take-profit em pips


// Função de inicialização do robô
int OnInit()
{
    // Definir o risco por operação com base no saldo da conta
    double AccountBalance = AccountBalance();
    double RiskAmount = AccountBalance * RiskPercentage / 100.0;
    double OneLotValue = MarketInfo(Symbol(), MODE_TICKVALUE);

    // Definir o tamanho do lote com base no risco por operação e no valor de um lote
    double LotSize = RiskAmount / (OneLotValue * StopLoss);

    // Definir as configurações do risco
    SetRiskParameters(Symbol(), StopLoss, TakeProfit, LotSize);

    return (INIT_SUCCEEDED);
}

// Função para abrir uma posição de compra
void BuySignal()
{
    // Verificar se não há nenhuma posição aberta
    if (PositionsTotal() == 0)
    {
        // Gerar sinal de compra do MACD
        if (iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1) > iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 1))
        {
            // Calcular o tamanho do lote com base no risco por operação
            double LotSize = GetRiskLotSize(Symbol());

            // Abrir uma posição de compra
            int ticket = OrderSend(Symbol(), OP_BUY, LotSize, Ask, 3, Bid - StopLoss * Point, Bid + TakeProfit * Point, "Buy", MagicNumber, 0, Blue);
        }
    }
}

// Função para abrir uma posição de venda
void SellSignal()
{
    // Verificar se não há nenhuma posição aberta
    if (PositionsTotal() == 0)
    {
        // Gerar sinal de venda do MACD
        if (iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1) < iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 1))
        {
            // Calcular o tamanho do lote com base no risco por operação
            double LotSize = GetRiskLotSize(Symbol());

            // Abrir uma posição de venda
            int ticket = OrderSend(Symbol(), OP_SELL, LotSize, Bid, 3, Ask + StopLoss * Point, Ask - TakeProfit * Point, "Sell", MagicNumber, 0, Red);
        }
    }
}

// Função para gerenciar o risco da posição
void SetRiskParameters(string symbol, int stopLoss, int takeProfit, double lotSize)
{
    // Definir as configurações de stop-loss e take-profit
    int slippage = MarketInfo(symbol, MODE_SPREAD) + StopLevel * Point;
    double stopLossPrice = stopLoss * Point;
    double takeProfitPrice = takeProfit * Point;

    // Definir as configurações de risco para a posição atual
    for (int i = 0; i < OrdersTotal(); i++)
    {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
            if (OrderSymbol() == symbol && OrderMagicNumber() == MagicNumber)
            {
                if (OrderType() == OP_BUY)
                {
                    OrderModify(OrderTicket(), OrderOpenPrice(), stopLossPrice, takeProfitPrice, 0, Blue);
                }
                else if (OrderType() == OP_SELL)
                {
                    OrderModify(OrderTicket(), OrderOpenPrice(), stopLossPrice, takeProfitPrice, 0, Red);
                }
            }
        }
    }
}

// Função para calcular o tamanho do lote com base no risco por operação
double GetRiskLotSize(string symbol)
{
    double AccountBalance = AccountBalance();
    double RiskAmount = AccountBalance * RiskPercentage / 100.0;
    double OneLotValue = MarketInfo(symbol, MODE_TICKVALUE);
    double LotSize = RiskAmount / (OneLotValue * StopLoss);
    return LotSize;
}

// Função de execução contínua do robô
void OnTick()
{
    // Verificar os sinais de entrada
    BuySignal();
    SellSignal();
}

// Função de encerramento do robô
void OnDeinit(const int reason)
{
    // Encerrar todas as posições abertas
    for (int i = PositionsTotal() - 1; i >= 0; i--)
    {
        if (PositionSelectByTicket(PositionGetTicket(i)))
        {
            if (PositionMagicNumber() == MagicNumber)
            {
                OrderClose(PositionGetTicket(i), PositionGetDouble(POSITION_VOLUME), PositionGetDouble(POSITION_CLOSE), 3, Violet);
            }
        }
    }
}


Obrigado.

Respondido

1
Desenvolvedor 1
Classificação
(36)
Projetos
37
11%
Arbitragem
0
Expirado
0
Livre
2
Desenvolvedor 2
Classificação
(558)
Projetos
925
48%
Arbitragem
301
59% / 25%
Expirado
123
13%
Carregado
3
Desenvolvedor 3
Classificação
(99)
Projetos
153
31%
Arbitragem
9
11% / 44%
Expirado
0
Trabalhando
4
Desenvolvedor 4
Classificação
(47)
Projetos
79
11%
Arbitragem
4
25% / 75%
Expirado
2
3%
Livre
5
Desenvolvedor 5
Classificação
(11)
Projetos
17
59%
Arbitragem
2
0% / 100%
Expirado
2
12%
Livre
6
Desenvolvedor 6
Classificação
(6)
Projetos
7
14%
Arbitragem
1
100% / 0%
Expirado
0
Livre
7
Desenvolvedor 7
Classificação
(251)
Projetos
402
38%
Arbitragem
82
41% / 20%
Expirado
70
17%
Trabalhando
Pedidos semelhantes
Preciso de um robo que leia os sinais do Telegram, e que faça as operações no MT5. Os sinais são enviado no formato abaixo: Ex.: GOLD BUY ZONE (2387-2385) TP1: 2388.5 TP2: 2391 STOP LOSS: 2383 ____________________ Ex.: VENDA NA ZONA DE PREÇO (2383-2385) TP1: 2381.5 TP2: 2379 STOP LOSS: 2387 Veja que as ordens de compra e venda tem a nomenclatura diferente, por isso o robo tem que entender como no exemplo acima
1. Objetivo da Estratégia Maximizar os lucros com operações de curto prazo. Aproveitar cada sinal de entrada afim de rentabilizar o maximo possivel, sem deixar passar nenhuma oportunidade que o mercado me der. 2. Mercado e Instrumentos Forex (GBP/JPY) 3. Time Frame Gráficos de 5 minutos 4. Indicadores e Padrões EMA 7 (Media Exponencial de 7); EMA 20 (Media Exponencial de 20); VWAP Diária (Preço Médio Ponderado po
Gostaria de adquirir um robô lucrativo para o mercado de forex, pode ser para MT4 ou MT5. O robo precisa ter alvo de ganho e perda por operação, e precisa ter meta de Gain e de Loss diário, sendo retorno positivo e drawdow baixo. Se alguém estiver um que atenda esses requisitos, entrar contato comigo
Preciso que ele faça varia compras e vendas com baixa escalas de compra e venda no valor do lote de 0.01 a 0.20, com media de 50 pontos. Exemplo, compro a cota buy do lote em 8.0001 e venda quando chegar a 8.0051, se o robô viu na analise que ainda da pra comprar novamente ele já compra, caso não o mesmo esquema ele abre uma ordem de compra como sell e não varia de 50 pontos, só que abre varias vezes ao dia. E o
Operações de Milhões 30 - 1000 USD
A ideia é desse negócio, serve pra grandes operações. É uma forma de obter fontes de renda extra e mensal pra todo setor do mundo. Procurando forma operar todo tipo recursos financeiros a nível do mundial, em poucos dias com poucos lotes financeiros, aqui não é necessário você ter muito pra ganhar muito, com o pouco você faz milhões. Preciso atrair vários mercados financeiros só com um click e gerar emprego pra muita
EU TENHO UM EA DE MT5 CHAMADO FENIX EU TENHO SO A VERSAO DE TESTE DELE EM CONTAS DEMO, PRECISO QUE FACA UM IGUAL A ELE QUE SO TROCA O NOME DO ROBO E O CODIGO FONTE PARA PODER RODA EM CONTAS REAIS PRECISO DELE E DO CODIGO FONTE IGUAL O ROBO QUE JA TENHO DEMO
Mt5 para mt4 30+ USD
preciso de um programador que transforma meu robo de mt5 para mt4, mandando o codigo fonte depois passo o codigo fonte do mesmo. preciso urgente para fazer essa mudança no robos
Preciso de um robô para operações Forex, com ajuste de stop e realização de parciais, usando médias móveis e estratégias de negociação, dimensionamento de posição, timeframes e regras de gerenciamento de risco
Queria um robô que desse entrada automática na compra e venda de dólar, sendo que ele quando ele sair de uma operação ele puxasse o stop para que não perdesse tudo, ou seja ele entra em uma operação, coloca duas saídas, quando ele sai a primeira vez ganhado, o stop dele vem para o preço que negociou, dessa forma se o mercado tiver uma reversão, ele sai zerado na segunda operação e eu ganho a metade que estava
Desenvolver um robo conforme parametros para operar no fechamento do Box de Renko, conforme tamanho do box predeterminado, com saidas e entradas e stop loss e take profit predeterminados tamb[em

Informações sobre o projeto

Orçamento
30+ USD
Desenvolvedor
27 USD