Files
2020-02-11 15:22:43 -03:00

57 lines
1.3 KiB
Python

# Enums
from collections import namedtuple
from enum import Enum
# Stocks
Stock = namedtuple('Stock', 'symbol percentage')
# Options
class Type(Enum):
CALL = 'call'
PUT = 'put'
def __invert__(self):
flip = Type.PUT if self == Type.CALL else Type.CALL
return flip
class Direction(Enum):
BUY = 'ask' # Schema field for BUY price
SELL = 'bid' # Schema field for SELL price
def __invert__(self):
flip = Direction.SELL if self == Direction.BUY else Direction.BUY
return flip
# Signals
Signal = Enum("Signal", "ENTRY EXIT")
class Order(Enum):
BTO = 'BTO' # Buy to Open
BTC = 'BTC' # Buy to Close
STO = 'STO' # Sell to Open
STC = 'STC' # Sell to Close
def __invert__(self):
if self == Order.BTO:
return Order.STC
elif self == Order.BTC:
return Order.STO
elif self == Order.STO:
return Order.BTC
elif self == Order.STC:
return Order.BTO
def get_order(direction, signal):
"""Returns Order type given direction (BUY | SELL) and
signal (ENTRY | EXIT).
"""
if direction == Direction.BUY:
return Order.BTO if signal == Signal.ENTRY else Order.STC
else:
return Order.STO if signal == Signal.ENTRY else Order.BTC