rosecross

MACDO

Mar 2nd, 2021
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. # --- Do not remove these libs ---
  2. from freqtrade.strategy.interface import IStrategy
  3. from typing import Dict, List
  4. from functools import reduce
  5. from pandas import DataFrame
  6. # --------------------------------
  7. import freqtrade.vendor.qtpylib.indicators as qtpylib
  8. import talib.abstract as ta
  9.  
  10.  
  11. class MACDO(IStrategy):
  12.  
  13. ticker_interval = '5m'
  14.  
  15. # ROI table:
  16. minimal_roi = {
  17. "0": 0.03024,
  18. "296": 0.02924,
  19. "596": 0.02545,
  20. "840": 0.02444,
  21. "966": 0.02096,
  22. "1258": 0.01709,
  23. "1411": 0.01598,
  24. "1702": 0.0122,
  25. "1893": 0.00732,
  26. "2053": 0.00493,
  27. "2113": 0
  28. }
  29.  
  30. # Stoploss:
  31. stoploss = -0.04032
  32.  
  33. def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
  34. dataframe['ema200'] = ta.EMA(dataframe, timeperiod=200)
  35. macd = ta.MACD(dataframe)
  36. dataframe['macd'] = macd['macd']
  37. dataframe['macdsignal'] = macd['macdsignal']
  38. dataframe['macdhist'] = macd['macdhist']
  39.  
  40. dataframe['rsi'] = ta.RSI(dataframe)
  41. dataframe['sell-rsi'] = ta.RSI(dataframe)
  42. return dataframe
  43.  
  44. def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
  45. dataframe.loc[
  46. (
  47. (dataframe['rsi'].rolling(8).min() < 41) &
  48. (dataframe['close'] > dataframe['ema200']) &
  49. (qtpylib.crossed_above(dataframe['macd'], dataframe['macdsignal']))
  50. ),
  51. 'buy'] = 1
  52.  
  53. return dataframe
  54.  
  55. def populate_sell_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
  56. dataframe.loc[
  57. (
  58. (dataframe['rsi'].rolling(8).max() > 93) &
  59. (dataframe['macd'] > 0) &
  60. (qtpylib.crossed_below(dataframe['macd'], dataframe['macdsignal']))
  61. ),
  62. 'sell'] = 1
  63.  
  64. return dataframe
Advertisement
Add Comment
Please, Sign In to add comment