2021-01-14 12:42:23 +00:00
|
|
|
#![feature(drain_filter)]
|
|
|
|
|
|
|
|
use std::thread::JoinHandle;
|
|
|
|
|
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-14 12:42:23 +00:00
|
|
|
use crate::connectors::{BitfinexConnector, ExchangeKind};
|
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-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 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-14 12:42:23 +00:00
|
|
|
let affiliate_code = "XPebOgHxA";
|
|
|
|
|
|
|
|
let bitfinex = ExchangeKind::Bitfinex {
|
|
|
|
api_key: test_api_key.into(),
|
|
|
|
api_secret: test_api_secret.into(),
|
|
|
|
affiliate_code: Some(affiliate_code.into()),
|
|
|
|
};
|
2021-01-13 08:57:36 +00:00
|
|
|
|
2021-01-05 19:50:14 +00:00
|
|
|
let mut bot = BfxBot::new(
|
2021-01-14 12:42:23 +00:00
|
|
|
vec![bitfinex],
|
2021-01-05 19:50:14 +00:00
|
|
|
vec![Symbol::TESTBTC],
|
|
|
|
Symbol::TESTUSD,
|
2021-01-14 12:42:23 +00:00
|
|
|
Duration::new(1, 0),
|
|
|
|
);
|
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
|
|
|
}
|