Added second indicator (RSI)

This commit is contained in:
OtenMoten
2021-03-28 15:22:51 +02:00
committed by GitHub
parent 58981b3166
commit 67fd683de3
+64 -25
View File
@@ -20,26 +20,32 @@ __email__ = "kevin.ossenbrueck@pm.de"
__status__ = "Live"
cciTimeMin = 10
cciTimeMax = 100
cciValueMin = -400
cciValueMax = 400
cciTimeMax = 80
cciValueMin = -200
cciValueMax = 200
cciTimeRange = range(cciTimeMin, cciTimeMax)
class_name = 'HOSwingHighToSky'
rsiTimeMin = 10
rsiTimeMax = 80
rsiValueMin = 10
rsiValueMax = 90
rsiTimeRange = range(rsiTimeMin, rsiTimeMax)
class HOSwingHighToSky(IHyperOpt):
@staticmethod
def populate_indicators(dataframe: DataFrame, metadata: dict) -> DataFrame:
macd = ta.MACD(dataframe)
dataframe['macd'] = macd['macd']
dataframe['macdsignal'] = macd['macdsignal']
for cciTime in cciTimeRange:
cciName = "cci-" + str(cciTime)
dataframe[cciName] = ta.CCI(dataframe, timeperiod = cciTime)
for rsiTime in rsiTimeRange:
rsiName = "rsi-" + str(rsiTime)
dataframe[rsiName] = ta.RSI(dataframe, timeperiod = rsiTime)
return dataframe
@staticmethod
@@ -50,15 +56,24 @@ class HOSwingHighToSky(IHyperOpt):
conditions = []
# TRIGGERS & GUARDS
if 'trigger' in params:
if 'cci-buy-trigger' in params:
for cciTime in cciTimeRange:
cciName = "cci-" + str(cciTime)
if params['trigger'] == cciName:
conditions.append(dataframe[cciName] < params["buy-cci-value"])
conditions.append(dataframe['macd'] > dataframe['macdsignal'])
if params['cci-buy-trigger'] == cciName:
conditions.append(dataframe[cciName] < params["cci-buy-value"])
conditions.append(dataframe['volume'] > 0)
if 'rsi-buy-trigger' in params:
for rsiTime in rsiTimeRange:
rsiName = "rsi-" + str(rsiTime)
if params['rsi-buy-trigger'] == rsiName:
conditions.append(dataframe[rsiName] < params["rsi-buy-value"])
conditions.append(dataframe['volume'] > 0)
if conditions:
@@ -71,16 +86,24 @@ class HOSwingHighToSky(IHyperOpt):
@staticmethod
def indicator_space() -> List[Dimension]:
buyTriggerList = []
cciBuyTriggerList = []
rsiBuyTriggerList = []
for cciTime in cciTimeRange:
cciName = "cci-" + str(cciTime)
buyTriggerList.append(cciName)
cciBuyTriggerList.append(cciName)
for rsiTime in rsiTimeRange:
rsiName = "rsi-" + str(rsiTime)
rsiBuyTriggerList.append(rsiName)
return [
Integer(cciValueMin, cciValueMax, name='buy-cci-value'),
Categorical(buyTriggerList, name='trigger')
Integer(cciValueMin, cciValueMax, name='cci-buy-value'),
Integer(rsiValueMin, rsiValueMax, name='rsi-buy-value'),
Categorical(cciBuyTriggerList, name='cci-buy-trigger'),
Categorical(rsiBuyTriggerList, name='rsi-buy-trigger')
]
@staticmethod
@@ -91,15 +114,23 @@ class HOSwingHighToSky(IHyperOpt):
conditions = []
# TRIGGERS & GUARDS
if 'sell-trigger' in params:
if 'cci-sell-trigger' in params:
for cciTime in cciTimeRange:
cciName = "cci-" + str(cciTime)
if params['sell-trigger'] == cciName:
conditions.append(dataframe[cciName] > params["sell-cci-value"])
conditions.append(dataframe['macd'] < dataframe['macdsignal'])
if params['cci-sell-trigger'] == cciName:
conditions.append(dataframe[cciName] > params["cci-sell-value"])
if 'rsi-sell-trigger' in params:
for rsiTime in rsiTimeRange:
rsiName = "rsi-" + str(rsiTime)
if params['rsi-sell-trigger'] == rsiName:
conditions.append(dataframe[rsiName] > params["rsi-sell-value"])
if conditions:
dataframe.loc[reduce(lambda x, y: x & y, conditions), 'sell'] = 1
@@ -111,14 +142,22 @@ class HOSwingHighToSky(IHyperOpt):
@staticmethod
def sell_indicator_space() -> List[Dimension]:
sellTriggerList = []
cciSellTriggerList = []
rsiSellTriggerList = []
for cciTime in cciTimeRange:
cciName = "cci-" + str(cciTime)
sellTriggerList.append(cciName)
cciSellTriggerList.append(cciName)
for rsiTime in rsiTimeRange:
rsiName = "rsi-" + str(rsiTime)
rsiSellTriggerList.append(rsiName)
return [
Integer(cciValueMin, cciValueMax, name='sell-cci-value'),
Categorical(sellTriggerList, name='sell-trigger')
]
Integer(cciValueMin, cciValueMax, name='cci-sell-value'),
Integer(rsiValueMin, rsiValueMax, name='rsi-sell-value'),
Categorical(cciSellTriggerList, name='cci-sell-trigger'),
Categorical(rsiSellTriggerList, name='rsi-sell-trigger')
]