options-automation/trade_report.py

46 lines
1.6 KiB
Python
Raw Normal View History

from database.backtest import backtest_results
from database.procedures import backtest_profit, most_recent_trade_date
from database.trades import trades
trade_date = most_recent_trade_date()
print(f'Trade Date: {trade_date}')
trade_data = trades(trade_date)
for _, trade in trade_data.iterrows():
print(f'Entry Time: {trade["Strategy"][-8:]}')
spreads = trade['Spreads']
for spread in spreads:
legs = spread['Legs']
open_price = spread['Open']
# Assuming the first leg is always short and the second is long.
short_leg = legs[0]
long_leg = legs[1]
print(f' Short Strike: {short_leg["Strike"]}, Type: {short_leg["Type"]}')
print(f' Long Strike: {long_leg["Strike"]}, Type: {long_leg["Type"]}')
print(f' Opening Price: {open_price}')
traded_strategies = set(trade["Strategy"] for _, trade in trade_data.iterrows())
backtest_data = backtest_results(date = trade_date)
for _, backtest in backtest_data.iterrows():
if backtest["Strategy"] in traded_strategies:
print(f'Backtest Entry Time: {backtest["Strategy"][-8:]}')
spreads = backtest['Spreads']
for spread in spreads:
legs = spread['legs']
open_price = spread['open']
short_leg = legs[0]
long_leg = legs[1]
print(f' Backtest Short Strike: {short_leg["strike"]}, Type: {short_leg["type"]}')
print(f' Backtest Long Strike: {long_leg["strike"]}, Type: {long_leg["type"]}')
print(f' Backtest Opening Price: {open_price}')
print(f'Backtest Profit: {backtest_profit(trade_date)}')