Path: blob/master/ invest-robot-contest_tinkoff-invest-volume-analysis-robot-master/domains/order.py
5932 views
from datetime import datetime1from typing import Dict23from utils.parse_util import get_float_from_dict, get_int_value, get_datetime_value456class Order(object):7order_id = None8close: float = 09result: float = 010is_win: bool = False11# todo перейти на enum12status: str = "active"1314def __init__(15self,16id: str,17group_id: str,18instrument: str,19open: float,20stop: float,21take: float,22quantity: int,23direction: int,24time: datetime,25status: str = "active",26result: float = 0,27is_win: bool = False,28close: float = 029):30self.id = id31self.group_id = group_id32self.instrument = instrument33self.open = open34self.close = close35self.stop = stop36self.take = take37self.quantity = quantity38self.direction = direction39self.time = time40self.status = status41self.result = result42self.is_win = is_win4344def __iter__(self) -> Dict:45yield "id", self.id46yield "group_id", self.group_id47yield "instrument", self.instrument48yield "open", self.open49yield "close", self.close50yield "stop", self.stop51yield "take", self.take52yield "quantity", self.quantity53yield "direction", self.direction54yield "time", self.time55yield "status", self.status56yield "result", self.result57yield "is_win", self.is_win5859def __str__(self) -> str:60return "Order{id=%s, " \61"group_id=%s, " \62"instrument=%s, " \63"open=%s, " \64"close=%s, " \65"stop=%s, " \66"take=%s, " \67"quantity=%s, " \68"direction=%s, " \69"time=%s, " \70"status=%s, " \71"result=%s, " \72"is_win=%s}" % \73(self.id,74self.group_id,75self.instrument,76self.open,77self.close,78self.stop,79self.take,80self.quantity,81self.direction,82self.time,83self.status,84self.result,85self.is_win)8687def __repr__(self) -> str:88return "Order{id=%s, " \89"group_id=%s, " \90"instrument=%s, " \91"open=%s, " \92"close=%s, " \93"stop=%s, " \94"take=%s, " \95"quantity=%s, " \96"direction=%s, " \97"time=%s, " \98"status=%s, " \99"result=%s, " \100"is_win=%s}" % \101(self.id,102self.group_id,103self.instrument,104self.open,105self.close,106self.stop,107self.take,108self.quantity,109self.direction,110self.time,111self.status,112self.result,113self.is_win)114115@staticmethod116def from_dict(order_dict: Dict):117return Order(118id=order_dict.get("id"),119group_id=order_dict.get("group_id"),120instrument=order_dict.get("instrument"),121open=get_float_from_dict(order_dict, "open"),122close=get_float_from_dict(order_dict, "close"),123stop=get_float_from_dict(order_dict, "stop"),124take=get_float_from_dict(order_dict, "take"),125quantity=get_int_value(order_dict, "quantity"),126direction=get_int_value(order_dict, "direction"),127time=get_datetime_value(order_dict, "time"),128status=order_dict.get("status"),129result=get_float_from_dict(order_dict, "result"),130is_win=order_dict.get("is_win")131)132133134