Словарь для тейк-профита и стоп-лосса на биржевых позициях

#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 {}