초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 225

 

좋은 저녁이에요!

예전부터 입장을 일찍 수정했는지 안했는지 구분하기 위해 댓글이 달린 시스템을 사용했습니다..

예를 들어 구매 주문 을 한 후 위치에서 SL과 TP를 변경했다는 사실을 올바르게 구별하는 방법은 무엇입니까? 이 직책이나 기능에 대한 특별한 필드가 있습니까?

 
websafe25 :

좋은 저녁이에요!

예전부터 입장을 일찍 수정했는지 안했는지 구분하기 위해 댓글이 달린 시스템을 사용했습니다..

예를 들어 구매 주문 을 한 후 위치에서 SL과 TP를 변경했다는 사실을 올바르게 구별하는 방법은 무엇입니까? 이 직책이나 기능에 대한 특별한 필드가 있습니까?

그럴 가능성은 거의 없습니다.

IMHO, 당신은 포지션이나 주문의 현재 상태에 의존해서는 안됩니다. 재시작 후 시스템 자체가 현재 시장 상황과 같은 상태를 형성할 때 훨씬 더 안정적입니다. 그 후에는 신청서의 위치와 배치가 일치하게 됩니다.

 
pronych :

그럴 가능성은 거의 없습니다.

IMHO, 당신은 포지션이나 주문의 현재 상태에 의존해서는 안됩니다. 재시작 후 시스템 자체가 현재 시장 상황과 같은 상태를 형성할 때 훨씬 더 안정적입니다. 그 후에는 신청서의 위치와 배치가 일치하게 됩니다.

답변 해주셔서 감사합니다.

제 상황을 설명하겠습니다.

예를 들어 포지션이 10핍의 이익 에 도달하면 손실이 없는 포지션으로 이동하고 싶습니다.

지금 그런 상황이 있습니다.

 if (AccountInfo.OrderProfitCheck( _Symbol , ORDER_TYPE_SELL ,Lot,PositionInfo.PriceOpen(), NormalizeDouble (PositionInfo.PriceOpen()-ModifyPips* _Point , _Digits )) <= PositionInfo.Profit())
        {
         if (Trade.PositionModify( _Symbol , NormalizeDouble (PositionInfo.PriceOpen()-ModifySLPips* _Point , _Digits ), NormalizeDouble (PositionInfo.PriceOpen()-TP* _Point , _Digits )))
          {

거래의 이익이 10포인트보다 크거나 같으면 스톱을 변경합니다. 이익은 늘어나고 수정은 계속 반복되고 계속해서 손실이 없는 거래로 한 번 이동한 다음 그냥 놔둬야 합니다....

어떻게 제거할 수 있습니까? 아니면 <=가 아니라 =로 쓰는 것이 더 낫습니까? 고문이이 작업에 도달하고 거래 이익을 비교하기 시작하는 동안 더 이상 10 포인트와 같지 않고 이익이 더 커지면 손실없이 닫히지 않는 옵션이 있습니까?

PS> 제 생각엔 포지션 잡을때 SL이 가격에서 어느정도 수준인지 보고 그 가격보다 높으면 이미 수정한거 같은데...

다음과 같이 해결했습니다.

 if (PositionInfo.Select( _Symbol ))
{
   if (PositionInfo.PositionType()== POSITION_TYPE_BUY )
     {
     if (PositionInfo.StopLoss() > PositionInfo.PriceOpen())
       {
         if (AccountInfo.OrderProfitCheck( _Symbol , ORDER_TYPE_BUY ,Lot,PositionInfo.PriceOpen(), NormalizeDouble (SymbolInfo.Ask()+ModifyPips* _Point , _Digits )) >= PositionInfo.Profit())
          {
             Trade.PositionModify( _Symbol , NormalizeDouble (PositionInfo.PriceOpen()+ModifySLPips* _Point , _Digits ), NormalizeDouble (PositionInfo.PriceOpen()+TP* _Point , _Digits ));
          }
       }
     }
   if (PositionInfo.PositionType()== POSITION_TYPE_SELL )
     {
     if (PositionInfo.StopLoss() < PositionInfo.PriceOpen())
       {
       if (AccountInfo.OrderProfitCheck( _Symbol , ORDER_TYPE_SELL ,Lot,PositionInfo.PriceOpen(), NormalizeDouble (PositionInfo.PriceOpen()-ModifyPips* _Point , _Digits )) <= PositionInfo.Profit())
        {
        Trade.PositionModify( _Symbol , NormalizeDouble (PositionInfo.PriceOpen()-ModifySLPips* _Point , _Digits ), NormalizeDouble (PositionInfo.PriceOpen()-TP* _Point , _Digits ));
        }
       }
     }
}
 
websafe25 :

PS> 제 생각엔 포지션 잡을때 SL이 가격에서 어느정도 수준인지 보고 그 가격보다 높으면 이미 수정한거 같은데...

다음과 같이 해결했습니다.

PS 이후에 작성한 내용은 매우 분명합니다. (정말로 매우 정확해야 하는 경우 마지막 측정 이후 높은/낮은 막대로 레벨을 찾을 때까지)) 하지만 그럴 가능성은 거의 없습니다.)

'이익'의 개념에서 벗어나 '포인트'의 개념으로 전환하는 것이 바람직할 뿐입니다.

그리고 마지막 거래의 가격 을 고려하지 않는 것이 더 아름다울 것입니다( 마지막 ) (그리고 일반적으로 이러한 유형의 가격은 잊어버림), 우리에게 유익한 변형으로 요청/입찰합니다.))

 

좋은 저녁이에요!

