# Then compare:
python reward_space_analysis.py \
--num_samples 100000 \
- --real_episodes ../user_data/transitions/*.pkl \
+ --real_episodes path/to/episode_rewards.pkl \
--output real_vs_synthetic
```
- Path to real episode rewards pickle file for distribution comparison
- Enables distribution shift analysis (KL(synthetic‖real), JS distance, Wasserstein distance, KS test)
-- Example: `../user_data/models/ReforceXY-PPO/sub_train_SYMBOL_DATE/episode_rewards.pkl`
+- Example: `path/to/episode_rewards.pkl`
**`--pvalue_adjust`** (choice: none|benjamini_hochberg, default: none)
# Real vs synthetic comparison
python reward_space_analysis.py \
--num_samples 100000 \
- --real_episodes ../user_data/models/path/to/episode_rewards.pkl \
+ --real_episodes path/to/episode_rewards.pkl \
--output validation
```
```shell
python reward_space_analysis.py \
--num_samples 100000 \
- --real_episodes ../user_data/transitions/episode_rewards.pkl \
+ --real_episodes path/to/episode_rewards.pkl \
--output real_vs_synthetic
```
f"User denied {trade_direction} {order} for {pair}: "
f"close_k[{-k}] {format_number(close_k)} "
f"did not break threshold_k[{-(k + 1)}] {format_number(threshold_k)} "
- f"(decayed min/max natr_ratio_percent: min={format_number(decayed_min_natr_ratio_percent)}, max={format_number(decayed_max_natr_ratio_percent)})"
+ f"(decayed natr_ratio_percent: min={format_number(decayed_min_natr_ratio_percent)}, max={format_number(decayed_max_natr_ratio_percent)})"
)
return False