Working protocol
This commit is contained in:
+13
-2
@@ -36,7 +36,7 @@ class PulseWire:
|
|||||||
|
|
||||||
class Strategy(PulseWire):
|
class Strategy(PulseWire):
|
||||||
def on_request(self, req: plugin.StrategyEngineMessage):
|
def on_request(self, req: plugin.StrategyEngineMessage):
|
||||||
pass
|
...
|
||||||
|
|
||||||
def send(self, req: plugin.StrategyMessageType):
|
def send(self, req: plugin.StrategyMessageType):
|
||||||
self.send_raw(req.to_com())
|
self.send_raw(req.to_com())
|
||||||
@@ -69,7 +69,7 @@ class Strategy(PulseWire):
|
|||||||
|
|
||||||
class Risk(PulseWire):
|
class Risk(PulseWire):
|
||||||
def on_request(self, req: plugin.RiskEngineMessage):
|
def on_request(self, req: plugin.RiskEngineMessage):
|
||||||
pass
|
...
|
||||||
|
|
||||||
def send(self, req: plugin.RiskMessageType):
|
def send(self, req: plugin.RiskMessageType):
|
||||||
self.send_raw(req.to_com())
|
self.send_raw(req.to_com())
|
||||||
@@ -94,3 +94,14 @@ class Risk(PulseWire):
|
|||||||
|
|
||||||
def on_raw_engine_request(self, data: bytes):
|
def on_raw_engine_request(self, data: bytes):
|
||||||
com = plugin.RiskEngineMessage.from_com(data=data)
|
com = plugin.RiskEngineMessage.from_com(data=data)
|
||||||
|
|
||||||
|
class Bro(Strategy):
|
||||||
|
def __init__(self):
|
||||||
|
self.log(general.EventLog.info("bro", "Hello, World"))
|
||||||
|
super().__init__()
|
||||||
|
|
||||||
|
def on_request(self, req: plugin.StrategyEngineMessage):
|
||||||
|
# self.log(general.EventLog.info("bro", "Hello, World"))
|
||||||
|
pass
|
||||||
|
|
||||||
|
Bro().start()
|
||||||
+63
-1
@@ -1,6 +1,7 @@
|
|||||||
from pwp import pwp, pwp_enum, PulseWire
|
from pwp import pwp, pwp_enum, PulseWire
|
||||||
from adv_types import *
|
from adv_types import *
|
||||||
import units
|
import units
|
||||||
|
from typing import TypeAlias
|
||||||
|
|
||||||
@pwp_enum
|
@pwp_enum
|
||||||
class MarketTrend(PulseWire):
|
class MarketTrend(PulseWire):
|
||||||
@@ -42,12 +43,73 @@ class Signal(PulseWire):
|
|||||||
take_profit: units.USD
|
take_profit: units.USD
|
||||||
stop_loss: units.USD
|
stop_loss: units.USD
|
||||||
|
|
||||||
|
MarketTrendType: TypeAlias = (
|
||||||
|
MarketTrend.Bullish
|
||||||
|
| MarketTrend.Bearish
|
||||||
|
| MarketTrend.Neutral
|
||||||
|
)
|
||||||
|
|
||||||
|
LogKindType: TypeAlias = (
|
||||||
|
LogKind.Info
|
||||||
|
| LogKind.Warn
|
||||||
|
| LogKind.Err
|
||||||
|
| LogKind.Debug
|
||||||
|
)
|
||||||
|
|
||||||
|
CandleIntervalType: TypeAlias = (
|
||||||
|
CandleInterval.OneMinute
|
||||||
|
| CandleInterval.ThreeMinutes
|
||||||
|
| CandleInterval.FiveMinutes
|
||||||
|
| CandleInterval.FifteenMinutes
|
||||||
|
| CandleInterval.ThirtyMinutes
|
||||||
|
| CandleInterval.OneHour
|
||||||
|
| CandleInterval.TwoHours
|
||||||
|
| CandleInterval.FourHours
|
||||||
|
| CandleInterval.EightHours
|
||||||
|
| CandleInterval.TwelveHours
|
||||||
|
| CandleInterval.OneDay
|
||||||
|
| CandleInterval.ThreeDays
|
||||||
|
| CandleInterval.OneWeek
|
||||||
|
| CandleInterval.OneMonth
|
||||||
|
)
|
||||||
|
|
||||||
@pwp
|
@pwp
|
||||||
class EventLog(PulseWire):
|
class EventLog(PulseWire):
|
||||||
kind: LogKind
|
kind: LogKindType
|
||||||
name: str
|
name: str
|
||||||
message: str
|
message: str
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def info(cls, name: str, message: str):
|
||||||
|
log = cls()
|
||||||
|
log.kind = LogKind.Info()
|
||||||
|
log.name = name
|
||||||
|
log.message = message
|
||||||
|
return log
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def warn(cls, name: str, message: str):
|
||||||
|
log = cls()
|
||||||
|
log.kind = LogKind.Warn()
|
||||||
|
log.name = name
|
||||||
|
log.message = message
|
||||||
|
return log
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def error(cls, name: str, message: str):
|
||||||
|
log = cls()
|
||||||
|
log.kind = LogKind.Err()
|
||||||
|
log.name = name
|
||||||
|
log.message = message
|
||||||
|
return log
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def debug(cls, name: str, message: str):
|
||||||
|
log = cls()
|
||||||
|
log.kind = LogKind.Debug()
|
||||||
|
log.name = name
|
||||||
|
log.message = message
|
||||||
|
return log
|
||||||
@pwp
|
@pwp
|
||||||
class Position(PulseWire):
|
class Position(PulseWire):
|
||||||
symbol: units.Symbol
|
symbol: units.Symbol
|
||||||
|
|||||||
+2
-2
@@ -63,7 +63,7 @@ class StrategyEngineMessage(PulseWire):
|
|||||||
interval: general.CandleInterval
|
interval: general.CandleInterval
|
||||||
candle: general.Candle
|
candle: general.Candle
|
||||||
|
|
||||||
class CandleStick(PulseWire):
|
class Candlestick(PulseWire):
|
||||||
symbol: str
|
symbol: str
|
||||||
interval: general.CandleInterval
|
interval: general.CandleInterval
|
||||||
candles: list[general.Candle]
|
candles: list[general.Candle]
|
||||||
@@ -105,7 +105,7 @@ StrategyEngineMessageType: TypeAlias = (
|
|||||||
| StrategyEngineMessage.WatchList
|
| StrategyEngineMessage.WatchList
|
||||||
| StrategyEngineMessage.Command
|
| StrategyEngineMessage.Command
|
||||||
| StrategyEngineMessage.CandleUpdate
|
| StrategyEngineMessage.CandleUpdate
|
||||||
| StrategyEngineMessage.CandleStick
|
| StrategyEngineMessage.Candlestick
|
||||||
)
|
)
|
||||||
|
|
||||||
RiskEngineMessageType: TypeAlias = (
|
RiskEngineMessageType: TypeAlias = (
|
||||||
|
|||||||
+2
-2
@@ -461,7 +461,7 @@ def pwp_enum(cls: T) -> T:
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
idx.to_bytes(1, "little")
|
idx.to_bytes(1, "little")
|
||||||
+ PulseWire.to_com(self)
|
+ self.to_com()
|
||||||
)
|
)
|
||||||
|
|
||||||
raise PWPError(
|
raise PWPError(
|
||||||
@@ -484,7 +484,7 @@ def pwp_enum(cls: T) -> T:
|
|||||||
)
|
)
|
||||||
|
|
||||||
enum_id = data[offset]
|
enum_id = data[offset]
|
||||||
offset += 1
|
# offset += 1
|
||||||
|
|
||||||
|
|
||||||
if enum_id not in variants:
|
if enum_id not in variants:
|
||||||
|
|||||||
+5
-5
@@ -1,21 +1,21 @@
|
|||||||
from pwp import pwp, pwp_enum
|
from pwp import pwp, pwp_enum, PulseWire
|
||||||
from adv_types import *
|
from adv_types import *
|
||||||
|
|
||||||
@pwp
|
@pwp
|
||||||
class Symbol:
|
class Symbol(PulseWire):
|
||||||
unit: str
|
unit: str
|
||||||
|
|
||||||
@pwp
|
@pwp
|
||||||
class USD:
|
class USD(PulseWire):
|
||||||
unit: f64
|
unit: f64
|
||||||
|
|
||||||
@pwp_enum
|
@pwp_enum
|
||||||
class Direction:
|
class Direction(PulseWire):
|
||||||
class Buy: pass
|
class Buy: pass
|
||||||
class Sell: pass
|
class Sell: pass
|
||||||
|
|
||||||
@pwp_enum
|
@pwp_enum
|
||||||
class Volatility:
|
class Volatility(PulseWire):
|
||||||
class Low: pass
|
class Low: pass
|
||||||
class Medium: pass
|
class Medium: pass
|
||||||
class High: pass
|
class High: pass
|
||||||
|
|||||||
Reference in New Issue
Block a user