import numpy as np # noqa import pandas as pd # noqa from pandas import DataFrame from freqtrade.strategy.interface import IStrategy import talib.abstract as ta import freqtrade.vendor.qtpylib.indicators as qtpylib from technical.consensus import Consensus class conny(IStrategy): INTERFACE_VERSION = 3 minimal_roi = {'0': 0.025, '10': 0.015, '20': 0.01, '30': 0.005, '120': 0} stoploss = -0.0203 timeframe = '15m' process_only_new_candles = True use_exit_signal = True exit_profit_only = False ignore_roi_if_entry_signal = True startup_candle_count: int = 30 def informative_pairs(self): return [] def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame: # Consensus strategy # add c.evaluate_indicator bellow to include it in the consensus score (look at # consensus.py in freqtrade technical) # add custom indicator with c.evaluate_consensus(prefix=) c = Consensus(dataframe) c.evaluate_rsi() c.evaluate_stoch() c.evaluate_macd_cross_over() c.evaluate_macd() c.evaluate_hull() c.evaluate_vwma() c.evaluate_tema(period=12) c.evaluate_ema(period=24) c.evaluate_sma(period=12) c.evaluate_laguerre() c.evaluate_osc() c.evaluate_cmf() c.evaluate_cci() c.evaluate_cmo() c.evaluate_ichimoku() c.evaluate_ultimate_oscilator() c.evaluate_williams() c.evaluate_momentum() c.evaluate_adx() dataframe['consensus_entry'] = c.score()['entry'] dataframe['consensus_exit'] = c.score()['exit'] print(dataframe) return dataframe def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: dataframe.loc[(dataframe['consensus_entry'] > 45) & (dataframe['volume'] > 0), 'entry'] = 1 return dataframe def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: dataframe.loc[(dataframe['consensus_exit'] > 88) & (dataframe['volume'] > 0), 'exit'] = 1 return dataframe