💬 Forum

MyStrategy

remiotore/ccxt-freqtrade/strategies/chat_gpt_converted.py · ★3 · ⑂2 · first seen 2026-07-28 · repo updated 2026-01-11

Basics mode: spot timeframe: 5m interface version: 3
Settings stoploss: -0.1 has minimal roi trailing
Indicators EMA MACD RSI talib
Concepts trailing
15 related strategies ( identical code, similar name)

Each tile is a different kind of check — from an instant code lint to full sandboxed backtests and forward tests on recent data. Not sure what a check actually proves? See the FAQ →

 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
from freqtrade.strategy import IStrategy
from pandas import DataFrame
import talib

class MyStrategy(IStrategy):
    INTERFACE_VERSION = 3
    timeframe = '5m'
    minimal_roi = {'60': 0.1, '30': 0.05, '0': 0.02}
    stoploss = -0.1
    trailing_stop = True
    trailing_stop_positive = 0.02
    trailing_stop_positive_offset = 0.03
    trailing_only_offset_is_reached = True

    def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe['ema_fast'] = talib.EMA(dataframe['close'], timeperiod=12)
        dataframe['ema_slow'] = talib.EMA(dataframe['close'], timeperiod=26)
        macd, macdsignal, macdhist = talib.MACD(dataframe['close'], fastperiod=12, slowperiod=26, signalperiod=9)
        dataframe['macd'] = macd
        dataframe['macdsignal'] = macdsignal
        dataframe['rsi'] = talib.RSI(dataframe['close'], timeperiod=14)
        return dataframe

    def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe.loc[(dataframe['ema_fast'] > dataframe['ema_slow']) & (dataframe['macd'] > dataframe['macdsignal']) & (dataframe['rsi'] < 30), 'enter_long'] = 1
        return dataframe

    def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe.loc[(dataframe['ema_fast'] < dataframe['ema_slow']) & (dataframe['macd'] < dataframe['macdsignal']) & (dataframe['rsi'] > 70), 'exit_long'] = 1
        return dataframe