added “max_trade_duration” config + using “remove_dumps” config

This commit is contained in:
misagh 2018-09-21 21:46:18 +02:00
parent 61095db071
commit 3e3ed947cc
3 changed files with 13 additions and 23 deletions

View File

@ -55,8 +55,9 @@
"process_throttle_secs": 1800,
"total_capital_in_stake_currency": 0.5,
"allowed_risk": 0.01,
"maximum_winrate": 0.80,
"maximum_winrate": 0.80,
"min_trade_number": 15,
"max_trade_duration_minute": 1440,
"remove_pumps": true,
"minimum_delta": 1
},

View File

@ -43,11 +43,13 @@ class Edge():
self.get_timeframe = Backtesting.get_timeframe
self.populate_buy_trend = self.strategy.populate_buy_trend
self.populate_sell_trend = self.strategy.populate_sell_trend
self.edge_config = self.config.get('edge', {})
self._last_updated = None
self._cached_pairs = []
self._total_capital = self.config['edge']['total_capital_in_stake_currency']
self._allowed_risk = self.config['edge']['allowed_risk']
self._total_capital = self.edge_config['total_capital_in_stake_currency']
self._allowed_risk = self.edge_config['allowed_risk']
###
#
@ -303,7 +305,7 @@ class Edge():
###################################
# Removing pairs having less than min_trades_number
min_trades_number = 50
min_trades_number = self.edge_config.get('min_trade_number', 15)
results = results.groupby('pair').filter(lambda x: len(x) > min_trades_number)
###################################
@ -319,11 +321,12 @@ class Edge():
avg = results[["profit_abs"]].mean()
#
# Removing Pumps
results = results[results.profit_abs < float(avg + 2*std)]
if self.edge_config.get('remove_pumps', True):
results = results[results.profit_abs < float(avg + 2*std)]
##########################################################################
# Removing trades having a duration more than X minutes (set in config)
max_trade_duration = 24*60
max_trade_duration = self.edge_config.get('max_trade_duration_minute', 1440)
results = results[results.trade_duration < max_trade_duration]
#######################################################################
@ -906,23 +909,6 @@ class Edge():
return (allowed_dollars_at_risk / symbol_strategy_stop_loss)
### stake amount is the same as position size
### calculate position size
# print("\n~~~~~~~~ Position Size ~~~~~~~~")
# print("bid price is ", bid_price)
# print("stop trigger is ", stop_trigger_price)
# allowed_dollars_at_risk = total_capital * allowed_risk
# print("allowed capital at risk ", round(allowed_dollars_at_risk, 5))
# position_size = (allowed_dollars_at_risk / symbol_strategy_stop_loss)
# print("position_size in dollars", round(position_size, 5 ))
# buy_amount = position_size / bid_price
# print("amount of tokens to buy ", round(buy_amount,5))
# check_risk = (buy_amount * (bid_price - stop_trigger_price))
# print("check risk capital ", round(check_risk, 5), "** Should not be more than allowed capital at risk")
def stoploss(self, pair: str) -> float:
info = [x for x in self._cached_pairs if x[0] == pair][0]

View File

@ -130,8 +130,11 @@ def default_conf():
"edge": {
"enabled": False,
"process_throttle_secs": 1800,
"total_capital_in_stake_currency": 0.5,
"allowed_risk": 0.01,
"maximum_winrate": 0.80,
"min_trade_number": 15,
"max_trade_duration_minute": 1440,
"remove_pumps": True,
"minimum_delta": 1
},