Removed risk
This commit is contained in:
+1
-31
@@ -6,7 +6,7 @@ pub use hypersdk;
|
||||
|
||||
use tokio::io::{AsyncReadExt, AsyncWriteExt};
|
||||
|
||||
use crate::plugin::{RiskEngineMessage, StrategyEngineMessage};
|
||||
use crate::plugin::StrategyEngineMessage;
|
||||
|
||||
pub mod prelude {
|
||||
pub use crate::general::*;
|
||||
@@ -112,33 +112,3 @@ pub trait Strategy {
|
||||
unimplemented!("Strategy::candlestick")
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(async_fn_in_trait)]
|
||||
pub trait Risk {
|
||||
engine_methods!(prelude::RiskMessage);
|
||||
|
||||
async fn on_raw(&self, data: &[u8]) -> tokio::io::Result<()> {
|
||||
match map_postcard_err(postcard::from_bytes(&data))? {
|
||||
RiskEngineMessage::Initialize => self.initialize().await,
|
||||
RiskEngineMessage::Command { command, args } => self.command(command, args).await,
|
||||
RiskEngineMessage::WatchList(watchlist) => self.watchlist(watchlist).await,
|
||||
RiskEngineMessage::Signal(signal) => self.signal_request(signal).await,
|
||||
}
|
||||
}
|
||||
|
||||
async fn initialize(&self) -> tokio::io::Result<()> {
|
||||
unimplemented!("Risk::initialize")
|
||||
}
|
||||
|
||||
async fn command(&self, _command: String, _args: Vec<String>) -> tokio::io::Result<()> {
|
||||
unimplemented!("Risk::command")
|
||||
}
|
||||
|
||||
async fn watchlist(&self, _watchlist: Vec<prelude::MarketItem>) -> tokio::io::Result<()> {
|
||||
unimplemented!("Risk::watchlist")
|
||||
}
|
||||
|
||||
async fn signal_request(&self, _signal: prelude::StrategySignal) -> tokio::io::Result<()> {
|
||||
unimplemented!("Risk::signal_request")
|
||||
}
|
||||
}
|
||||
|
||||
+1
-51
@@ -1,7 +1,6 @@
|
||||
use crate::{
|
||||
general::{EventLog, Signal},
|
||||
terminal::MarketItem,
|
||||
units::Direction,
|
||||
};
|
||||
use hypersdk::hypercore::{Candle, CandleInterval, Incoming, Subscription};
|
||||
|
||||
@@ -13,17 +12,6 @@ pub struct StrategyManifest {
|
||||
pub version: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
pub struct RiskManifest {
|
||||
pub name: String,
|
||||
pub description: String,
|
||||
pub author: String,
|
||||
pub version: String,
|
||||
|
||||
pub max_loss: u8,
|
||||
pub cooldown: CandleInterval,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
pub enum StrategyMessage {
|
||||
Log(EventLog),
|
||||
@@ -42,16 +30,7 @@ pub enum StrategyMessage {
|
||||
|
||||
UnsubscribeAll,
|
||||
|
||||
Signal(StrategySignal),
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
pub enum RiskMessage {
|
||||
Log(EventLog),
|
||||
|
||||
GetWatchList,
|
||||
|
||||
Signal(RiskSignal),
|
||||
Signal(Signal),
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
@@ -73,32 +52,3 @@ pub enum StrategyEngineMessage {
|
||||
candles: Vec<Candle>,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
pub enum RiskEngineMessage {
|
||||
Initialize,
|
||||
|
||||
WatchList(Vec<MarketItem>),
|
||||
|
||||
Command { command: String, args: Vec<String> },
|
||||
|
||||
Signal(StrategySignal),
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
pub struct StrategySignal {
|
||||
pub symbol: String,
|
||||
pub side: Direction,
|
||||
pub confidence: f32,
|
||||
pub price: Option<f64>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
pub enum RiskSignal {
|
||||
Approve(Signal),
|
||||
Reject {
|
||||
signal: StrategySignal,
|
||||
rejection_confidence: f32,
|
||||
reason: String,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
use crate::{
|
||||
general::{EventLog, MarketTrend, Position},
|
||||
plugin::{RiskManifest, RiskSignal, StrategyManifest},
|
||||
general::{EventLog, MarketTrend, Position, Signal},
|
||||
plugin::StrategyManifest,
|
||||
units::{Symbol, USD, Volatility},
|
||||
};
|
||||
use hypersdk::{Decimal, hypercore::CandleInterval};
|
||||
|
||||
pub type SignalStatus = Result<RiskSignal, RiskSignal>;
|
||||
pub type SignalStatus = Result<Signal, Signal>;
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
pub enum TerminalServerMessage {
|
||||
@@ -110,7 +110,6 @@ pub enum ItemState {
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
pub struct Strategy {
|
||||
pub strategy: StrategyManifest,
|
||||
pub risk: RiskManifest,
|
||||
|
||||
pub mode: Mode,
|
||||
pub state: ItemState,
|
||||
|
||||
Reference in New Issue
Block a user