55 lines
1.0 KiB
Rust
55 lines
1.0 KiB
Rust
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<MarketItem>),
|
|
|
|
Command {
|
|
command: String,
|
|
args: Vec<String>,
|
|
},
|
|
|
|
Incoming(Incoming),
|
|
|
|
Candlestick {
|
|
symbol: String,
|
|
interval: CandleInterval,
|
|
candles: Vec<Candle>,
|
|
},
|
|
}
|