거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Telegram에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
Experts

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

조회수:
57
평가:
(14)
게시됨:
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

안녕하세요,

"간단하면서도 효과적인 브레이크아웃 전략"의 업데이트입니다. 이 코드에서는 소품 회사 챌린지를 위한 몇 가지 도우미 함수를 추가했습니다.

일반적으로 프롭펌 챌린지를 통과하려면 세 가지 주요 기준을 충족해야 합니다:

  • 목표 수익
  • 일일 최대 손실을 위반하지 않을 것
  • 최대 손실을 위반하지 않을 것

이 코드에서는 "목표 수익"과 "일일 최대 손실 거의 위반"을 확인하여 모든 포지션을 자동으로 종료하고 대기 중인 주문을 모두 삭제하는 두 가지 함수를 포함했습니다. "최대 손실"의 경우 전략과 위험 관리에 따라 달라지므로 이 MQL5 스크립트에서는 언급하지 않습니다.

//+------------------------------------------------------------------+
//| 소품 회사 도우미 기능|
//+------------------------------------------------------------------+

// 모든 지정가 주문을 삭제하고 모든 포지션을 종료합니다.
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);
   }
}

// 수익 목표 달성 여부 확인
bool isPassed()
{
   return AccountInfoDouble(ACCOUNT_EQUITY) > PASS_CRITERIA;
}

// 일일 최대 손실 한도 위반 여부 확인
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;
   
   // 현재 잔액
   double current_balance = AccountInfoDouble(ACCOUNT_BALANCE);
   
   // 오늘의 마감된 거래 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)
      {
         // 거래 날짜 시간 가져오기
         MqlDateTime deal_time;
         TimeToStruct(HistoryDealGetInteger(ticket, DEAL_TIME), deal_time);
         // 거래 시간 확인
         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;
}

지정해야 할 매개 변수는 다음과 같습니다:

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

이 스크립트에서 값을 찾으시기 바랍니다.


MetaQuotes Ltd에서 영어로 번역함.
원본 코드: https://www.mql5.com/en/code/49713

XMA_이치모쿠 XMA_이치모쿠

이치모쿠 킨코 효 지표의 평균 계산과 유사한 계산 알고리즘으로 평균을 이동합니다.

울트라 모멘텀 울트라 모멘텀

이 지표는 모멘텀 기술 지표의 판독값과 여러 신호선의 분석을 기반으로 합니다.

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

이는 메타트레이더 5에서 처음 선보이는 기능입니다. 이제 차트를 클릭하여 가격 알림을 만들 수 있습니다.

3XMA_이시모쿠 3XMA_이시모쿠

지표, 그 아이디어는 여러 측면에서 지표 이치모쿠 긴코 효를 연상시킵니다.