2021-01-05 12:58:47 +00:00
|
|
|
use tokio::time::{delay_for, Duration};
|
2021-01-04 10:45:54 +00:00
|
|
|
|
|
|
|
use crate::bot::BfxBot;
|
2021-01-13 09:04:58 +00:00
|
|
|
use crate::connectors::BitfinexConnector;
|
2021-01-04 12:07:03 +00:00
|
|
|
use crate::currency::{Symbol, SymbolPair};
|
2021-01-13 08:57:36 +00:00
|
|
|
use crate::events::SignalKind;
|
2021-01-05 19:50:14 +00:00
|
|
|
use crate::strategy::TrailingStop;
|
2021-01-13 08:57:36 +00:00
|
|
|
use std::thread::JoinHandle;
|
2021-01-02 14:10:16 +00:00
|
|
|
|
2021-01-05 12:58:47 +00:00
|
|
|
mod bot;
|
|
|
|
mod connectors;
|
|
|
|
mod currency;
|
2021-01-02 12:15:19 +00:00
|
|
|
mod events;
|
2021-01-13 09:03:24 +00:00
|
|
|
mod managers;
|
2021-01-13 08:57:36 +00:00
|
|
|
mod models;
|
2021-01-02 12:15:19 +00:00
|
|
|
mod pairs;
|
2021-01-02 14:10:16 +00:00
|
|
|
mod strategy;
|
2021-01-05 12:58:47 +00:00
|
|
|
mod ticker;
|
2021-01-01 14:07:16 +00:00
|
|
|
|
|
|
|
pub type BoxError = Box<dyn std::error::Error + Send + Sync>;
|
|
|
|
|
|
|
|
#[tokio::main]
|
|
|
|
async fn main() -> Result<(), BoxError> {
|
2021-01-05 19:50:14 +00:00
|
|
|
let test_api_key = "P1EVE68DJByDAkGQvpIkTwfrbYXd2Vo2ZaIhTYb9vx2";
|
|
|
|
let test_api_secret = "1nicg8z0zKVEt5Rb7ZDpIYjVYVTgvCaCPMZqB0niFli";
|
2021-01-13 09:04:58 +00:00
|
|
|
let bfx = BitfinexConnector::new(test_api_key, test_api_secret)
|
2021-01-13 08:57:36 +00:00
|
|
|
.with_affiliate_code(Some("XPebOgHxA".into()));
|
|
|
|
|
2021-01-05 19:50:14 +00:00
|
|
|
let mut bot = BfxBot::new(
|
|
|
|
bfx,
|
|
|
|
vec![Symbol::TESTBTC],
|
|
|
|
Symbol::TESTUSD,
|
|
|
|
Duration::new(20, 0),
|
|
|
|
)
|
|
|
|
.with_strategy(Box::new(TrailingStop::new()));
|
2021-01-02 14:10:16 +00:00
|
|
|
|
2021-01-05 19:50:14 +00:00
|
|
|
Ok(bot.start_loop().await?)
|
2021-01-01 14:07:16 +00:00
|
|
|
}
|