Files

24 lines
760 B
Rust
Raw Permalink Normal View History

use _backtestingfx::broker::Broker;
use _backtestingfx::data::load_csv;
use _backtestingfx::engine::Engine;
use _backtestingfx::strategy::Strategy;
use _backtestingfx::types::Bar;
2026-06-06 16:18:45 +01:00
struct BuyEveryBar;
impl Strategy for BuyEveryBar {
fn next(&mut self, bar: &Bar, broker: &mut Broker) {
2026-06-06 16:18:45 +01:00
broker.close_all(bar.close, bar.timestamp); //closes any open positions
broker.buy(bar.close, 1.0, bar.timestamp, None, None); // can be more complicated with buy, sells, close position, close all etc.
2026-06-06 16:18:45 +01:00
}
}
fn main() {
let data = load_csv("data/EURUSD_1H.csv");
let mut engine = Engine::new(data, 10_000.0, 0.0, 0.00010, 1.0, 1.0);
2026-06-06 16:18:45 +01:00
let mut strategy = BuyEveryBar;
2026-06-08 23:55:42 +01:00
let stats = engine.run(&mut strategy);
2026-06-06 17:16:32 +01:00
println!("{}", stats);
2026-06-06 16:18:45 +01:00
}