-
Notifications
You must be signed in to change notification settings - Fork 88
/
Copy pathBlueEyes_MPP_v1.py
108 lines (73 loc) · 3.06 KB
/
BlueEyes_MPP_v1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
class BlueEyes_MPP_v1(IStrategy):
# Optimal timeframe for the strategy
timeframe = '5m'
# generate signals from the 1h timeframe
informative_timeframe = '1d'
minimal_roi = {
"0": 10,
}
# Stoploss:
stoploss = -0.10
def informative_pairs(self):
pairs = self.dp.current_whitelist()
informative_pairs = [(pair, self.informative_timeframe)
for pair in pairs]
if self.dp:
for pair in pairs:
informative_pairs += [(pair, "1d")]
return informative_pairs
def slow_tf_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
# dataframe "1d"
"""
dataframe1d = self.dp.get_pair_dataframe(
pair=metadata['pair'], timeframe="1d")
# Pivots Points
pp = pivots_points(dataframe1d)
dataframe1d['pivot'] = pp['pivot']
dataframe1d['r1'] = pp['r1']
dataframe1d['s1'] = pp['s1']
dataframe1d['rS1'] = pp['rS1']
# Pivots Points
dataframe = merge_informative_pair(
dataframe, dataframe1d, self.timeframe, "1d", ffill=True)
"""
# dataframe normal
"""
create_ichimoku(dataframe, conversion_line_period=20,
displacement=88, base_line_periods=88, laggin_span=88)
create_ichimoku(dataframe, conversion_line_period=88,
displacement=444, base_line_periods=88, laggin_span=88)
create_ichimoku(dataframe, conversion_line_period=355,
displacement=880, base_line_periods=175, laggin_span=175)
dataframe['ema20'] = ta.EMA(dataframe, timeperiod=20)
dataframe['ema88'] = ta.EMA(dataframe, timeperiod=88)
dataframe['ema440'] = ta.EMA(dataframe, timeperiod=440)
# Start Trading
dataframe['pivots_ok'] = (
(dataframe['close'] > dataframe['pivot_1d']) &
(dataframe['r1_1d'] > dataframe['close']) &
(dataframe['close'] > dataframe['ema440']) &
(dataframe['ema88'] > dataframe['ema440']) &
(dataframe['kijun_sen_355'] >= dataframe['tenkan_sen_355']) &
(dataframe['close'] > dataframe['senkou_b_88'])
).astype('int')
dataframe['trending_over'] = (
(dataframe['ema88'] > dataframe['close'])
).astype('int')
return dataframe
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe = self.slow_tf_indicators(dataframe, metadata)
return dataframe
def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
(
(dataframe['pivots_ok'] > 0)
), 'buy'] = 1
return dataframe
def populate_sell_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
(
(dataframe['trending_over'] > 0)
), 'sell'] = 1
return dataframe