불행히도 RSI와 같은 신호 모듈을 사용하는 방법에 대한 특정 지침을 찾을 수 없습니다. 즉, 초기화 방법, 매개 변수 설정 방법에 대한 기록이 있지만 Expert Advisor에서 구매 조건을 확인하는 것이 얼마나 쉬운지 - 아니요. 무엇 향후 계획? 매수/매도 조건이 있는지 확인하는 방법은 무엇입니까?

/--- Creating signal
   CExpertSignal *signal= new CExpertSignal;
   if (signal== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating signal" );
      ExtExpert.Deinit();
       return (- 2 );
     }
//---
   ExtExpert.InitSignal(signal);
   signal.ThresholdOpen( 100 );
   signal.ThresholdClose( 100 );
   signal.PriceLevel( 0.0 );
   signal.StopLevel(SL);
   signal.TakeLevel(TP);
//--- Creating filter CSignalRSI
   CSignalRSI *filter0= new CSignalRSI;
   if (filter0== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating filter0" );
      ExtExpert.Deinit();
       return (- 3 );
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PeriodRSI(PeriodRSI);
   filter0.Applied( PRICE_CLOSE );
   filter0.Weight( 0.8 );
 
websafe25 :

좋은 저녁이에요!

불행히도 RSI와 같은 신호 모듈을 사용하는 방법에 대한 특정 지침을 찾을 수 없습니다. 즉, 초기화 방법, 매개 변수 설정 방법에 대한 기록이 있지만 Expert Advisor에서 구매 조건을 확인하는 것이 얼마나 쉬운지 - 아니요. 무엇 향후 계획? 매수/매도 조건이 있는지 확인하는 방법은 무엇입니까?

신호 모듈은 설계 단계에서 어드바이저에 연결됩니다. 투표는 각 신호 모듈에서 구성됩니다 ...

일반적으로 읽을 기사:

6단계로 거래 로봇을 만드세요!

그리고 마지막으로

맞춤형 지표 거래 신호 생성기

 

그건 그렇고 - 투표 모듈에서 신호의 산술 평균을 취하는 것이 잘못된 것 같습니다.

 double CExpertSignal::Direction( void )
  {
   long    mask;
   double direction;
   double result=m_weight*(LongCondition()-ShortCondition());
   int     number=(result== 0.0 )? 0 : 1 ;       // number of "voted"
//---
   int     total=m_filters.Total();
//--- loop by filters
   for ( int i= 0 ;i<total;i++)
     {
       //--- mask for bit maps
      mask=(( long ) 1 )<<i;
       //--- check of the flag of ignoring the signal of filter
       if ((m_ignore&mask)!= 0 )
         continue ;
      CExpertSignal *filter=m_filters.At(i);
       //--- check pointer
       if (filter== NULL )
         continue ;
      direction=filter.Direction();
       //--- the "prohibition" signal
       if (direction== EMPTY_VALUE )
         return ( EMPTY_VALUE );
       //--- check of flag of inverting the signal of filter
       if ((m_invert&mask)!= 0 )
         result-=direction;
       else
         result+=direction;
// Вот тут бы       number+=filter.Weight();

      number++;
      }
//--- normalization
   if (number!= 0 )
      result/=number; // Вот туточки???
//--- return the result
   return (result);
  }
 
YAndrey :

그건 그렇고 - 투표 모듈에서 신호의 산술 평균을 취하는 것이 잘못된 것 같습니다.

모든 것이 논리적입니다.

자세한 내용 은 MQL5 마법사: 새 버전 을 참조하세요. 다음은 기사의 그림 일부입니다.

표준화

 
barabashkakvn :

모든 것이 논리적입니다.

자세한 내용 은 MQL5 마법사: 새 버전 을 참조하세요. 다음은 기사의 그림 일부입니다.

논리적인가요??? 가중치가 1이면 예, 논리적입니다.

2개의 필터 신호가 있다고 상상해보십시오. 하나는 훌륭하고 뚱뚱하며 나는 신뢰하고 그에게 1의 가중치를 부여합니다. 다른 하나는 작고 보조적입니다. 따라서 과시를 위해 무게 = 0.1입니다.

두꺼운 것은 100에 해당하는 매수 신호를 제공하고 무시할 수 있는 작은 것은 10을 매수하는 데 사용할 수 있습니다. 그리고 무엇이 나에게 일반적인 신호를 줄 것입니까 ??? 50.5??? 이 꼬마가 상황을 너무 과소평가한 게 이상하지 않나요???

 
YAndrey :

논리적인가요??? 가중치가 1이면 예, 논리적입니다.

2개의 필터 신호가 있다고 상상해보십시오. 하나는 훌륭하고 뚱뚱하며 나는 신뢰하고 그에게 1의 가중치를 부여합니다. 다른 하나는 작고 보조적입니다. 따라서 과시를 위해 무게 = 0.1입니다.

두꺼운 것은 100에 해당하는 매수 신호를 제공하고 무시할 수 있는 작은 것은 10을 매수하는 데 사용할 수 있습니다. 그리고 무엇이 나에게 일반적인 신호를 줄 것입니까 ??? 50.5??? 이 꼬마가 상황을 너무 과소평가한 게 이상하지 않나요???

1. 최종 투표수. 주요 특징은 방향입니다. 두 번째 특성은 최종 값입니다.
2. 두 가지 신호가 전략에서 작동하는 경우 하나는 강도가 100 * 1이고 두 번째 신호는 강도가 10 * 0.1인 경우 신호 선택 측면에서 전략을 재고해야 합니다.