#python #dictionary #finance #stock
#python #словарь #финансы #акции
Вопрос:
Допустим, у меня есть словарь (current_price), который постоянно обновляет значения как последнюю цену данной акции (ключи). Над ним у меня уже есть словарь, который сохраняет цену входа для данной акции. Кроме того, у меня есть тейк-профит и стоп-лосс, установленные на определенное число.
entry_price = {'SPY': 350, 'QQQ': 250}
current_price = {'SPY': 367, 'QQQ': 220}
TP = 15
SL = -10
current_pl = {'SPY': ???, 'QQQ': ???}
Как мне нужно просмотреть current_price
словарь, чтобы проверить current_pl
, больше ли значение 15 или меньше -10. Если ни один из них не соответствует этому числу, то, очевидно, держите позицию открытой.
Ответ №1:
Следующим образом
Код
# Setup
entry_price = {'SPY': 350, 'QQQ': 250}
current_price = {'SPY': 367, 'QQQ': 220}
TP = 15
SL = -10
# Use dictionary comprehension to update current_pl dictionary
current_pl = {k:(v-entry_price[k]) for k, v in current_price.items()}
# Simple loop to check thresholds
for k, v in current_pl.items():
if v >= TP:
print(f'Profit - Symbol {k} Profit {v}')
elif v <= SL:
print(f'Stop Loss - Symbol {k} Loss {v}')
# Open positions after applying thresholds
open_positions = {k:current_price[k] for k, v in current_pl.items() if v < TP and v > SL}
print(f'Open Positions {open_positions}')
Вывод
Profit - Symbol SPY Profit 17
Stop Loss - Symbol QQQ Loss -30
Open Positions {}