Timeframe
1h
Direction
Long Only
Stoploss
-8.0%
Trailing Stop
No
ROI
0m: 10.0%
Interface Version
3
Startup Candles
64
Indicators
2
freqtrade/freqtrade-strategies
this is an example class, implementing a PSAR based trailing stop loss you are supposed to take the `custom_stoploss()` and `populate_indicators()` parts and adapt it to your own strategy
freqtrade/freqtrade-strategies
freqtrade/freqtrade-strategies
Strategy 003 author@: Gerald Lonlas github@: https://github.com/freqtrade/freqtrade-strategies
"""
Auto-generated by trade-md from adx-smas@0.1.0.
DO NOT EDIT BY HAND - modify TRADE.md and recompile.
Source strategy: adx-smas
Version: 0.1.0
Thesis: Trend-strength-filtered SMA crossover. Uses ADX(14) as a trend strength gate — only
"""
from __future__ import annotations
from pandas import DataFrame
import talib.abstract as ta
from freqtrade.strategy import IStrategy, merge_informative_pair
class AdxSmas(IStrategy):
"""Compiled from TRADE.md. Parent: none"""
INTERFACE_VERSION = 3
timeframe = '1h'
stoploss = -0.08
minimal_roi = {"0": 0.1}
trailing_stop = False
startup_candle_count = 64
max_open_trades = 3
process_only_new_candles = True
can_short = False
@property
def protections(self):
return []
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['adx_14'] = ta.ADX(dataframe, timeperiod=14)
dataframe['sma_3'] = ta.SMA(dataframe, timeperiod=3)
dataframe['sma_6'] = ta.SMA(dataframe, timeperiod=6)
dataframe['sma_3_shift_1'] = dataframe['sma_3'].shift(1)
dataframe['sma_6_shift_1'] = dataframe['sma_6'].shift(1)
return dataframe
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
((dataframe['adx_14'] > 25) & ((dataframe['sma_3'] > dataframe['sma_6']) & (dataframe['sma_3_shift_1'] <= dataframe['sma_6_shift_1']))),
['enter_long', 'enter_tag']
] = (1, 'adx_strong_sma_cross')
return dataframe
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[
((dataframe['adx_14'] < 25) & ((dataframe['sma_6'] > dataframe['sma_3']) & (dataframe['sma_6_shift_1'] <= dataframe['sma_3_shift_1']))),
['exit_long', 'exit_tag']
] = (1, 'adx_weak_sma_reverse')
return dataframe