기고글 토론 "자신만의 추적 손절매 만드는 법"

 

새로운 기고글 자신만의 추적 손절매 만드는 법 가 게재되었습니다:

트레이더의 기본 원칙 - 이익을 늘리고 손실을 줄이십시오! 이 글에서는 포지션 이익을 증가시킨 후 보수적인 중지 수준(손절매 수준)을 이동하는 이 규칙을 따를 수 있는 기본 기술 중 하나를 다뤄보도록 하겠습니다. 즉 - 추적 손절매 수준. SAR 및 NRTR 표시기에서 추적 손절매를 위한 클래스를 만드는 단계별 절차를 찾을 수 있습니다. 모든 사람은 이 추적 손절매를 expert에 삽입하거나 독립적으로 계정의 포지션을 ​​제어하는 ​​데 사용할 수 있습니다.

그림 11. Sample_TrailingStop을 시작한 후 차트의 버튼 및 표시기.

작성자: Dmitry Fedoseev

 

매우 유용합니다. 고마워요.


Steven

 

후행 예제는 오류와 함께 실패합니다.

 
어느 것을 지정해 주세요.
 

프로그래머 여러분, mql5에 대해 도와주세요!!!

클래스 없이 mql4에서와 같이 일반 후행 함수만 사용할 수 있나요? 예를 들어 이동평균.mq5에서 TradeSizeOptimised 함수가 구현되는 것처럼요.

나는 이미 예제, 기사, 포럼에서 모든 것을 검색했지만 아무것도 찾지 못했습니다. 나는 이미 완전히 길을 잃었습니다.... 누군가 준비된 변형을 가지고 있다면 매우 감사하겠습니다 !!! - 챔피언십에 참가하고 싶습니다.

 
Setslav:

프로그래머 여러분, mql5에 대해 도와주세요!!!

클래스 없이 mql4에서와 같이 일반 후행 함수만 사용할 수 있나요? 예를 들어 이동평균.mq5에서 TradeSizeOptimised 함수가 구현되는 것처럼요.

나는 이미 예제, 기사, 포럼에서 모든 것을 검색했지만 아무것도 찾지 못했습니다. 나는 이미 완전히 길을 잃었습니다.... 누군가 준비된 변형을 가지고 있다면 매우 감사하겠습니다 !!! - 정말 챔피언십에 참가하고 싶습니다.


여기 있습니다.

int TrailingStop()
  {
   if(PositionSelect(Symbol())) // 위치 선택
     {
      //MqlTradeRequest m_request;// 서버에 요청 구조를 선언합니다.
      //MqlTradeResult m_result;// 서버 응답 구조 선언
      double Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID);                         // 입찰 가격을 변수에 기록합니다.
      double Ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK);                         // 변수 매도 호가에 쓰기
      double OpenPrice=PositionGetDouble(POSITION_PRICE_OPEN);                     // 포지션 개시 가격을 변수에 기록합니다.
      double PositionSL=PositionGetDouble(POSITION_SL);                            // 변수에 스톱로스 레벨을 작성합니다.
      double PositionTP=PositionGetDouble(POSITION_TP);                            // 변수에 이익 실현 수준 쓰기

      if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) // 위치 유형 정의
        {
         if(TrailWhileMinus==true || Bid-OpenPrice>_Point*Trail) // 첫 번째 정류장 전송으로 손익분기점에 도달할 때까지 트롤링하지 마십시오.
           {
            if(Bid-PositionSL>Trail*_Point) //손절매 이동 필요성에 대한 기본 조건
              {
               //--- 구조에 데이터 쓰기
               request.action = TRADE_ACTION_SLTP;
               request.symbol = Symbol();
               request.sl     = NormalizeDouble(Bid-Trail*_Point,_Digits);
               request.tp     = NormalizeDouble(PositionTP,_Digits);
               //---
               return(OrderSend(request,result));                              // 서버에 요청을 보냅니다.
              }
           }
        }
      else
        {
         if(TrailWhileMinus==true || OpenPrice-Ask>_Point*Trail) // 첫 번째 정류장 전송으로 손익분기점에 도달할 때까지 트롤링하지 마십시오.
           {
            if(PositionSL-Ask>Trail*_Point) //손절매 이동 필요성에 대한 기본 조건
              {
               //--- 구조에 데이터 쓰기
               request.action = TRADE_ACTION_SLTP;
               request.symbol = Symbol();
               request.sl     = NormalizeDouble(Ask+Trail*_Point,_Digits);
               request.tp     = NormalizeDouble(PositionTP,_Digits);
               //---
               return(OrderSend(request,result));                            // 서버에 요청을 보냅니다.
              }
           }
        }
     }
   return(0);
  }
 
sergey1294:

여기 있습니다.

결과를 매개변수로 전달하는 것이 더 낫다고 생각합니다(이유 없이 그런 것은 아닐 것입니다).

그렇지 않으면 분석할 방법이 없습니다. 왠지 좋지 않습니다...

추신

또한 두 개의 함수, 즉 TrailingStopBuy와 TrailingStopSell을 만들 것입니다.

 
Interesting:

나는 (아마도 이유없이) 그 결과가 매개 변수로 전달되는 것이 더 낫다고 가정합니다.)

그렇지 않으면 분석 할 방법이 없습니다. 왠지 좋지 않습니다...

추신

저는 또한 TrailingStopBuy와 TrailingStopSell이라는 두 가지 함수를 만들 것입니다.

글쎄, 나는 그 사람이 이미 평범한 후행을 작성하는 방법을 이미 뇌에 만들었 기 때문에 그 사람에게 예를 들었고, 원칙적으로 테스터에서 오류없이 작동하고이 구성이 정상적으로 작동한다고 조금 생각하게했습니다. 실생활에서는 확인하지 않았습니다.
 
sergey1294:
글쎄, 나는 그 남자에게 예를 들었는데, 그는 이미 평범한 후행을 쓰는 방법을 뇌로 만든 다음 원칙적으로 테스터에서 오류없이 작동 할 것이라고 조금 생각하게했고,이 디자인은 잘 작동하기 때문에 실생활에서 확인하지 않았습니다.
물론 예를 들어 그렇게 할 것이지만 결과를 분석하지 않으면 많은 오류가 발생할 것입니다 (조만간) ...
 
sergey1294:

여기 있습니다.

감사합니다!
 

sergey1294,

다시 한번 감사드립니다, 모든 것이 작동합니다 !!!

함수에 매직 넘버로 수표를 추가하는 방법에 대한 작은 질문이 하나 더 있습니다. 나는 그런 수표를 삽입하려고 노력하고 있습니다:

if (OrderGetInteger(ORDER_MAGIC)==EA_Magic)
{
.....
}
..... 그러나 그것이 전체 거래를 깨뜨리는 것.....