code reorganization
This commit is contained in:
parent
054b3b6659
commit
7ba90a72c0
@ -33,40 +33,6 @@ pub struct PriceManager {
|
|||||||
client: Client,
|
client: Client,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct PriceManagerHandle {
|
|
||||||
sender: Sender<ActorMessage>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl PriceManagerHandle {
|
|
||||||
async fn run_price_manager(mut manager: PriceManager) {
|
|
||||||
while let Some(msg) = manager.receiver.recv().await {
|
|
||||||
manager.handle_message(msg).await.unwrap();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn new(pair: SymbolPair, client: Client) -> Self {
|
|
||||||
let (sender, receiver) = channel(1);
|
|
||||||
|
|
||||||
let price_manager = PriceManager::new(receiver, pair, client);
|
|
||||||
tokio::spawn(PriceManagerHandle::run_price_manager(price_manager));
|
|
||||||
|
|
||||||
Self { sender }
|
|
||||||
}
|
|
||||||
|
|
||||||
pub async fn update(&mut self, tick: u64) -> Result<OptionUpdate, BoxError> {
|
|
||||||
let (send, recv) = oneshot::channel();
|
|
||||||
|
|
||||||
self.sender
|
|
||||||
.send(ActorMessage {
|
|
||||||
message: Message::Update { tick },
|
|
||||||
respond_to: send,
|
|
||||||
})
|
|
||||||
.await?;
|
|
||||||
|
|
||||||
Ok(recv.await?)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl PriceManager {
|
impl PriceManager {
|
||||||
pub fn new(receiver: Receiver<ActorMessage>, pair: SymbolPair, client: Client) -> Self {
|
pub fn new(receiver: Receiver<ActorMessage>, pair: SymbolPair, client: Client) -> Self {
|
||||||
PriceManager {
|
PriceManager {
|
||||||
@ -112,6 +78,40 @@ impl PriceManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub struct PriceManagerHandle {
|
||||||
|
sender: Sender<ActorMessage>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl PriceManagerHandle {
|
||||||
|
async fn run_price_manager(mut manager: PriceManager) {
|
||||||
|
while let Some(msg) = manager.receiver.recv().await {
|
||||||
|
manager.handle_message(msg).await.unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn new(pair: SymbolPair, client: Client) -> Self {
|
||||||
|
let (sender, receiver) = channel(1);
|
||||||
|
|
||||||
|
let price_manager = PriceManager::new(receiver, pair, client);
|
||||||
|
tokio::spawn(PriceManagerHandle::run_price_manager(price_manager));
|
||||||
|
|
||||||
|
Self { sender }
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn update(&mut self, tick: u64) -> Result<OptionUpdate, BoxError> {
|
||||||
|
let (send, recv) = oneshot::channel();
|
||||||
|
|
||||||
|
self.sender
|
||||||
|
.send(ActorMessage {
|
||||||
|
message: Message::Update { tick },
|
||||||
|
respond_to: send,
|
||||||
|
})
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
Ok(recv.await?)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct PriceEntry {
|
pub struct PriceEntry {
|
||||||
tick: u64,
|
tick: u64,
|
||||||
@ -431,14 +431,14 @@ impl OrderManager {
|
|||||||
// No open order, undercutting best price with limit order
|
// No open order, undercutting best price with limit order
|
||||||
let closing_price = self.best_closing_price(&position, &order_book);
|
let closing_price = self.best_closing_price(&position, &order_book);
|
||||||
|
|
||||||
// TODO: hardcoded platform to Margin!
|
// TODO: hardcoded platform to Derivative!
|
||||||
let order_form = OrderForm::new(
|
let order_form = OrderForm::new(
|
||||||
self.pair.clone(),
|
self.pair.clone(),
|
||||||
OrderKind::Limit {
|
OrderKind::Limit {
|
||||||
price: closing_price,
|
price: closing_price,
|
||||||
amount: position.amount().neg(),
|
amount: position.amount().neg(),
|
||||||
},
|
},
|
||||||
TradingPlatform::Margin,
|
TradingPlatform::Derivative,
|
||||||
);
|
);
|
||||||
|
|
||||||
info!("Submitting {} order", order_form.kind());
|
info!("Submitting {} order", order_form.kind());
|
||||||
|
Loading…
Reference in New Issue
Block a user