Estructura de los insights
Un insight almacena la intención de trading y el estado de ejecución necesario para inspeccionar esa intención más adelante.
Los campos principales incluyen:
- símbolo
- dirección de la operación
- confianza
- marco temporal
- relación entre insights principales y secundarios
- cantidad
- contratos
- estructura de entrada
- niveles de take-profit y stop-loss
- distancia del stop dinámico
- precios de ejecución y cierre
- PnL realizado, comisión y swap del bróker
- órdenes vinculadas de ejecución
- historial de estados
pub struct Insight { pub insight_id: Uuid, pub parent_id: Option<Uuid>, pub state: InsightState, pub children: Vec<Insight>,
// Order information pub order_id: Option<String>, pub side: OrderSide, pub symbol: String, pub quantity: Option<f64>, pub contracts: Option<f64>,
// Order execution details pub order_type: OrderType, pub order_class: OrderClass, pub limit_price: Option<f64>, pub stop_price: Option<f64>, pub take_profit_levels: Option<Vec<f64>>, pub stop_loss_levels: Option<Vec<f64>>, pub trailing_stop_price: Option<f64>,
// Strategy information pub strategy_type: StrategyType, pub confidence: u8, pub timeframe: TimeFrame, pub period_unfilled: Option<u32>, pub period_till_tp: Option<u32>, pub execution_depends: Vec<StrategyDependentConfirmation>,
// Closing information pub filled_price: Option<f64>, pub close_order_id: Option<String>, pub close_price: Option<f64>, pub broker_realized_pnl: Option<f64>, pub commission: Option<f64>, pub swap: Option<f64>, pub partial_closes: Vec<PartialCloseResult>, pub created_at: DateTime<Utc>, pub updated_at: DateTime<Utc>, pub filled_at: Option<DateTime<Utc>>, pub closed_at: Option<DateTime<Utc>>, pub legs: OrderLegs,
// Market conditions pub market_changed: bool,
// Internal flags pub submitted: bool, pub cancelling: bool, pub closing: bool, pub first_on_fill: bool, pub partial_filled_quantity: Option<f64>,
// State tracking pub state_history: Vec<(DateTime<Utc>, InsightState, Option<String>)>, pub context: Option<InsightStrategyContext>,}Crear un insight
Sección titulada «Crear un insight»El patrón de uso más habitual es:
let mut insight = Insight::new( OrderSide::Buy, "AAPL".to_string(), StrategyType::Testing, ctx.timeframe().clone(), 80, None,);
insight .set_limit_price(Some(200.0)) .set_take_profit_levels(Some(vec![206.0])) .set_stop_loss(Some(197.5)) .set_period_unfilled(Some(5)) .set_period_till_tp(Some(12));
ctx.add_insight(insight);A partir de ahí, el pipeline de insights puede incorporar lógica de dimensionamiento, validación o envío.
Cookies y almacenamiento esenciales
Usamos cookies y almacenamiento esenciales para el inicio de sesión, la seguridad de la cuenta, las preferencias de tema de color, este aviso y las métricas internas necesarias de PostHog sobre uso, calidad de las sesiones y fiabilidad. No usamos cookies publicitarias.
