From 9be8c2e6ff9164c0ce821a4d3830801a5f9dfb04 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Thu, 25 Feb 2021 19:38:39 +0000 Subject: [PATCH] cleanup of TrailingStop update_stop_percentage helper function --- src/strategy.rs | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/src/strategy.rs b/src/strategy.rs index 6f8945c..e653681 100644 --- a/src/strategy.rs +++ b/src/strategy.rs @@ -119,28 +119,22 @@ impl TrailingStop { fn update_stop_percentage(&mut self, position: &Position) { if let Some(profit_state) = position.profit_state() { let profit_state_delta = match profit_state { - PositionProfitState::MinimumProfit => Some(self.min_profit_trailing_delta), - PositionProfitState::Profit => Some(self.good_profit_trailing_delta), - _ => None, + PositionProfitState::MinimumProfit => self.min_profit_trailing_delta, + PositionProfitState::Profit => self.good_profit_trailing_delta, + _ => return }; - if let Some(profit_state_delta) = profit_state_delta { - let current_stop_percentage = position.pl_perc() - profit_state_delta; + let current_trailing_delta = position.pl_perc() - profit_state_delta; - if let PositionProfitState::MinimumProfit | PositionProfitState::Profit = - profit_state - { - match self.stop_percentages.get(&position.id()) { - None => { - self.stop_percentages - .insert(position.id(), current_stop_percentage); - } - Some(existing_threshold) => { - if existing_threshold < ¤t_stop_percentage { - self.stop_percentages - .insert(position.id(), current_stop_percentage); - } - } + match self.stop_percentages.get(&position.id()) { + None => { + self.stop_percentages + .insert(position.id(), current_trailing_delta); + } + Some(existing_threshold) => { + if existing_threshold < ¤t_trailing_delta { + self.stop_percentages + .insert(position.id(), current_trailing_delta); } } }