implement order.is_stop_loss and order.is_take_profit properties
This commit is contained in:
@@ -124,6 +124,14 @@ class Order(Model):
|
||||
def is_close(self) -> bool:
|
||||
return self.flag == order_flags.CLOSE
|
||||
|
||||
@property
|
||||
def is_stop_loss(self):
|
||||
return self.submitted_via == 'stop-loss'
|
||||
|
||||
@property
|
||||
def is_take_profit(self):
|
||||
return self.submitted_via == 'take-profit'
|
||||
|
||||
@property
|
||||
def to_dict(self):
|
||||
return {
|
||||
|
||||
23
jesse/strategies/TestOrderIsStopLossProperty/__init__.py
Normal file
23
jesse/strategies/TestOrderIsStopLossProperty/__init__.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from jesse.strategies import Strategy
|
||||
import jesse.helpers as jh
|
||||
|
||||
|
||||
class TestOrderIsStopLossProperty(Strategy):
|
||||
def should_long(self):
|
||||
return False
|
||||
|
||||
def should_short(self):
|
||||
return self.index == 0
|
||||
|
||||
def should_cancel(self):
|
||||
return False
|
||||
|
||||
def go_long(self):
|
||||
pass
|
||||
|
||||
def go_short(self):
|
||||
self.sell = 1, self.price
|
||||
self.stop_loss = 1, self.price + 5
|
||||
|
||||
def on_close_position(self, order) -> None:
|
||||
assert order.is_stop_loss == True
|
||||
17
jesse/strategies/TestOrderIsTakeProfitProperty/__init__.py
Normal file
17
jesse/strategies/TestOrderIsTakeProfitProperty/__init__.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from jesse.strategies import Strategy
|
||||
import jesse.helpers as jh
|
||||
|
||||
|
||||
class TestOrderIsTakeProfitProperty(Strategy):
|
||||
def should_long(self):
|
||||
return self.index == 0
|
||||
|
||||
def should_cancel(self):
|
||||
return False
|
||||
|
||||
def go_long(self):
|
||||
self.buy = 1, self.price
|
||||
self.take_profit = 1, self.price + 5
|
||||
|
||||
def on_close_position(self, order) -> None:
|
||||
assert order.is_take_profit == True
|
||||
@@ -2,7 +2,7 @@ import jesse.helpers as jh
|
||||
from jesse.enums import sides, order_statuses
|
||||
from jesse.models import Order
|
||||
from jesse.enums import order_types
|
||||
from .utils import set_up
|
||||
from .utils import set_up, single_route_backtest
|
||||
|
||||
|
||||
def test_cancel_order():
|
||||
@@ -50,3 +50,12 @@ def test_execute_order():
|
||||
|
||||
assert order.is_executed is True
|
||||
assert order.executed_at == jh.now_to_timestamp()
|
||||
|
||||
|
||||
def test_order_is_stop_loss_property():
|
||||
single_route_backtest('TestOrderIsStopLossProperty')
|
||||
|
||||
|
||||
def test_order_is_take_profit_property():
|
||||
single_route_backtest('TestOrderIsTakeProfitProperty')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user