order manager on its own
This commit is contained in:
parent
7230b7c67d
commit
382f9c8106
@ -8,6 +8,7 @@ use merge::Merge;
|
|||||||
use tokio::sync::mpsc::channel;
|
use tokio::sync::mpsc::channel;
|
||||||
use tokio::sync::mpsc::{Receiver, Sender};
|
use tokio::sync::mpsc::{Receiver, Sender};
|
||||||
use tokio::sync::oneshot;
|
use tokio::sync::oneshot;
|
||||||
|
use tokio::time::Duration;
|
||||||
|
|
||||||
use crate::connectors::{Client, ExchangeDetails};
|
use crate::connectors::{Client, ExchangeDetails};
|
||||||
use crate::currency::SymbolPair;
|
use crate::currency::SymbolPair;
|
||||||
@ -318,9 +319,25 @@ pub struct OrderManagerHandle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl OrderManagerHandle {
|
impl OrderManagerHandle {
|
||||||
|
const SLEEP_DURATION: u64 = 5;
|
||||||
|
|
||||||
async fn run_order_manager(mut manager: OrderManager) {
|
async fn run_order_manager(mut manager: OrderManager) {
|
||||||
while let Some(msg) = manager.receiver.recv().await {
|
let mut sleep = tokio::time::interval(Duration::from_secs(5));
|
||||||
manager.handle_message(msg).await.unwrap();
|
|
||||||
|
loop {
|
||||||
|
tokio::select! {
|
||||||
|
opt_msg= manager.receiver.recv() => {
|
||||||
|
if let Some(msg) = opt_msg {
|
||||||
|
manager.handle_message(msg).await.unwrap()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
_ = sleep.tick() => {
|
||||||
|
manager.update().await.unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,7 +473,6 @@ impl OrderManager {
|
|||||||
Ok((None, None))
|
Ok((None, None))
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: finish me
|
|
||||||
pub async fn update(&self) -> Result<OptionUpdate, BoxError> {
|
pub async fn update(&self) -> Result<OptionUpdate, BoxError> {
|
||||||
trace!("\t[OrderManager] Updating {}", self.pair);
|
trace!("\t[OrderManager] Updating {}", self.pair);
|
||||||
|
|
||||||
|
@ -75,9 +75,9 @@ pub struct TrailingStop {
|
|||||||
|
|
||||||
impl TrailingStop {
|
impl TrailingStop {
|
||||||
const BREAK_EVEN_PERC: f64 = 0.1;
|
const BREAK_EVEN_PERC: f64 = 0.1;
|
||||||
const MIN_PROFIT_PERC: f64 = 0.4;
|
const MIN_PROFIT_PERC: f64 = 0.7;
|
||||||
const GOOD_PROFIT_PERC: f64 = TrailingStop::MIN_PROFIT_PERC * 2.5;
|
const GOOD_PROFIT_PERC: f64 = TrailingStop::MIN_PROFIT_PERC * 1.75;
|
||||||
const MAX_LOSS_PERC: f64 = -1.0;
|
const MAX_LOSS_PERC: f64 = -1.75;
|
||||||
|
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
TrailingStop {
|
TrailingStop {
|
||||||
|
Loading…
Reference in New Issue
Block a user