Removed risk

This commit is contained in:
2026-07-30 02:50:22 +02:00
parent f3406c7b97
commit d0f683b4ca
9 changed files with 33 additions and 250 deletions
+1 -31
View File
@@ -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
View File
@@ -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,
},
}
+3 -4
View File
@@ -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,