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"]:
|
if order["ft_is_entry"]:
|
||||||
# Entry order: lock collateral and pay fee
|
# Entry order: lock collateral and pay fee
|
||||||
# For both long and short: balance decreases by collateral + 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_position += real_amount
|
||||||
current_collateral += stake_no_lev
|
current_collateral += stake_no_lev
|
||||||
df.loc[filled_at:end_date, pair] += real_amount
|
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: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:
|
else:
|
||||||
# Exit order: release collateral and realize profit/loss
|
# Exit order: release collateral and realize profit/loss
|
||||||
fee = stake * trade.fee_close
|
fee_close = stake * trade.fee_close
|
||||||
if trade.is_short:
|
if trade.is_short:
|
||||||
# For SHORT
|
# For SHORT
|
||||||
df.loc[filled_at:, stake_currency] += (
|
df.loc[filled_at:, stake_currency] += (
|
||||||
current_collateral * (1 + trade.leverage) - stake
|
current_collateral * (1 + trade.leverage) - stake
|
||||||
)
|
) - fee_close
|
||||||
current_collateral * (1 + trade.leverage) - stake
|
|
||||||
else:
|
else:
|
||||||
# For LONG
|
# For LONG
|
||||||
df.loc[filled_at:, stake_currency] += stake - current_collateral * (
|
df.loc[filled_at:, stake_currency] += (
|
||||||
trade.leverage - 1
|
stake - current_collateral * (trade.leverage - 1) - fee_close
|
||||||
)
|
)
|
||||||
df.loc[filled_at:end_date, pair] -= real_amount
|
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:end_date, f"{pair}_collateral"] -= stake_no_lev
|
||||||
|
|||||||
Reference in New Issue
Block a user