liaoch commited on
Commit
982dccc
·
1 Parent(s): 883cc82

Merge detailed explanation into main markdown for guaranteed visibility

Browse files
Files changed (1) hide show
  1. app.py +7 -4
app.py CHANGED
@@ -17,9 +17,10 @@ def run_simulation(
17
  std_dev_inflation: float,
18
  min_swr_test: float,
19
  max_swr_test: float,
20
- swr_test_step: float,
21
  progress=gr.Progress()
22
  ):
 
23
  progress(0, desc="Starting simulation...")
24
  # --- Core Parameters ---
25
  initial_investment = float(initial_investment)
@@ -47,7 +48,9 @@ def run_simulation(
47
  ])
48
 
49
  # --- SWRs to Test ---
50
- withdrawal_rates_to_test = np.arange(min_swr_test / 100.0, (max_swr_test + swr_test_step) / 100.0, swr_test_step / 100.0)
 
 
51
  all_results = []
52
  portfolio_paths_for_plotting = {}
53
 
@@ -263,7 +266,7 @@ with gr.Blocks() as demo:
263
  gr.Markdown("### SWR Test Range")
264
  min_swr_test = gr.Slider(minimum=0.5, maximum=10.0, value=2.5, step=0.1, label="Min SWR to Test (%)", interactive=True)
265
  max_swr_test = gr.Slider(minimum=0.5, maximum=10.0, value=5.0, step=0.1, label="Max SWR to Test (%)", interactive=True)
266
- swr_test_step = gr.Slider(minimum=0.01, maximum=0.5, value=0.1, step=0.01, label="SWR Test Step (%)", interactive=True)
267
 
268
  run_button = gr.Button("Run Simulation")
269
 
@@ -297,7 +300,7 @@ with gr.Blocks() as demo:
297
  std_dev_inflation,
298
  min_swr_test,
299
  max_swr_test,
300
- swr_test_step
301
  ],
302
  outputs=[status_output, results_output, swr_plot_output, paths_plot_output]
303
  )
 
17
  std_dev_inflation: float,
18
  min_swr_test: float,
19
  max_swr_test: float,
20
+ num_swr_intervals: int,
21
  progress=gr.Progress()
22
  ):
23
+ swr_test_step = (max_swr_test - min_swr_test) / num_swr_intervals if num_swr_intervals > 0 else 0.1 # Calculate step
24
  progress(0, desc="Starting simulation...")
25
  # --- Core Parameters ---
26
  initial_investment = float(initial_investment)
 
48
  ])
49
 
50
  # --- SWRs to Test ---
51
+ # Calculate swr_test_step based on range and number of intervals
52
+ # Ensure the range is inclusive of max_swr_test by adding a small epsilon or adjusting arange end
53
+ withdrawal_rates_to_test = np.arange(min_swr_test / 100.0, (max_swr_test + swr_test_step/2) / 100.0, swr_test_step / 100.0)
54
  all_results = []
55
  portfolio_paths_for_plotting = {}
56
 
 
266
  gr.Markdown("### SWR Test Range")
267
  min_swr_test = gr.Slider(minimum=0.5, maximum=10.0, value=2.5, step=0.1, label="Min SWR to Test (%)", interactive=True)
268
  max_swr_test = gr.Slider(minimum=0.5, maximum=10.0, value=5.0, step=0.1, label="Max SWR to Test (%)", interactive=True)
269
+ num_swr_intervals = gr.Slider(minimum=10, maximum=200, value=25, step=1, label="Number of SWR Intervals", interactive=True)
270
 
271
  run_button = gr.Button("Run Simulation")
272
 
 
300
  std_dev_inflation,
301
  min_swr_test,
302
  max_swr_test,
303
+ num_swr_intervals
304
  ],
305
  outputs=[status_output, results_output, swr_plot_output, paths_plot_output]
306
  )