Lazy Trader / Docs

Ручное редактирование plan-x.cfg

Карта переменных saved plan CFG для single-file workflow, где тестер берет значения прямо из plan-x.cfg.

Для тестера можно свести workflow к редактированию одного plan-x.cfg, но только если убрать или не использовать linked child CFG.

Сейчас plan-x.cfg это не просто один независимый файл. Он содержит embedded models pack + plan section, но в конце еще есть ссылки.

Когда linked child CFG заполнены

models_cfg_name=q
start_cfg_name=q
end_cfg_name=q
box_cfg_name=q
time_cfg_name=q
ma_cfg_name=q
swing_cfg_name=q

Почему это важно

Если эти ссылки заполнены и соответствующие файлы существуют, Lazy Trader после загрузки plan-x.cfg дополнительно загрузит child CFG и может перекрыть часть значений из самого плана.

Для single-file workflow лучше оставить linked CFG пустыми.

Single-file plan

models_cfg_name=
start_cfg_name=
end_cfg_name=
box_cfg_name=
time_cfg_name=
ma_cfg_name=
swing_cfg_name=

Тогда тестер берет значения прямо из plan-x.cfg.

Ниже карта текущего saved plan CFG. Важно: в plan-x.cfg model fields пишутся как model_0_field_60, а в отдельном model CFG как просто field_60.

Общие правила

  • 0/1 = false/true.
  • <i> = индекс модели/строки, начинается с 0.
  • <t> = индекс TP, начинается с 0.
  • TF = MQL5 timeframe int: 1=M1, 5=M5, 15=M15, 30=M30, 16385=H1, 16388=H4, 16408=D1.

Models Pack внутри Plan CFG

  • pack_version = версия pack-секции; пример 1.
  • pack_label = имя pack/preset; пример q.
  • history_depth = глубина истории для model/MA overlay; пример 120.
  • model_total = количество моделей в плане; пример 1.
  • model_<i>_kind = тип модели: 1=TRB/BF, 2=LT/LW, 3=DR, 4=SMR, 5=MS, 6=MA, 7=BPR.
  • model_<i>_show = показывать модель/overlay на графике; 0/1.
  • model_<i>_on = модель включена в расчет/торговлю; 0/1.
  • model_<i>_once_auto = runtime auto-disable once flag; лучше не генерировать вручную.
  • model_<i>_tf = timeframe модели; пример 5 для M5.
  • model_<i>_user_label = пользовательский label модели.
  • model_<i>_cfg_name = имя model CFG; пример q -> configs\MA-q.cfg для kind=6.
  • model_<i>_basic_cfg_name = имя basic CFG; пример q -> configs\basic-q.cfg.
  • model_<i>_be_enabled = BE включен; 0/1.
  • model_<i>_be_trigger = BE trigger в RR; пример 0.5000.
  • model_<i>_be_offset = BE offset в RR/points-семантике модели; пример 0.1000.
  • model_<i>_min_sl_on = Min SL включен; 0/1.
  • model_<i>_min_sl_pts = Min SL points.
  • model_<i>_max_sl_on = Max SL включен; 0/1.
  • model_<i>_max_sl_pts = Max SL points.
  • model_<i>_min_sl_fractal_on = Min SL = fractal size; 0/1.
  • model_<i>_tp_count = количество TP rows.
  • model_<i>_tp1_plan_tp = TP1 использовать plan TP; 0/1.
  • model_<i>_tp_rr_<t> = RR для TP t; пример model_0_tp_rr_0=1.0000.
  • model_<i>_tp_volume_pct_<t> = процент объема для TP t; пример 20.0.
  • model_<i>_field_<N> = model/basic parameter, карта ниже.
  • schema_first_count = сколько моделей в FIRST schema.
  • schema_first_kind_<i> = kind модели в FIRST schema.
  • schema_first_idx_<i> = индекс модели данного kind в FIRST schema.
  • schema_then_count = сколько моделей в THEN schema.
  • schema_then_kind_<i> = kind модели в THEN schema.
  • schema_then_idx_<i> = индекс модели данного kind в THEN schema.

