작업 종료됨
실행 시간 17 시간
![](https://c.mql5.com/i/avatar/avatar_na2.png)
피고용인의 피드백
Cliente muito compreensivo :), espero ter mais negócios com ele!
![](https://c.mql5.com/i/avatar/avatar_na2.png)
고객의 피드백
Desenvolvedor rápido atencioso muito educado. com certeza recomendo a toda comunidade.
명시
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.
응답함
1
등급
프로젝트
38
11%
중재
0
기한 초과
0
무료
2
등급
프로젝트
931
47%
중재
301
59%
/
25%
기한 초과
123
13%
작업중
3
등급
프로젝트
153
31%
중재
9
11%
/
44%
기한 초과
0
로드됨
4
등급
프로젝트
79
11%
중재
4
25%
/
75%
기한 초과
2
3%
무료
5
등급
프로젝트
17
59%
중재
2
0%
/
100%
기한 초과
2
12%
무료
6
등급
프로젝트
7
14%
중재
1
100%
/
0%
기한 초과
0
무료
7
등급
프로젝트
402
38%
중재
82
41%
/
20%
기한 초과
70
17%
로드됨
비슷한 주문
Warlen Mendes
30+ USD
Robo que dê lucro e um bom desempenho e com facilidade de operação, e instalação no mercado de forex, para garantir uma renda diária, semanal, mensal e anual, para termos uma liberdade financeira futuramente
Preciso de um EA para mt4
30 - 80 USD
Preciso de um EA que use estratégia valida para usar em prop firm que não faça a utilização de grid nem martingale, se possível posso ate explicar minha estratégia para tentar utilizar ela no robô
Converte o codigo pine para mql5 e mql4
30 - 45 USD
Acabei de criar a estratégia mas eu não sei programar mql5 e mql4 então eu preciso de ajuda , é porque eu não entendo o funcionamento do tradeview e quero usar o metatrader 5 e metatrader 4 porque ja cnheço bem
SEMPRE QUE O INDICADOR MOSTRAR A EXAUSTÃO NA FORÇA DE UMA PARIDADE GOSTARIA QUE FIZESSE A ENTRADA.. OU SEJA O INDICADOR VAI MOSTRAR UMA DEFASAGEM NAS FORÇAS DA PARIDADE E AMBAS AS FORÇAS SAINDO DO CENTRO DO INDICADOR, QUANDO AMBAS MOSTRAR A EXAUSTÃO, VOLTANDO PARA O CENTRO DO INDICADOR, SERIA ONDE FAÇO AS MINHAS ENTRADAS.. E GOSTARIA DE AUTOMATIZAR MEU OPERACIONAL. VOU DEIXAR UMA IMAGEM ABAIXO E PARA MAIS DUVIDAS
Robô Trend Catcher with Alert MT5
30 - 50 USD
Gostaria de um robô nos mesmos parâmetros do Trend Catcher with Alert MT5. M1 - M30 - H1 - H4 O Captador de Tendências: A Estratégia do Captador de Tendências com Indicador de Alerta é uma ferramenta versátil de análise técnica que auxilia os traders na identificação de tendências de mercado e potenciais pontos de entrada e saída. Apresenta uma Estratégia dinâmica do Captador de Tendências, adaptando-se às condições
Preciso de um robô que trabalhe baseado em cruzamento de médias, mas não é tão simples quanto parece...
30 - 100 USD
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
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
프로젝트 정보
예산
30+ USD
개발자에게
27
USD