75 lines
No EOL
5.9 KiB
MQL5
75 lines
No EOL
5.9 KiB
MQL5
#ifndef DEFINES_RC_MQH
|
|
#define DEFINES_RC_MQH
|
|
|
|
#define IND_ARRAY_BUFFER_SIZE 1
|
|
|
|
// Настройки входа по индикаторам RSI и CCIINPUT string Indicator_settings;
|
|
DEFINES_LABEL_NAME ( rsi_cci_filter_settings,"Фильтр - RSI-CCI" ); //===== Фильтры, ИНДИКАТОРНЫЙ RSI-CCI фильтр
|
|
DEFINES_LABEL_NAME ( rsi_cci_filter_settings_first,"Настройки первого входа" ); //=====
|
|
INPUT bool use_for1Order = false;
|
|
INPUT enum_time_frames CandleTimeframe = H1_;
|
|
INPUT enum_time_frames RsiTimeframe = M5_;
|
|
INPUT int RsiPeriod = 14;
|
|
//Период RSI фильтра 1-го колена
|
|
INPUT int RsiLevel = 20;
|
|
INPUT enum_time_frames CciTimeframe = M5_;
|
|
INPUT int CciPeriod = 30;
|
|
INPUT int CciLevel = 50;
|
|
|
|
DEFINES_LABEL_NAME ( rsi_cci_filter_settings_next,"Настройки последующих колен" ); //=====
|
|
INPUT int use_for_next_Order = 0;
|
|
INPUT enum_time_frames CandleTimeframeNext = H1_;
|
|
INPUT enum_time_frames RsiTimeframeNext = M5_;
|
|
//Уровень срабатывания RSI фильтра 50+\- 1-го колена
|
|
INPUT int RsiPeriodNext = 14;
|
|
//Период RSI фильтра N-го колена
|
|
INPUT int RsiLevelNext = 20;
|
|
//Уровень срабатывания RSI фильтра 50+\- N-го колена
|
|
INPUT enum_time_frames CciTimeframeNext = M5_;
|
|
INPUT int CciPeriodNext = 30;
|
|
INPUT int CciLevelNext = 50;
|
|
|
|
|
|
|
|
//--- Проверка параметров
|
|
bool rc_defines_validate(){
|
|
return valid_tfrm ( custom_tf_to_tf(CandleTimeframe) )
|
|
&& valid_tfrm ( custom_tf_to_tf(CandleTimeframeNext) )
|
|
&& valid_tfrm ( custom_tf_to_tf(RsiTimeframe) )
|
|
&& valid_inte ( RsiPeriod, RsiPeriod > 0 )
|
|
&& valid_tint ( RsiLevel)
|
|
&& valid_tfrm ( custom_tf_to_tf(RsiTimeframeNext) )
|
|
&& valid_inte ( RsiPeriodNext, RsiPeriodNext > 0 )
|
|
&& valid_tint ( RsiLevelNext)
|
|
&& valid_tfrm ( custom_tf_to_tf(CciTimeframe) )
|
|
&& valid_inte ( CciPeriod, CciPeriod > 0 )
|
|
&& valid_tint ( CciLevel)
|
|
&& valid_tfrm ( custom_tf_to_tf(CciTimeframeNext) )
|
|
&& valid_inte ( CciPeriodNext, CciPeriodNext > 0 )
|
|
&& valid_tint ( CciLevelNext)
|
|
&& valid_tboo ( use_for1Order)
|
|
&& valid_inte ( use_for_next_Order, use_for_next_Order>=0);
|
|
}
|
|
|
|
|
|
//--- Copy inputs to settings
|
|
void rc_settings(setting_t *result){
|
|
result.CandleTimeFrame1 = custom_tf_to_tf(CandleTimeframe);
|
|
result.CandleTimeFrame = custom_tf_to_tf(CandleTimeframeNext);
|
|
result.RsiTimeFrame = custom_tf_to_tf(RsiTimeframeNext);
|
|
result.RsiTimeFrame1 = custom_tf_to_tf(RsiTimeframe);
|
|
result.RsiPeriod1 = RsiPeriod;
|
|
result.RsiLevel1 = RsiLevel;
|
|
result.RsiPeriod = RsiPeriodNext;
|
|
result.RsiLevel = RsiLevelNext;
|
|
result.CciTimeFrame1 = custom_tf_to_tf(CciTimeframe);
|
|
result.CciTimeFrame = custom_tf_to_tf(CciTimeframeNext);
|
|
result.CciPeriod1 = CciPeriod;
|
|
result.CciLevel1 = CciLevel;
|
|
result.CciPeriod = CciPeriodNext;
|
|
result.CciLevel = CciLevelNext;
|
|
result.use_for1Order = use_for1Order;
|
|
result.use_for_next_Order = use_for_next_Order;
|
|
}
|
|
|
|
#endif |