Common field_N для всех моделей

  • field_74 = risk_part; доля риска модели; пример 0.1000.
  • field_70 = min_sl_on; Min SL включен; 0/1.
  • field_71 = min_sl_pts; Min SL в points.
  • field_72 = max_sl_on; Max SL включен; 0/1.
  • field_73 = max_sl_pts; Max SL в points.
  • field_106 = min_sl_auto_on; auto Min SL включен; 0/1.
  • field_107 = min_sl_auto_mult; multiplier auto Min SL; пример 1.0.
  • field_108 = max_sl_auto_on; auto Max SL включен; 0/1.
  • field_109 = max_sl_auto_mult; multiplier auto Max SL; пример 3.0.
  • field_86 = min_sl_fractal_on; Min SL = fractal size; 0/1.
  • field_87 = max_freq_on; Max frequency включен; 0/1.
  • field_110 = max_freq_minutes; пауза между входами в минутах; пример 45.
  • field_88 = once_on; once per setup/session; 0/1.
  • field_112 = max_pos_ignore_be_on; Ignore BE for max positions; 0/1.
  • field_89 = spread_to_sl; Add x Spread to SL; пример 2.
  • field_101 = max_spread_on; Max spread filter включен; 0/1.
  • field_102 = max_spread; Max spread points.
  • field_104 = max_spread_auto_on; auto Max spread включен; 0/1.
  • field_105 = max_spread_auto_mult; auto Max spread multiplier; пример 0.5.
  • field_99 = min_rr_on; Min RR включен; 0/1.
  • field_100 = min_rr; минимальный RR; пример 2.0.

TRB / BF, model_<i>_kind=1

  • field_1 = TRB model/fractal type; 1=ST/Fractal, 2=IT, 3=LT.
  • field_16 = TRB fractal mode; 3 или 5.
  • field_17 = confirm TF; MQL5 timeframe int.
  • field_2 = confirm mode; 1=body, 2=wick.
  • field_3 = PD entry level; 0.0..1.0, legacy enum 1/2/3/4 maps to 0/.25/.5/.75.
  • field_8 = SL level; 0.0..2.0.
  • field_10 = lifetime minutes; пример 120.
  • field_13 = max positions.
  • field_14 = BE trigger.
  • field_15 = BE offset.

LT / LW, model_<i>_kind=2

  • field_27 = LT model type; 2=Intermediate, 3=LongTerm.
  • field_28 = LT fractal mode; 3 или 5.
  • field_29 = lifetime minutes.
  • field_75 = open on reversal; 0/1.
  • field_76 = entry fib; пример 1.0.
  • field_77 = SL fib; пример 2.0.
  • field_22 = sweep range limiter.
  • field_23 = SL max ticks.
  • field_24 = max positions.
  • field_25 = BE trigger.
  • field_26 = BE offset.

DR, model_<i>_kind=3

  • field_113 = structure type; 1=type-1, 2=type-2.
  • field_114 = structure break mode; 1=body, 2=wick.
  • field_115 = structure dir count; type-1: 1..3, type-2: packed like 11, 12, 23.
  • field_81 = SL model type; 1=Fractal, 2=Intermediate, 3=LongTerm.
  • field_82 = SL fractal mode; 3 или 5.
  • field_33 = max positions.
  • field_34 = entry level.
  • field_32 = SL coef.
  • field_83 = structure direction check; 0/1.
  • field_35 = BE trigger.
  • field_36 = BE offset.

SMR, model_<i>_kind=4

  • field_116 = structure type; 1=type-1, 2=type-2.
  • field_117 = structure break mode; 1=body, 2=wick.
  • field_118 = structure dir count.
  • field_84 = SL model type; 1=Fractal, 2=Intermediate, 3=LongTerm.
  • field_85 = SL fractal mode; 3 или 5.
  • field_42 = PD entry.
  • field_43 = SL.
  • field_44 = max positions.
  • field_45 = BE trigger.
  • field_46 = BE offset.
  • field_57 = structure/SL model type; 1=Fractal, 2=Intermediate, 3=LongTerm.
  • field_58 = structure/SL fractal mode; 3 или 5.
  • field_52 = PD entry.
  • field_59 = SL.
  • field_53 = FVG only; 0/1.
  • field_54 = max positions.
  • field_55 = BE trigger.
  • field_56 = BE offset.

