MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1855

 
Tretyakov Rostyslav # :

닫힘 조건이 발생할 때

 //-------------------------------------------------------------------+  Команда на закрытие сетки ордеров
   if ((CountTrade( 0 ) > 1 && CalculiteProfit() >= 0 && OrderGroupCloseSignal()== 0 )||(CountTrade( 1 ) > 1 && CalculiteProfit() >= 0 && OrderGroupCloseSignal()== 1 ))
     {
      flag_close= 1 ;
     }

여기   조건은 CalculiteProfit() >= 0 입니다. 이 경우 필요한 이익이 얼마인지 계산할 수 있습니다.   그들을 위해   위치 및 세트는 가격과 위치에 따라 거기에서 이익을 얻거나 손절합니다. 그리고 매수와 매도가 서로 다른 가격으로 마감된다는 사실을 고려할 때 이는 포지션이 동일한 유형인 경우에만 적합합니다.

 
Andrey Sokolov # :

여기   조건은 CalculiteProfit() >= 0 입니다. 이 경우 필요한 이익이 얼마인지 계산할 수 있습니다.   그들을 위해   위치 를 설정하고 이익을 취하십시오.

나를 위한 것이 아니다)

EVGENII SHELIPOV 조건 작성자.

 

인사말. 말해 주세요.

MT5용 로봇에서는 이동 평균 과 같은 곡선을 차트에 표시해야 합니다. 물체에서 조각하는 것보다 더 "문명화된" 방법이 있습니까? 그렇다면 어떤 방법이 있습니까?

 
Andrey Sokolov # :

인사말. 말해 주세요.

MT5용 로봇에서는 이동 평균 과 같은 곡선을 차트에 표시해야 합니다. 물체에서 조각하는 것보다 더 "문명화된" 방법이 있습니까? 그렇다면 어떤 방법이 있습니까?

예 - 직접 꺼내십시오.
 
Artyom Trishkin # :
예 - 직접 꺼내십시오.

여기서 핵심 단어는 "유형"입니다. 타사 지표가 아닌 자체 데이터가 있습니다.

 
Andrey Sokolov # :

인사말. 말해 주세요.

MT5용 로봇에서는 이동 평균 과 같은 곡선을 차트에 표시해야 합니다. 물체에서 조각하는 것보다 더 "문명화된" 방법이 있습니까? 그렇다면 어떤 방법이 있습니까?

CCanvas에 값을 그립니다.

 
Andrey Sokolov # :

여기서 핵심 단어는 "유형"입니다. 타사 지표가 아닌 자체 데이터가 있습니다.

지표를 만들고 #resource 로 추가
 

안녕하세요. 말해 주세요. 거래 터미널 에는 ALERT와 같은 것이 있습니다. 즉, 우리는 그것을 가격 척도에 놓고이 가격에 도달했을 때 그 안에 실행 조건을 설정합니다. 그러나 그것은 일회용으로 밝혀졌습니다. 동일한 경고가 아닌 재사용 가능한 실행이 무엇인지 누가 알 수 있습니까? 즉, 팩의 조건을 충족하므로 끌 수 없습니다.

 
valentin104 거래 터미널 에는 ALERT와 같은 것이 있습니다. 즉, 우리는 그것을 가격 척도에 놓고 이 가격에 도달했을 때 그 안에 실행 조건을 설정합니다. 그러나 그것은 일회용으로 밝혀졌습니다. 동일한 경고가 아닌 재사용 가능한 실행이 무엇인지 누가 알 수 있습니까? 즉, 팩의 조건을 충족하므로 끌 수 없습니다.

 // использовать алерт
input bool alert = true ;
// уровень срабатывания
input double trigLv = 0.0 ;
// отклонение от trigLv в пунктах
input int deviation = 30 ; 


// функция взята из https://www.mql5.com/ru/docs/basis/types/double
bool EqualDoubles( double d1, double d2, double epsilon)
  {
   if (epsilon< 0 ) 
      epsilon=-epsilon;
//---
   if (d1-d2>epsilon) 
       return false ;
   if (d1-d2<-epsilon) 
       return false ;
//---
   return true ;
  }

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit () {
   return ( INIT_SUCCEEDED );
}

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[]
) {
   static bool triggered = false ;
   static datetime time_ = 0 ;
   if (!alert)
     return rates_total;
   if (EqualDoubles(trigLv, close[ 0 ], deviation * SymbolInfoDouble ( NULL , SYMBOL_POINT ))) { // сравнение цены Close с trigLv
     if (time_ != time[rates_total - 1 ])
      time_ = time[rates_total - 1 ];
     else
       return rates_total;
     if (!triggered)
       Alert ( "Level " , NormalizeDouble (trigLv, ( int ) SymbolInfoInteger ( NULL , SYMBOL_DIGITS )), " triggered!" );
    triggered = true ;
  }
   else
    triggered = false ;
  
   return rates_total;
}

MQL5용 코드. 차트에 이러한 지표를 원하는 만큼 추가하고 경고를 수신할 수 있습니다.

파일:
Alert.mq5  5 kb