in src/backend/domain/services/steps/optimization.py [0:0]
def save_new_keys_in_origin_session(session_dict_origin, session_dict):
if "fx_rates" in session_dict:
session_dict_origin.setdefault("fx_rates", dict())
new_keys = set(session_dict["fx_rates"].keys()) - set(session_dict_origin["fx_rates"].keys())
if new_keys:
provider = data_providers[session_dict_origin["data_provider"]]
for fx_rate_symbol in new_keys:
left_curr, right_curr = fx_rate_symbol.split("/")
if left_curr == right_curr:
session_dict_origin["fx_rates"][fx_rate_symbol] = pd.DataFrame(
data=1.0, columns=["open", "high", "low", "close"], index=session_dict_origin["time_line"]
)
else:
session_dict_origin["fx_rates"][fx_rate_symbol] = get_fx_rate(
session_dict_origin["time_line"],
fx_rate_symbol,
session_dict_origin["start_date"],
session_dict_origin["end_date"],
data_periodicities[session_dict_origin["interval"]]["value"],
provider,
)
if "dividends_by_symbol" in session_dict:
session_dict_origin.setdefault("dividends_by_symbol", dict())
new_keys = set(session_dict["dividends_by_symbol"].keys()) - set(session_dict_origin["dividends_by_symbol"].keys())
if new_keys:
provider = data_providers[session_dict_origin["data_provider"]]
for symbol in new_keys:
session_dict_origin["dividends_by_symbol"][symbol] = get_sparse_dividends(
time_line=session_dict_origin["time_line"],
provider=provider,
symbol=symbol,
div_end_date=session_dict_origin["end_date"],
div_start_date=session_dict_origin["start_date"],
true_symbols=session_dict_origin["true_symbols"],
)