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

140 lines
No EOL
6.3 KiB
MQL5

#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