fix: include fees on both trade sides
This commit is contained in:
@@ -129,25 +129,24 @@ def balance_distribution_over_time(
|
||||
if order["ft_is_entry"]:
|
||||
# Entry order: lock collateral and pay fee
|
||||
# For both long and short: balance decreases by collateral + fee
|
||||
fee = stake * trade.fee_open
|
||||
fee_open = stake * trade.fee_open
|
||||
current_position += real_amount
|
||||
current_collateral += stake_no_lev
|
||||
df.loc[filled_at:end_date, pair] += real_amount
|
||||
df.loc[filled_at:end_date, f"{pair}_collateral"] += stake_no_lev
|
||||
df.loc[filled_at:, stake_currency] -= stake_no_lev + fee
|
||||
df.loc[filled_at:, stake_currency] -= stake_no_lev + fee_open
|
||||
else:
|
||||
# Exit order: release collateral and realize profit/loss
|
||||
fee = stake * trade.fee_close
|
||||
fee_close = stake * trade.fee_close
|
||||
if trade.is_short:
|
||||
# For SHORT
|
||||
df.loc[filled_at:, stake_currency] += (
|
||||
current_collateral * (1 + trade.leverage) - stake
|
||||
)
|
||||
current_collateral * (1 + trade.leverage) - stake
|
||||
) - fee_close
|
||||
else:
|
||||
# For LONG
|
||||
df.loc[filled_at:, stake_currency] += stake - current_collateral * (
|
||||
trade.leverage - 1
|
||||
df.loc[filled_at:, stake_currency] += (
|
||||
stake - current_collateral * (trade.leverage - 1) - fee_close
|
||||
)
|
||||
df.loc[filled_at:end_date, pair] -= real_amount
|
||||
df.loc[filled_at:end_date, f"{pair}_collateral"] -= stake_no_lev
|
||||
|
||||
Reference in New Issue
Block a user