Files
pulse-trader/pulse-sdk/src/strategy.rs
T

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>,
},
}