EA-Setka-2/logic/rsi_cci/definesRC.mqh
super.admin a4b861dd93 convert
2025-05-30 14:50:44 +02:00

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