use crate::{ general::{EventLog, Signal}, terminal::MarketItem, }; use hypersdk::hypercore::{Candle, CandleInterval, Incoming, Subscription}; #[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] pub struct StrategyManifest { pub name: String, pub description: String, pub author: String, pub version: String, } #[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] pub enum StrategyMessage { Log(EventLog), GetWatchList, GetCandlestick { symbol: String, interval: CandleInterval, count: u32, }, Subscribe(Subscription), Unsubscribe(Subscription), UnsubscribeAll, Signal(Signal), } #[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] pub enum StrategyEngineMessage { Initialize, WatchList(Vec), Command { command: String, args: Vec, }, Incoming(Incoming), Candlestick { symbol: String, interval: CandleInterval, candles: Vec, }, }