Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 960

 
Vitaly Muzichenko :

Her onayda OnInit'i çekmemek için değer değişikliklerini kontrol etmek için bir bayrak ayarlamalısınız.

Bunun gibi bir şey:

Kazanılan teşekkür ederim.

Anladığım kadarıyla, IndicatorRelease yürütmek için de gerekli olacak

Eski hesaplama hala çizelgede asılı kaldığı için mi? En azından test cihazında.

O zaman kod bu mu?

 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 :

Kazanılan teşekkür ederim.

Anladığım kadarıyla, IndicatorRelease yürütmek için de gerekli olacak

Eski hesaplama hala çizelgede asılı kaldığı için mi? En azından test cihazında.

O zaman kod bu mu?

Ve kodunuza ekleyin:

 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 ;
    }
  }
 

Özel MA çekilişimi fiyattan değil, RSI göstergesinden nasıl yapabilirim?

iCustomGet aracılığıyla özel MA verileri alıyorum.

Bileşik bir gösterge ( bir göstergeden bir gösterge ) yapmak istiyorum.

 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 için örnekler

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 :

Özel MA çekilişimi fiyattan değil, RSI göstergesinden nasıl yapabilirim?

iCustomGet aracılığıyla özel MA verileri alıyorum.

Bileşik bir gösterge (bir göstergeden bir gösterge) yapmak istiyorum.

MT4 için örnekler

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

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

Ve eğer öyleyse : 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 :

Ve eğer öyleyse : iMA

Teşekkürler, ihtiyacınız olan şey

 

Bunun gibi bir şey için:

int1 = NormalizeDouble (dou1, 0 )

Derleyici şöyle tepki verir: tür dönüştürme nedeniyle olası veri kaybı

Soru: Nasıl doğru? (derleyici yemin etmesin diye)

 
User_mt5 :

Bunun gibi bir şey için:

Derleyici şöyle tepki verir: tür dönüştürme nedeniyle olası veri kaybı

Soru: Nasıl doğru? (derleyici yemin etmesin diye)

Derleyici küfretmez, ancak bir int'ye bir double sokmaya çalıştığınız konusunda uyarır.


 
User_mt5 :

Bunun gibi bir şey için:

Derleyici şöyle tepki verir: tür dönüştürme nedeniyle olası veri kaybı

Soru: Nasıl doğru? (derleyici yemin etmesin diye)

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

Derleyici küfretmez, ancak bir int'ye bir double sokmaya çalıştığınız konusunda uyarır.


Hemen hemen aynı şeyi merak ettim.

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

bu int yüzünden ... hatırladığım kadarıyla SymbolInfoInteger int türünü döndürdü ve şimdi aniden long dönmeye başladı

 
Alexey Viktorov :

Hemen hemen aynı şeyi merak ettim.

bu int yüzünden ... hatırladığım kadarıyla SymbolInfoInteger int türünü döndürdü ve şimdi aniden long dönmeye başladı

Her zaman uzun döndü - SymbolInfoInteger() özellik tanımlayıcılarına bakın

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