Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Experts

Breakout Strategy with Prop Firm Helper Functions - expert para MetaTrader 5

Visualizações:
77
Avaliação:
(14)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Olá a todos,

Esta é uma atualização da"Simple Yet Effective Breakout Strategy". Nesse código, adicionei algumas funções auxiliares para os desafios da empresa de suporte.

Em geral, para passar em um desafio de prop firm, você precisa atender a três critérios principais:

  • Meta de lucro
  • Não violar a perda máxima diária
  • Não violar a perda máxima

Nesse código, incluí duas funções para verificar "Lucro alvo" e "Quase violando a perda máxima diária" para sair automaticamente de todas as posições e excluir todas as ordens pendentes. A "perda máxima" realmente depende de sua estratégia e do gerenciamento de risco, portanto, não será mencionada neste script MQL5.

//+------------------------------------------------------------------+
//| Funções auxiliares da firma de propaganda|
//+------------------------------------------------------------------+

// Excluir todas as ordens pendentes e sair de todas as posições
void ClearAll(string message)
{
   Comment(message);
   for (int i = OrdersTotal() - 1; i >= 0; i--)
   {
      ulong orderTicket = OrderGetTicket(i);
      if (OrderSelect(orderTicket)) 
      {
         trade.OrderDelete(orderTicket);
      }
   }

   for (int i = PositionsTotal() - 1; i >= 0; i--)
   {
      ulong posTicket = PositionGetTicket(i);
      trade.PositionClose(posTicket);
   }
}

// Verificar se a meta de lucro foi atingida
bool isPassed()
{
   return AccountInfoDouble(ACCOUNT_EQUITY) > PASS_CRITERIA;
}

// Verificar se estamos prestes a violar a perda máxima diária
bool isDailyLimit()
{
   MqlDateTime date_time;
   TimeToStruct(TimeCurrent(), date_time);
   int current_day = date_time.day, current_month = date_time.mon, current_year = date_time.year;
   
   // Saldo atual
   double current_balance = AccountInfoDouble(ACCOUNT_BALANCE);
   
   // Obter as negociações fechadas de hoje PL
   HistorySelect(0, TimeCurrent());
   int orders = HistoryDealsTotal();
   
   double PL = 0.0;
   for (int i = orders - 1; i >= 0; i--)
   {
      ulong ticket=HistoryDealGetTicket(i);
      if(ticket==0)
      {
         Print("HistoryDealGetTicket failed, no trade history");
         break;
      }
      double profit = HistoryDealGetDouble(ticket,DEAL_PROFIT);
      if (profit != 0)
      {
         // Obter data e hora do negócio
         MqlDateTime deal_time;
         TimeToStruct(HistoryDealGetInteger(ticket, DEAL_TIME), deal_time);
         // Verificar a hora da transação
         if (deal_time.day == current_day && deal_time.mon == current_month && deal_time.year == current_year)
         {
            PL += profit;
         }
         else
            break;
      }
   }
   double starting_balance = current_balance - PL;
   double current_equity   = AccountInfoDouble(ACCOUNT_EQUITY);
   return current_equity < starting_balance - DAILY_LOSS_LIMIT;
}

Os parâmetros que precisamos especificar são:

input string dd = "-------------PROP FIRM CHALLENGE-----------------";
input bool   isChallenge = false;
input double PASS_CRITERIA = 110100.;
input double DAILY_LOSS_LIMIT = 4500.;

Espero que você encontre valores neste script.


Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/49713

Consultor especialista em teoria de probabilidade para Forex Consultor especialista em teoria de probabilidade para Forex

Consultor de Teoria da Probabilidade

Babi Ngepet Babi Ngepet

Compartilho meu código para o consultor especialista babi ngepet

Click on the market chart to create a price alert Click on the market chart to create a price alert

Essa é a primeira vez que isso acontece no MetaTrader 5. Agora você pode clicar no gráfico para criar alertas de preço.

Count consecutive no. of bull or bear bars Count consecutive no. of bull or bear bars

Código de amostra para contar o número consecutivo de barras de alta ou de baixa.