MA, model_<i>_kind=6

  • field_60 = fast period; пример 25.
  • field_61 = slow period; пример 55.
  • field_62 = MA method; 0=SMA, 1=EMA, 2=SMMA, 3=LWMA.
  • field_63 = applied price; 1=Close, 2=Open, 3=High, 4=Low, 5=Median, 6=Typical, 7=Weighted.
  • field_80 = entry above slow only; 0/1.
  • field_78 = SL model type; 1=Fractal, 2=Intermediate, 3=LongTerm.
  • field_79 = SL fractal mode; 3 или 5.
  • field_67 = max positions.
  • field_68 = BE trigger.
  • field_69 = BE offset.

BPR, model_<i>_kind=7

  • field_91 = max fractals between FVGs; пример 3.
  • field_92 = impulse fib; пример 0.50.
  • field_93 = entry mode; 1=aggressive, 2=half, 3=full fill.
  • field_94 = SL mode; 1=candle, 2=fractal 3, 3=full fill .1.
  • field_95 = max positions.
  • field_96 = BE trigger.
  • field_97 = BE offset.

Plan Section

  • plan_version = версия plan-секции; пример 1.
  • plan_label = имя плана; пример q.
  • plan_enabled = план включен; 0/1.
  • risk_mode = 0=percent, 1=dollar, 2=lots, 3=equity/lots mode.
  • risk_value = значение риска; пример 1.000000.
  • risk_value_base = base/cache risk value; обычно можно держать равным risk_value.
  • logic_mode = 0=long, 1=short, 2=box.
  • direction_mode = -1=none, 0=longs, 1=shorts, 2=box, 3=MA, 4=Swing.
  • entry = plan entry price; пишется 0 если cond_start=0.
  • stop = plan SL price; пишется 0 если cond_sl=0.
  • take = plan TP price; пишется 0 если cond_tp=0.

Direction MA и Swing

  • direction_ma_tf = Direction MA timeframe.
  • direction_ma_fast = Direction MA fast period.
  • direction_ma_slow = Direction MA slow period.
  • direction_ma_method = Direction MA method; 0=SMA, 1=EMA, 2=SMMA, 3=LWMA.
  • direction_ma_price = Direction MA price; 1=Close и т.д.
  • direction_ma_longs = allow longs by Direction MA; 0/1.
  • direction_ma_shorts = allow shorts by Direction MA; 0/1.
  • direction_ma_distance_on = MA distance filter enabled; 0/1.
  • direction_ma_distance_points = MA distance points.
  • direction_ma_distance_auto = auto distance; 0/1.
  • direction_ma_show = show Direction MA visual; 0/1.
  • direction_box_show = show Direction Box visual; 0/1.
  • direction_swing_tf1_on = Swing TF1 enabled; 0/1.
  • direction_swing_tf1 = Swing TF1 timeframe.
  • direction_swing_tf2_on = Swing TF2 enabled; 0/1.
  • direction_swing_tf2 = Swing TF2 timeframe.
  • direction_swing_tf3_on = Swing TF3 enabled; 0/1.
  • direction_swing_tf3 = Swing TF3 timeframe.
  • direction_swing_type = Swing fractal type; 1=Fractal/ST, 2=IT, 3=LT.
  • direction_swing_mode = Swing fractal mode; 3 или 5.
  • direction_swing_structure_type = 1=type-1, 2=type-2.
  • direction_swing_break_mode = 1=body, 2=wick.
  • direction_swing_dir_count = direction count; 1..3 or packed type-2 value.
  • direction_swing_show = show Swing visual; 0/1.
  • direction_swing_tf1_show = show TF1 overlay; 0/1.
  • direction_swing_tf2_show = show TF2 overlay; 0/1.
  • direction_swing_tf3_show = show TF3 overlay; 0/1.

