시스템트레이딩 게시글

브레이크 이븐 이후 추가 거래하기 - MetaTrader 4를 위한 EA 활용법

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

안녕하세요, 트레이더 여러분! 오늘은 MetaTrader 4에서 사용할 수 있는 매력적인 EA에 대해 이야기해볼게요. 이 EA의 가장 큰 장점은 주문 수를 세는 기능입니다.

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로 개설된 주문인지 확인
           {
//--- 브레이크 이븐이 발생했는지 확인
   /* 매수의 경우, 손절매가 개설 가격 이상인 경우만 해당. 대기 주문이 있을 경우에는 적합하지 않습니다. 매수와 매도에만 적합합니다.*/
            double XBreakeven = OrderType()==OP_BUY ? OrderStopLoss() >= OrderOpenPrice() : OrderStopLoss() <= OrderOpenPrice();
            if(!XBreakeven) // 브레이크 이븐이나 트레일링 스톱이 발생하지 않았을 경우
              {
               counter++; // 포지션 수 세기
              }
           }
   return counter;
  }

여기서 우리는 브레이크 이븐이나 트레일링 스톱이 발생하지 않은 주문만을 세고 있습니다. 즉, 개설 가격을 보호하지 않은 모든 주문을 세고 있다는 것이죠.

 double XBreakeven = OrderType()==OP_BUY ? OrderStopLoss() >= OrderOpenPrice() : OrderStopLoss() <= OrderOpenPrice();
            if(!XBreakeven) // 브레이크 이븐이나 트레일링 스톱이 발생하지 않았을 경우

이렇게 세어놓은 값을 통해 최대 포지션 수를 제한할 수 있습니다. 저의 경우, 한 번에 하나의 주문만 설정해 두었습니다.

   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())
           {
// 매수의 경우, 입찰가가 개설 가격 + 브레이크 이븐 핍스보다 높을 때
            double xHybrid = OrderType()==OP_BUY ? (Bid>OrderOpenPrice()+BreakevenPips*_Point && OrderStopLoss()<OrderOpenPrice()) : (Ask<OrderOpenPrice()-BreakevenPips*_Point && OrderStopLoss()>OrderOpenPrice());
            /* 매수의 경우, 손절매가 개설 가격 이상일 때만 해당. 매도는 반대입니다. */
            if(xHybrid)
              {
               bool modfy = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,clrNONE);
              }
           }
  }

이제 여러분도 이 기능을 시도해 보세요!

    연관 포스트

    댓글 (0)