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:
|
def is_close(self) -> bool:
|
||||||
return self.flag == order_flags.CLOSE
|
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
|
@property
|
||||||
def to_dict(self):
|
def to_dict(self):
|
||||||
return {
|
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.enums import sides, order_statuses
|
||||||
from jesse.models import Order
|
from jesse.models import Order
|
||||||
from jesse.enums import order_types
|
from jesse.enums import order_types
|
||||||
from .utils import set_up
|
from .utils import set_up, single_route_backtest
|
||||||
|
|
||||||
|
|
||||||
def test_cancel_order():
|
def test_cancel_order():
|
||||||
@@ -50,3 +50,12 @@ def test_execute_order():
|
|||||||
|
|
||||||
assert order.is_executed is True
|
assert order.is_executed is True
|
||||||
assert order.executed_at == jh.now_to_timestamp()
|
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