Start-After Keys

  • cond_start = Start After Entry enabled; 0/1.
  • cond_struct = Start Swing/Structure gate enabled; 0/1.
  • start_struct_long = start structure direction long flag; 0/1.
  • cond_pd = Premium/Discount gate enabled; 0/1.
  • cond_imbalance = Imbalance gate enabled; 0/1.
  • cond_ma = Start MA gate enabled; 0/1.
  • cond_start_time = Start time gate enabled; 0/1.
  • cond_time = duplicate/legacy start time gate; keep same as cond_start_time.
  • start_struct_tf = Structure TF.
  • start_struct_type = 1=Fractal/ST, 2=IT, 3=LT.
  • start_struct_mode = 3 или 5.
  • start_struct_structure_type = 1=type-1, 2=type-2.
  • start_struct_break_mode = 1=body, 2=wick.
  • start_struct_dir_count = dir count.
  • start_pd_tf = Premium/Discount TF.
  • start_imbalance_tf = Imbalance TF.
  • start_imbalance_rearm_tf = Imbalance rearm TF.
  • start_imbalance_rearm_type = rearm fractal type.
  • start_imbalance_rearm_mode = rearm fractal mode.
  • start_imbalance_rearm_structure_type = 1=type-1, 2=type-2.
  • start_imbalance_rearm_break_mode = 1=body, 2=wick.
  • start_imbalance_rearm_dir_count = dir count.
  • start_imbalance_rearm_pd_only = rearm only through PD; 0/1.
  • start_prev_day_high = previous day high gate; 0/1.
  • start_prev_day_high_time_cfg = use time cfg for this gate; 0/1.
  • start_prev_day_low = previous day low gate; 0/1.
  • start_prev_day_low_time_cfg = use time cfg; 0/1.
  • start_prev_week_high = previous week high gate; 0/1.
  • start_prev_week_high_time_cfg = use time cfg; 0/1.
  • start_prev_week_low = previous week low gate; 0/1.
  • start_prev_week_low_time_cfg = use time cfg; 0/1.
  • start_prev_weekday_level = previous weekday high/low gate; 0/1.
  • start_prev_weekday_level_time_cfg = use time cfg; 0/1.
  • start_prev_weekday_day = weekday 1..5, Mon..Fri.
  • start_prev_weekday_high = 1=high, 0=low.
  • start_prev_levels_one_of = previous-level gates use OR instead of all; 0/1.
  • start_ma_tf = Start MA TF.
  • start_ma_fast = Start MA fast.
  • start_ma_slow = Start MA slow.
  • start_ma_method = 0=SMA, 1=EMA, 2=SMMA, 3=LWMA.
  • start_ma_price = applied price.
  • start_ma_longs = allow longs; 0/1.
  • start_ma_shorts = allow shorts; 0/1.
  • start_ma_distance_on = distance filter enabled; 0/1.
  • start_ma_distance_points = distance points.
  • start_ma_distance_auto = auto distance; 0/1.
  • start_vis_show = show Start canvas visuals; 0/1.
  • start_time_h = start time hour.
  • start_time_m = start time minute.

End-At Keys

  • cond_tp = End at TP enabled; 0/1.
  • cond_sl = End at SL enabled; 0/1.
  • cond_max = End at max loss enabled; 0/1.
  • cond_end_time = End at time enabled; 0/1.
  • end_time_h = end time hour.
  • end_time_m = end time minute.
  • end_prev_day_high = end/rearm by previous day high; 0/1.
  • end_prev_day_high_time_cfg = use time cfg; 0/1.
  • end_prev_day_low = previous day low; 0/1.
  • end_prev_day_low_time_cfg = use time cfg; 0/1.
  • end_prev_week_high = previous week high; 0/1.
  • end_prev_week_high_time_cfg = use time cfg; 0/1.
  • end_prev_week_low = previous week low; 0/1.
  • end_prev_week_low_time_cfg = use time cfg; 0/1.
  • end_prev_scope = 0=all, 1=longs, 2=shorts.
  • end_prev_rearm_loss = rearm after loss; 0/1.
  • end_prev_rearm_tp = rearm after TP; 0/1.
  • end_prev_rearm_tp_kind = level kind: 0=none, 1=PDH, 2=PDL, 3=PWH, 4=PWL.
  • end_prev_rearm_tp_time_cfg = use time cfg; 0/1.
  • end_prev_rearm_sl = rearm after SL; 0/1.
  • end_prev_rearm_sl_kind = level kind.
  • end_prev_rearm_sl_time_cfg = use time cfg; 0/1.
  • end_vis_show = show End visuals; 0/1.
  • time_vis_show = show Time visuals; 0/1.

Linked CFG и UI Visibility

  • models_cfg_name = linked models cfg name; blank for single-file plan.
  • start_cfg_name = linked start cfg name; blank for single-file plan.
  • end_cfg_name = linked end cfg name; blank for single-file plan.
  • box_cfg_name = linked box cfg name; blank for single-file plan.
  • time_cfg_name = linked time cfg name; blank for single-file plan.
  • ma_cfg_name = linked Direction MA cfg name; blank for single-file plan.
  • swing_cfg_name = linked Direction Swing cfg name; blank for single-file plan.
  • show_start_after = UI section expanded/visible; 0/1.
  • show_end_at = UI section expanded/visible; 0/1.
  • show_box = UI section expanded/visible; 0/1.
  • show_time = UI section expanded/visible; 0/1.
  • show_models = UI section expanded/visible; 0/1.

Box и Time Rows

  • box_count = number of box rows.
  • box_active = active box row index.
  • box_<i>_show = show box row visual; 0/1.
  • box_<i>_from_h = from hour.
  • box_<i>_from_m = from minute.
  • box_<i>_to_h = to hour.
  • box_<i>_to_m = to minute.
  • box_<i>_confirm_tf = confirm TF.
  • box_<i>_confirm_mode = 1=body, 2=wick.
  • box_<i>_flip = flip on break; 0/1.
  • box_<i>_session_mode = session mode; 0/1.
  • box_<i>_life_on = lifetime enabled; 0/1.
  • box_<i>_life_min = lifetime minutes.
  • time_count = number of time rows.
  • time_active = active time row index.
  • time_<i>_start_on = start bound enabled; 0/1.
  • time_<i>_start_h = start hour.
  • time_<i>_start_m = start minute.
  • time_<i>_end_on = end bound enabled; 0/1.
  • time_<i>_end_h = end hour.
  • time_<i>_end_m = end minute.
  • daily_close_on = daily close enabled; 0/1.
  • daily_close_h = daily close hour.
  • daily_close_m = daily close minute.
  • friday_close_on = friday close enabled; 0/1.
  • friday_close_h = friday close hour.
  • friday_close_m = friday close minute.
  • weekday_mon_on = Monday enabled; 0/1.
  • weekday_tue_on = Tuesday enabled; 0/1.
  • weekday_wed_on = Wednesday enabled; 0/1.
  • weekday_thu_on = Thursday enabled; 0/1.
  • weekday_fri_on = Friday enabled; 0/1.
  • weekday_sat_on = Saturday enabled; 0/1.
  • weekday_sun_on = Sunday enabled; 0/1.

Model Stats

  • model_stat_count = runtime stats rows. Для тестерных preset-файлов лучше ставить 0.
  • model_stat_<i>_kind = model kind.
  • model_stat_<i>_idx = model index.
  • model_stat_<i>_magic = magic.
  • model_stat_<i>_spent_open = open spent risk.
  • model_stat_<i>_spent_total = total spent risk.
  • model_stat_<i>_realized = realized total.
  • model_stat_<i>_opens = opens count.
  • model_stat_<i>_closes = closes count.
  • model_stat_<i>_realized_profit = realized profit.
  • model_stat_<i>_realized_loss = realized loss.
  • model_stat_<i>_win_events = win events.
  • model_stat_<i>_loss_events = loss events.

Минимальный MA-план для single-file тестера

pack_version=1
pack_label=ma_test
history_depth=120
model_total=1
model_0_kind=6
model_0_show=0
model_0_on=1
model_0_tf=5
model_0_cfg_name=
model_0_basic_cfg_name=
model_0_field_74=0.1000
model_0_field_60=25.0000
model_0_field_61=55.0000
model_0_field_62=1.0000
model_0_field_63=1.0000
model_0_field_89=2.0000
model_0_field_99=1.0000
model_0_field_100=2.0000
schema_first_count=0
schema_then_count=0

plan_version=1
plan_label=ma_test
plan_enabled=1
risk_mode=0
risk_value=1.000000
risk_value_base=1.000000
logic_mode=0
direction_mode=3
direction_ma_tf=5
direction_ma_fast=20
direction_ma_slow=50
direction_ma_method=1
direction_ma_price=1
direction_ma_longs=1
direction_ma_shorts=1
models_cfg_name=
start_cfg_name=
end_cfg_name=
box_cfg_name=
time_cfg_name=
ma_cfg_name=
swing_cfg_name=
model_stat_count=0

Admin presets отдельно от plan_cfg

Admin presets хранятся отдельно от обычных plan_cfg. Это не plan-x.cfg и не обычные UI presets, а входные slot-файлы для admin optimization module.

Этот слой нужен для пакетной оптимизации через admin inputs. Если клиентам нужен простой file-based workflow, им лучше давать ZEN\plan_cfg\plan-x.cfg.

Где лежат admin presets

MQL5\Files\ZEN\admin_presets\<slug>.cfg
TERMINAL_COMMONDATA_PATH\Files\ZEN\admin_presets\<slug>.cfg

Как включается admin optimization module

Admin optimization module включается через InpAdminTesterOptModuleEnabled = true.

Обычный tester workflow через InpDefaultPlanCfgFile=<name> грузит plan_cfg\plan-<name>.cfg.

Обычный tester workflow

InpDefaultPlanCfgFile=<name>
ZEN\plan_cfg\plan-<name>.cfg

Admin workflow через inputs

InpAdminTesterOptModuleEnabled=true
InpAdminOptBfConfig=...
InpAdminOptTimeConfig=...
InpAdminOptDirectionMode=...
...

В admin workflow Lazy Trader берет compiled defaults + overrides из файлов ZEN\admin_presets\*.cfg. Loader ищет local first, потом common Files.

Файлы admin presets

ZEN\admin_presets\bf.cfg
ZEN\admin_presets\lw.cfg
ZEN\admin_presets\cs1.cfg
ZEN\admin_presets\cs2.cfg
ZEN\admin_presets\csr.cfg
ZEN\admin_presets\bpr.cfg
ZEN\admin_presets\ma.cfg
ZEN\admin_presets\basic.cfg
ZEN\admin_presets\time.cfg
ZEN\admin_presets\start_swing.cfg
ZEN\admin_presets\start_fvg.cfg
ZEN\admin_presets\start_ma.cfg
ZEN\admin_presets\direction_swing.cfg
ZEN\admin_presets\direction_ma.cfg
ZEN\admin_presets\direction_box.cfg
ZEN\admin_presets\structure.cfg

Slot-based формат

version=1
slot.0.label=BF_1
slot.0.cfg_suffix=...
slot.0.tf=5
slot.0.model_type=1
slot.0.fractal_mode=3
...

Экспорт admin-generated плана

InpAdminOptSaveAsPlan=true
MQL5\Files\ZEN\AdminCfg\plan-<symbol>-<timestamp>.cfg

Короткая карта файлов

ZEN\plan_cfg\plan-x.cfg = обычный самодостаточный план для InpDefaultPlanCfgFile.
ZEN\admin_presets\*.cfg = админские slot-presets для optimization module.
ZEN\AdminCfg\plan-*.cfg = экспорт результата admin-generated плана, если включен SaveAsPlan.

Для native Strategy Tester optimization схема с внешним генератором должна оставаться slot-based: генератор заранее пишет admin_presets, а MT5 optimizer перебирает уже существующие enum/input значения.

Внешний генератор: общий поток

external generator
  -> пишет ZEN\admin_presets\*.cfg
  -> MT5 optimizer перебирает enum/input параметры
  -> Lazy Trader на OnInit собирает runtime plan из выбранных slots
  -> тестер считает pass

Что включать в tester inputs

InpDefaultPlanCfgFile=
InpAdminTesterOptModuleEnabled=true
InpAdminOptSaveAsPlan=false или true

Не смешивать loaders

InpDefaultPlanCfgFile лучше оставить пустым, чтобы не смешивать обычный plan-loader и admin optimizer.

Что оптимизировать в admin module

InpAdminOptBfConfig
InpAdminOptLwConfig
InpAdminOptClassicStructure1Config
InpAdminOptClassicStructure2Config
InpAdminOptClassicReversalConfig
InpAdminOptBprConfig
InpAdminOptMaConfig
InpAdminOptBaseConfig
InpAdminOptTimeConfig
InpAdminOptDirectionMode
InpAdminOptDirectionMa
InpAdminOptDirectionSwing
InpAdminOptDirectionBox

InpAdminOptBfOn
InpAdminOptLwOn
InpAdminOptClassicStructure1On
InpAdminOptClassicStructure2On
InpAdminOptClassicReversalOn
InpAdminOptBprOn
InpAdminOptMaOn

Внешний генератор должен писать полный набор файлов в local Files и желательно синхронно в Common Files. Текущий loader читает local first, потом FILE_COMMON, поэтому важно не оставлять stale local-файл, который перекроет common-файл.

Куда пишет внешний генератор

<MQL5 data>\Files\ZEN\admin_presets\*.cfg
<TERMINAL_COMMONDATA_PATH>\Files\ZEN\admin_presets\*.cfg

Типовые файлы генератора

ZEN\admin_presets\ma.cfg
ZEN\admin_presets\basic.cfg
ZEN\admin_presets\time.cfg
ZEN\admin_presets\bf.cfg
ZEN\admin_presets\lw.cfg
ZEN\admin_presets\bpr.cfg
ZEN\admin_presets\direction_ma.cfg
ZEN\admin_presets\direction_swing.cfg
ZEN\admin_presets\direction_box.cfg
ZEN\admin_presets\structure.cfg

Пример ma.cfg

version=1
slot.0.cfg_suffix=gen_ma_001
slot.0.tf=5
slot.0.fast_period=20
slot.0.slow_period=50
slot.0.method=1
slot.0.price=1
slot.0.sl_model_type=2
slot.0.sl_fractal_mode=3

slot.1.cfg_suffix=gen_ma_002
slot.1.tf=5
slot.1.fast_period=30
slot.1.slow_period=80
slot.1.method=1
slot.1.price=1
slot.1.sl_model_type=2
slot.1.sl_fractal_mode=3

Пример basic.cfg

version=1
slot.0.cfg_suffix=gen_basic_001
slot.0.max_positions=1
slot.0.once_on=0
slot.0.max_pos_ignore_be_on=1
slot.0.spread_to_sl=2
slot.0.max_spread_on=0
slot.0.max_spread_pts=0
slot.0.max_spread_auto_on=1
slot.0.max_spread_auto_mult=0.5
slot.0.min_sl_pts=0
slot.0.max_sl_pts=0
slot.0.min_sl_auto_on=0
slot.0.min_sl_auto_mult=1.0
slot.0.max_sl_auto_on=0
slot.0.max_sl_auto_mult=3.0
slot.0.min_sl_fractal_on=1
slot.0.max_freq_on=1
slot.0.max_freq_minutes=45
slot.0.min_rr_on=1
slot.0.min_rr=2.0
slot.0.be_enabled=1
slot.0.be_trigger=0.8
slot.0.be_offset=0.1
slot.0.tp1_plan_tp=0
slot.0.tp_count=3
slot.0.tp_rr_1=1.0
slot.0.tp_rr_2=2.0
slot.0.tp_rr_3=3.0

Пример time.cfg

version=1
slot.0.cfg_name=gen_time_001
slot.0.block_1_on=1
slot.0.block_1_start_h=8
slot.0.block_1_start_m=0
slot.0.block_1_end_h=12
slot.0.block_1_end_m=0
slot.0.block_2_on=1
slot.0.block_2_start_h=13
slot.0.block_2_start_m=0
slot.0.block_2_end_h=17
slot.0.block_2_end_m=0

Критичные ограничения внешнего генератора

  • Нельзя переписывать admin_presets\*.cfg во время уже запущенной оптимизации. Passes могут идти параллельно, разные agents могут читать файл в разное время.
  • Количество вариантов ограничено существующими enum slots. Если в коде MA_1..MA_5, генератор может заполнить 5 MA slots, а MT5 сможет оптимизировать выбор между этими 5 enum values.
  • Просто добавить slot.99 в файл недостаточно, если в input enum нет значения, которое на него ссылается.
  • Если генератор меняет содержимое файлов, но набор input-параметров тот же, MT5 может использовать optimization cache. Это опасно: результат может быть от старой версии файлов.
  • Варианты решения для cache: очищать optimization cache перед новым batch, менять input batch/version id, добавить input int InpAdminPresetBatchId или добавить #property tester_no_cache в main mq5, если готовы отключать кеш на уровне EA.
  • Для remote/cloud agents файловая история тоньше. Официально tester agents изолированы, а file operations идут через agent sandbox; FILE_COMMON помогает локальным agents и терминалу общаться через shared folder.
  • Для cloud/remote лучше сначала валидировать отдельно, потому что динамически сгенерированные внешние файлы не то же самое, что статический #property tester_file.

Рекомендуемая архитектура генератора

  1. Generator создает run_id, например 20260601_001.
  2. Generator пишет полный набор admin_presets/*.cfg в local Files и Common Files.
  3. Generator не трогает эти файлы до конца optimization run.
  4. В MT5 запускается optimization с InpAdminTesterOptModuleEnabled=true и пустым InpDefaultPlanCfgFile=.
  5. Optimizer перебирает enum slots.
  6. Lazy Trader на каждом pass собирает runtime plan из выбранных slots.
  7. Результаты берутся из MT5 Optimization Results.
  8. Если нужен audit/debug, включить InpAdminOptSaveAsPlan=true, тогда сгенерированные планы сохранятся в ZEN\AdminCfg\plan-<symbol>-<timestamp>.cfg.

Если нужны тысячи готовых конфигураций

Если нужна не slot-матрица, а тысячи произвольных полностью готовых конфигураций, лучше добавить отдельный adapter. Без такого adapter-а текущая admin-система годится для фиксированного числа enum slots.

Adapter для generated presets

input int InpAdminGeneratedPresetId = 0;
input int InpAdminPresetBatchId = 0;

ZEN\admin_presets\generated\<batch_id>\<preset_id>.cfg

Другие разделы Lazy Trader

Balanced Price Range (BPR)

BPR — это модель на сжатии imbalance: она работает с областью пересечения противоположных неэффективностей и позволяет выбирать глубину входа внутри этой balanced zone.

Открыть полный раздел

Moving Averages model

MA-модель делает больше, чем просто «касается быстрой средней»: перед входом она ещё валидирует ближайший подходящий фрактал слева.

Открыть полный раздел

Classic Structure Reversal

Classic Reversal становится актуален только тогда, когда сама структура уже повернулась; это не просто pullback-модель с другим стопом.

Открыть полный раздел

Classic Structure via primary liquidity sweep

Эта вариация открывается на первом важном structural-нарушении и трактует его как sweep, а не как полноценный reversal regime change.

Открыть полный раздел

Classic Structure Trend

Classic Trend участвует на pullback внутри активной структуры и не требует, чтобы направление самой структуры успело поменяться.

Открыть полный раздел

Classic Structure family

Classic Structure — это общий structural-layer для трёх отдельных страниц: trend continuation, primary liquidity sweep и reversal structure.

Открыть полный раздел

Larry-Williams model

Larry-Williams работает с границами range и поддерживает как прямое участие по breakout, так и return-entry после raid назад внутрь диапазона.

Открыть полный раздел

Box-Fractal model

Box-Fractal использует подтверждённый fractal-range как базу для entry и stop, а не входит по первому же экстремуму.

Открыть полный раздел

Position Manager

Position Manager выводит каждую открытую позицию в отдельную live-кнопку на графике и даёт управлять тейками, безубытком, стопом и объёмами без выхода из сценария Lazy Trader.

Открыть полный раздел

STATUS canvas

Status canvas собирает Direction, Start After, End At, Time и Models в одну live-карту: видно, что уже совпало, что ещё ждёт подтверждения и почему план сейчас в RUN или WAIT.

Открыть полный раздел

START AFTER menu

Start After не выбирает сторону сделки, а задаёт, что должно произойти до того, как план вообще получит право начать оценивать входы.

Открыть полный раздел

DIRECTION menu

Direction задаёт сторону работы плана: фиксированный long / short либо динамический bias через box, MA или swing-логику.

Открыть полный раздел

Автоматическое определение направления

Этот раздел объясняет связку Direction и Start After — именно там у большинства пользователей и формируется рыночный bias плана.

Открыть полный раздел

TIME menu

TIME — это session-логика: окна торговли, овернайты, дни недели, daily close, Friday close и тайминговые ограничения брокера.

Открыть полный раздел

END AT menu

END AT задаёт момент, после которого план перестаёт искать новые позиции, что не равно немедленному закрытию уже открытых сделок.

Открыть полный раздел

Что делает Lazy Trader

Этот раздел нужен, когда главный вопрос не «какую кнопку нажать», а «какую роль Lazy Trader вообще играет в процессе».

Открыть полный разделЛистайте карточки