การเทรดด้วยระบบ 게시글

MT4 EA 자동매매 – 손익 분기점 기반 트레이딩 전략

첨부파일
35609.zip (12.47 KB, 다운로드 0회)

이 작은 자동매매 시스템의 핵심 기능은 주문 수 계산입니다.

int OrdersCounter()
  {
   int counter=0;
//---
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS))
         if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) // 이 EA에 의해 열린 주문인지 확인
           {
//--- 손익 분기점이 발생한 경우
   /* 매수의 경우, StopLoss가 개시 가격 이상일 때만 확인. 대기 주문이 있는 경우에는 적합하지 않습니다. 매수 및 매도에만 적합합니다.*/
            double XBreakeven = OrderType()==OP_BUY ? OrderStopLoss() >= OrderOpenPrice() : OrderStopLoss() <= OrderOpenPrice();
            if(!XBreakeven) // 손익 분기점이 발생하지 않았다면
              {
               counter++; // 포지션 수를 계산
              }
           }
   return counter;
  }

여기서 우리는 손익 분기점 이상의 StopLoss를 가지지 않는 매수 주문과 개시 가격 이하의 StopLoss를 가지지 않는 매도 주문만 계산합니다. 즉, 손익 분기점이나 트레일링 스톱으로 개시 가격이 보호되지 않는 모든 주문을 계산합니다.

 double XBreakeven = OrderType()==OP_BUY ? OrderStopLoss() >= OrderOpenPrice() : OrderStopLoss() <= OrderOpenPrice();
            if(!XBreakeven) // 손익 분기점이 발생하지 않았다면

이렇게 해서 우리는 최대 포지션 수를 제한할 때 사용할 값을 반환하는 카운터를 만들고, 이 경우에는 한 번에 1개의 주문만 설정했습니다.

   if(OrdersCounter()<MaximumOrders)

따라서 손익 분기점이 발생하면 이 함수는 계산을 무시하게 되며, 이 예에서는 단 하나의 포지션만 있었기 때문에 결과는 0이 되고, 새로운 판매 주문을 열 수 있게 됩니다.

또한, 손익 분기점 기능을 만들지 않았다면 이렇게 할 수 없었을 것입니다.

void BreakEvenFunction()
  {
//---
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS))
         if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
           {
// 매수의 경우, Bid가 개시 가격 + 손익 분기점 pips 이상일 때
            double xHybrid = OrderType()==OP_BUY ? (Bid>OrderOpenPrice()+BreakevenPips*_Point && OrderStopLoss()<OrderOpenPrice()) : (Ask<OrderOpenPrice()-BreakevenPips*_Point && OrderStopLoss()>OrderOpenPrice());
            /* 매수의 경우 StopLoss가 개시 가격 이상일 때만 확인. 매도의 경우는 그 반대입니다.*/
            if(xHybrid)
              {
               bool modfy = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,clrNONE);
              }
           }
  }

이제 시도해 보세요!

    연관 포스트

    댓글 (0)