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

 
Vitaly Muzichenko :

모든 틱 에서 OnInit 를 가져오지 않도록 값 변경을 확인하는 플래그를 설정해야 합니다.

이 같은:

덕분에 벌었습니다.

내가 이해하는 한 IndicatorRelease 도 실행해야 합니다.

이전 계산이 여전히 차트에 남아 있기 때문에? 적어도 테스터에서는.

그렇다면 이것은 코드인가?

 void OnTick ()
  {
   // Ставим новый параметр индикатора и делаем пересчет с новым параметром ???
   static int NewExtInpMA_ma_period;
   if (ExtInpMA_ma_period != NewExtInpMA_ma_period)
    {
     NewExtInpMA_ma_period=ExtInpMA_ma_period;
     IndicatorRelease (handle_MA);
     OnInit ();
    }
  }
 
ilvic :

덕분에 벌었습니다.

내가 이해하는 한 IndicatorRelease 도 실행해야 합니다.

이전 계산이 여전히 차트에 남아 있기 때문에? 적어도 테스터에서는.

그렇다면 이것은 코드인가?

코드에 다음을 추가합니다.

 void OnTick ()
  {
   // Ставим новый параметр индикатора и делаем пересчет с новым параметром ???
   static int NewExtInpMA_ma_period;
   if (ExtInpMA_ma_period != NewExtInpMA_ma_period)
    {
     NewExtInpMA_ma_period=ExtInpMA_ma_period;
     IndicatorRelease (handle_MA);
     OnInit ();
     return ;
    }
  }
 

가격이 아닌 RSI 표시기에서 사용자 지정 MA를 가져오려면 어떻게 해야 합니까?

iCustomGet을 통해 사용자 지정 MA 데이터를 가져옵니다.

복합 지표( 지표의 지표 )를 만들고 싶습니다.

 input int             InpMA_ma_period      = 25 ;         // Параметры МА 
input int             InpMA_ma_shift       = 0 ;         // MA PRICE_HIGH and PRICE_LOW: horizontal shift 
input ENUM_MA_METHOD InpMA_ma_method      = MODE_SMA ;   // MA PRICE_HIGH: smoothing type 

int             handle_MA; 

int OnInit ()
  {
    handle_MA= iCustom (m_symbol.Name(), Period (), "MA" ,InpMA_ma_period,InpMA_ma_shift,InpMA_ma_method, PRICE_CLOSE );
  }

void OnTick ()
  {
   double MA_price= 0.0 ;
  MA_price=iCustomGet(handle_MA, 0 , 0 );
   Print ( "MA_price" ,MA_price);
  }

//Получаем данные кастом МА
double iCustomGet( int handle, const int buffer, const int index)
  {
   double Custom[ 1 ];
//--- reset error code 
   ResetLastError ();
//--- fill a part of the iCustom array with values from the indicator buffer that has 0 index 
   if ( CopyBuffer (handle,buffer,index, 1 ,Custom)< 0 )
     {
       //--- if the copying fails, tell the error code 
       PrintFormat ( "Failed to copy data from the iCustom indicator, error code %d" , GetLastError ());
       //--- quit with zero result - it means that the indicator is considered as not calculated 
       return ( 0.0 );
     }
   return (Custom[ 0 ]);
  }

MT4의 예

https://www.mql5.com/ru/forum/110186

https://www.mql5.com/ru/code/22638

Как в коде применить постороение одного индикатора по другому индикатору
Как в коде применить постороение одного индикатора по другому индикатору
  • 2008.08.03
  • www.mql5.com
Хочу написать советника по данной стратегии: http://unfx.ru/strategies_to_trade/strategies_139...
 
ilvic :

가격이 아닌 RSI 표시기에서 사용자 지정 MA를 가져오려면 어떻게 해야 합니까?

iCustomGet을 통해 사용자 지정 MA 데이터를 가져옵니다.

복합 지표(지표의 지표)를 만들고 싶습니다.

MT4의 예

https://www.mql5.com/ru/forum/110186

https://www.mql5.com/ru/code/22638

그리고 그렇다면 : iMA

 int    iMA ( 
   string                symbol,             // имя символа 
   ENUM_TIMEFRAMES       period,             // период 
   int                   ma_period,         // период усреднения 
   int                   ma_shift,           // смещение индикатора по горизонтали 
   ENUM_MA_METHOD        ma_method,         // тип сглаживания 
   ENUM_APPLIED_PRICE    applied_price       // тип цены или handle 
   );
 
Vladimir Karputov :

그리고 그렇다면 : iMA

감사합니다. 필요한 것

 

다음과 같은 경우:

int1 = NormalizeDouble (dou1, 0 )

컴파일러는 다음과 같이 반응합니다. 유형 변환으로 인한 데이터 손실 가능성

질문: 어떻게 옳습니까? (컴파일러가 맹세하지 않도록)

 
User_mt5 :

다음과 같은 경우:

컴파일러는 다음과 같이 반응합니다. 유형 변환으로 인한 데이터 손실 가능성

질문: 어떻게 옳습니까? (컴파일러가 맹세하지 않도록)

컴파일러는 맹세하지 않지만 double을 int에 밀어 넣으려고 한다고 경고합니다.


 
User_mt5 :

다음과 같은 경우:

컴파일러는 다음과 같이 반응합니다. 유형 변환으로 인한 데이터 손실 가능성

질문: 어떻게 옳습니까? (컴파일러가 맹세하지 않도록)

int1 = (int) NormalizeDouble (dou1, 0 )
 
Artyom Trishkin :

컴파일러는 맹세하지 않지만 double을 int에 밀어 넣으려고 한다고 경고합니다.


나는 거의 같은 것에 대해 궁금해했다.

deltaH4[i] = NormalizeDouble (bufOpen[i]-bufClose[i], ( int ) SymbolInfoInteger (m_symbol, SYMBOL_DIGITS ));

이 int 때문에 ... 내가 기억하는 한 SymbolInfoInteger 는 int type 을 반환했고 이제 갑자기 long을 반환하기 시작했습니다.

 
Alexey Viktorov :

나는 거의 같은 것에 대해 궁금해했다.

이 int 때문에 ... 내가 기억하는 한 SymbolInfoInteger 는 int type 을 반환했고 이제 갑자기 long을 반환하기 시작했습니다.

항상 긴 값을 반환했습니다. SymbolInfoInteger() 속성 식별자를 살펴보세요.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
사유: