Skip to content

Simulation launch

Once the entire market architecture is modelled, including energy assets, the user can launch the trading simulation by running a command line including desired setup features:

  • -d, --duration: simulated duration of simulation [default: 1d]
  • -t, --tick-length: simulated duration of a tick [default: 1s]
  • -s, --slot-length: simulated duration of a market slot [default: 15m]
  • -c, --cloud-coverage: Cloud coverage, 0 for sunny, 1 for partial coverage, 2 for clouds. [default: 0]
  • --slot-length-realtime: Desired duration of slot in realtime [default: 0s]

Example simulation call:

gsy-e -l ERROR run --duration=1d --tick-length=1s --slot-length=15m --cloud-coverage=0 --setup default_2a

Getting help in the command line:

gsy-e run --help

returns

Usage: gsy-e [OPTIONS] COMMAND [ARGS]...

  Entrypoint for command-line interface interaction.

Options:
  -l, --log-level [CRITICAL|FATAL|ERROR|WARN|WARNING|INFO|DEBUG|NOTSET|TRACE]
                                  Log level  [default: INFO]
  --help                          Show this message and exit.

Commands:
  run*  Configure settings and run a simulation.
(gsy-e) hannesd@Hannes-MBP gsy-e % gsy-e run --help
Usage: gsy-e run [OPTIONS]

  Configure settings and run a simulation.

Options:
  -d, --duration INTERVAL         Duration of simulation  [default: 1d]
  -t, --tick-length INTERVAL      Length of a tick  [default: 1s]
  -s, --slot-length INTERVAL      Length of a market slot  [default: 15m]
  --slot-length-realtime INTERVAL
                                  Desired duration of slot in realtime  [default: 0m]
  -c, --cloud-coverage INTEGER    Cloud coverage, 0 for sunny, 1 for partial coverage, 2 for clouds.  [default: 0]
  --setup TEXT                    Simulation setup module use. Available modules: [1000_houses,
                                  api_setup.default_community, area_events.cloud_coverage_event,
                                  area_events.disable_interval_event, area_events.disconnect_interval_event,
                                  area_events.isolated_connect_event, area_events.isolated_disable_event,
                                  area_events.isolated_disconnect_event, area_events.isolated_enable_event,
                                  area_events.load_event, area_events.predefined_load_event,
                                  area_events.predefined_pv_event, area_events.pv_event, area_events.storage_event,
                                  area_events.userprofile_pv_event, balancing_market.default_2a,
                                  balancing_market.one_load_one_pv, balancing_market.one_load_one_storage,
                                  balancing_market.one_storage_one_pv, balancing_market.test_device_registry,
                                  balancing_market.two_sided_one_load_one_pv, config_parameter_test, default_2,
                                  default_2a, default_2b, default_3, default_3_pv_only, default_3a, default_3b,
                                  default_4, default_5, default_csv, forward, grid_fees.constant_grid_fees,
                                  grid_fees.default_2a, grid_fees.no_trades_high_fees,
                                  grid_fees.non_compounded_grid_fees, grid_fees.test_grid_fees, jira.d3asim_1024,
                                  jira.d3asim_1139, jira.d3asim_1525, jira.d3asim_1531, jira.d3asim_1535,
                                  jira.d3asim_1862, jira.d3asim_1896, jira.d3asim_2034, jira.d3asim_2244,
                                  jira.d3asim_2303, jira.d3asim_2420, jira.d3asim_2421, jira.d3asim_2422,
                                  jira.d3asim_2948, jira.d3asim_778, jira.d3asim_780, jira.d3asim_871,
                                  jira.d3asim_895, jira.d3asim_962, jira.default_2off_d3asim_1475, jira.default_595,
                                  jira.default_645, jira.default_737, json_arg, json_file, kpi.d3asim_2103,
                                  kpi.d3asim_2103_2_sided_pab, kpi.d3asim_2103_nopv1,
                                  kpi.d3asim_2103_nopv1_2_sided_pab, kpi.d3asim_2262, kpi.d3asim_3464_family_with_pv,
                                  kpi.d3asim_3464_family_with_pv_ess, kpi.d3asim_3464_young_couple,
                                  kpi.gsye_1_savings_kpi_test_setup, kpi.house_fully_self_sufficient,
                                  kpi.house_not_self_sufficient, kpi.house_partially_self_sufficient,
                                  kpi.house_self_sufficient_with_ess, kpi.infinitebus_pv_load,
                                  kpi.market_maker_and_load, kpi.penalty_load, kpi.penalty_pv,
                                  kpi.root_area_self_sufficient_with_infinitebus,
                                  matching_engine_setup.external_matching_engine, power_flow.baseline_peak_energy,
                                  power_flow.net_energy_flow, power_flow.test_power_flow,
                                  redis_communication_default_2a, sam_config, sam_config_const_load, sam_config_small,
                                  scm.default_2a, scm.external, settlement_market.default_2a_settlement,
                                  settlement_market.settlement_market, settlement_market.simple,
                                  settlement_market.simple_load_cell_tower, sonnenplatz,
                                  strategy_tests.commercial_producer_market_maker_rate,
                                  strategy_tests.ess_capacity_based_sell_offer,
                                  strategy_tests.ess_sell_offer_decrease_rate, strategy_tests.external_devices,
                                  strategy_tests.external_devices_grid_fees,
                                  strategy_tests.external_devices_send_forecasts,
                                  strategy_tests.external_devices_settlement_market, strategy_tests.external_ess_bids,
                                  strategy_tests.external_ess_offers, strategy_tests.external_market_stats,
                                  strategy_tests.external_smart_meter, strategy_tests.finite_power_plant,
                                  strategy_tests.finite_power_plant_profile, strategy_tests.future_market_strategy,
                                  strategy_tests.heat_pump, strategy_tests.home_cp_ess_load,
                                  strategy_tests.home_hybrid_pv_ess_load, strategy_tests.infinite_bus,
                                  strategy_tests.market_maker_not_grid_connected,
                                  strategy_tests.market_maker_strategy, strategy_tests.predefined_pv_test,
                                  strategy_tests.pv_const_price_decrease, strategy_tests.pv_final_selling_rate,
                                  strategy_tests.pv_max_panel_output, strategy_tests.pv_max_panel_power_global,
                                  strategy_tests.smart_meter_setup, strategy_tests.storage_buys_and_offers,
                                  strategy_tests.storage_strategy_break_even_hourly,
                                  strategy_tests.user_profile_load_csv, strategy_tests.user_profile_load_csv_multiday,
                                  strategy_tests.user_profile_load_dict, strategy_tests.user_profile_pv_csv,
                                  strategy_tests.user_profile_pv_dict, strategy_tests.user_profile_wind_csv,
                                  strategy_tests.user_rate_profile_load_dict, test_hp, tobalaba.one_producer_load,
                                  two_sided_market.default_2a, two_sided_market.default_2a_high_res_graph,
                                  two_sided_market.infinite_bus, two_sided_market.jira_d3asim-1675,
                                  two_sided_market.load_fitlimits_match,
                                  two_sided_market.offer_reposted_at_old_offer_rate,
                                  two_sided_market.one_cep_one_load,
                                  two_sided_market.one_cep_one_load_immediate_match,
                                  two_sided_market.one_load_5_pv_partial, two_sided_market.one_load_one_storage,
                                  two_sided_market.one_pv_one_load, two_sided_market.one_pv_one_storage,
                                  two_sided_market.one_storage_5_pv_partial,
                                  two_sided_market.user_min_rate_profile_load_dict,
                                  two_sided_market.with_balancing_market, two_sided_pay_as_clear.default_2a,
                                  two_sided_pay_as_clear.jira_d3asim_1690,
                                  two_sided_pay_as_clear.multiple_offers_one_bid,
                                  two_sided_pay_as_clear.one_offer_multiple_bids,
                                  two_sided_pay_as_clear.one_offer_one_bid,
                                  two_sided_pay_as_clear.test_clearing_energy]
  -g, --settings-file TEXT        Settings file path
  --seed TEXT                     Manually specify random seed
  --paused                        Start simulation in paused state
  --pause-at TEXT                 Automatically pause at a certain time. Accepted Input formats: (YYYY-MM-DD, HH:mm)
                                  [default: disabled]
  --incremental                   Pause the simulation at the end of each time slot.
  --repl / --no-repl              Start REPL after simulation run.  [default: no-repl]
  --no-export                     Skip export of simulation data
  --export-path TEXT              Specify a path for the csv export files (default: ~/gsy-e-simulation)
  --enable-bc                     Run simulation on Blockchain
  --enable-external-connection    External Agents interaction to simulation during runtime
  --start-date DATE               Start date of the Simulation (YYYY-MM-DD)  [default: 2023-10-04]
  --enable-dof / --disable-dof    Enable or disable Degrees of Freedom (orders can't contain attributes/requirements).
  -m, --market-type INTEGER       Market type. 1 for one-sided market, 2 for two-sided market, 3 for coefficient-based
                                  trading.  [default: 1]
  --help                          Show this message and exit.