Fix SL polarity for losses
This commit is contained in:
parent
db870c39c6
commit
1bab2a729b
|
@ -61,22 +61,28 @@ def sl_price_to_percent(sl_price, side, current_price, current_units, unrealised
|
|||
change_percent = ((initial_price - D(sl_price)) / initial_price) * 100
|
||||
|
||||
# If the trade is long, the SL price will be higher than the initial price.
|
||||
if side == "long":
|
||||
change_percent *= -1
|
||||
# if side == "long":
|
||||
# change_percent *= -1
|
||||
|
||||
if side == "long":
|
||||
if current_price > initial_price:
|
||||
if D(current_price) > initial_price:
|
||||
profit = True
|
||||
else:
|
||||
profit = False
|
||||
else:
|
||||
if current_price < initial_price:
|
||||
if D(current_price) < initial_price:
|
||||
profit = True
|
||||
else:
|
||||
profit = False
|
||||
|
||||
if profit:
|
||||
change_percent *= -1
|
||||
# if we are in profit on the short side, we want to show a negative loss
|
||||
if profit and side == "short":
|
||||
# change_percent *= -1
|
||||
change_percent = 0 - abs(change_percent)
|
||||
# if we are in loss on the long side, we want to show a positive loss
|
||||
if not profit and side == "long":
|
||||
# change_percent *= -1
|
||||
change_percent = abs(change_percent)
|
||||
|
||||
return round(change_percent, 5)
|
||||
|
||||
|
|
|
@ -134,10 +134,14 @@ class LiveTradingTestCase(ElasticMock, LiveBase, TestCase):
|
|||
expected_sl_percent = D(2 - self.commission)
|
||||
actual_tp_percent = trades_converted[0]["take_profit_percent"]
|
||||
actual_sl_percent = trades_converted[0]["stop_loss_percent"]
|
||||
print("actual_tp_percent", actual_tp_percent)
|
||||
print("actual_sl_percent", actual_sl_percent)
|
||||
|
||||
tp_percent_difference = abs(expected_tp_percent - actual_tp_percent)
|
||||
sl_percent_difference = abs(expected_sl_percent - actual_sl_percent)
|
||||
max_difference = D(0.08) # depends on market conditions
|
||||
print("TP percent difference: {}".format(tp_percent_difference))
|
||||
print("SL percent difference: {}".format(sl_percent_difference))
|
||||
|
||||
self.assertLess(tp_percent_difference, max_difference)
|
||||
self.assertLess(sl_percent_difference, max_difference)
|
||||
|
|
Loading…
Reference in New Issue