#ifndef SETTING_MQH #define SETTING_MQH #include "enum/enum.mqh" #include "scheduler.mqh" struct setting_vol_filter { ushort n; ENUM_TIMEFRAMES candle_tf; int from_level; int end_level; int candles; bool null_bars; bool candles_one_way; bool candle_open_close; int candle_max_size; int stop_trade_timing; bool block_both_direction; }; class setting_t : public disposable_obj { public: bool is_testing; double testing_balance; double testing_layer_market_lot_min; int magic_number; float max_spread; bool close_all_orders; bool open_positions; bool open_first_order; int max_open_orders; int pause_on_close_in_sec; #ifdef USE_FILTERS #include "filters/setting.mqh" #endif #ifdef RSI_CCI #include "rsi_cci/setting.mqh" #endif enum_position_signal position_signal; ENUM_TIMEFRAMES time_frame; int candles_for_open_first_order; bool candles_for_open_first_order_open_close; int candles_for_open_first_order_min_pips; int candles_for_open_first_order_max_pips; bool revers_signal_to_open_first_order; bool candles_for_open_first_order_one_way; double lvl_open_first_order; int lvl_open_move_koaf; double lvl_no_first_order; enum_take_profit_calc_type tp_type; int take_proffit; int take_proffit_level1; int take_proffit_level1_corr; int take_proffit_level2; int take_proffit_level2_corr; int take_proffit_level3; int take_proffit_level3_fix_pips; uint tp_channel_height; ushort tp_channel_lvl; int take_profit_control_timing; int take_profit_control_noloss_fixpips; int max_spread_stop_drading_timing; int grid_step; int grid_level; int grid_value; int grid_level2; int grid_level2_add_pips; int grid_level3; int grid_level3_add_pips; int grid_stop; enum_calc_lot_type mult_type; int currency_for_001_lot; double lots; int lot_exp; int multi_lots_level1; double multi_lots_factor; int multi_lots_level2; double multi_lots_level2_corr; int multi_lots_level3; double multi_lots_level3_corr; int mult4; double mult4_add; int mult_stop; double max_lot; double test_min_lot; enum_gap_control_type gap_control; enum_gap_control_delete_pending_orders far_pending_orders_delete; int gap_max_order_stop; int gap_min_pips_from_market; int gap_min_pips; int gap_min_percent; double gap_lot_koef; double gap_last_order_koef; setting_vol_filter vol_filter; setting_vol_filter vol_filter2; setting_vol_filter vol_filter3; string hash_vol_filters; // хэш значений фильтра волатильности day_of_week_t trade_start_day; int trade_start_minute; day_of_week_t trade_end_day; int trade_stop_minute; datetime final_stop_trading; int max_trade_pairs; int currency_block; int no1Order_by_drawdown_percent; int no1Order_by_drawdown_percent_off; bool close_all_orders_by_drawdown_stop_trade; double close_orders_by_drawdown_for_001lot; double close_orders_by_drawdown_tp_ratio; int no_first_counter_order_from_level; string add_comment; int min_leverage; int min_time_step; string currency_block_label; string max_trade_pairs_label; enum_ctrl_panel show_comments; }; #endif