Skip to content
All hypotheses

Hypotheses

Freqtrade 'Low_BB' by berlinguyinca (Thorsten), faithful port: long-only 1m buy when close <= 0.98 x lower Bollinger(20,2), exits ONLY via ROI table {0:90%,1:5%,10:4%,15:50%} and fixed -1.5% stoploss, run per pair on a 6-alt Binance Spot basket

Faithful line-for-line translation of the GPL-3.0 Freqtrade strategy 'Low_BB' by berlinguyinca (author Thorsten),…

Hypothesis

Faithful line-for-line translation of the GPL-3.0 Freqtrade strategy 'Low_BB' by berlinguyinca (author Thorsten), https://github.com/freqtrade/freqtrade-strategies/blob/f3340ce11f5bdf62f598522e64d1f5638eaa13f5/user_data/strategies/berlinguyinca/Low_BB.py. The author gets the credit. Any performance the original claims is unverified; our backtest with real fees decides. The source is a real, tradeable strategy, not a utility. INDICATORS: populate_indicators first computes Bollinger(20, 2) on the typical price and……Show moreShow less

Faithful line-for-line translation of the GPL-3.0 Freqtrade strategy 'Low_BB' by berlinguyinca (author Thorsten), https://github.com/freqtrade/freqtrade-strategies/blob/f3340ce11f5bdf62f598522e64d1f5638eaa13f5/user_data/strategies/berlinguyinca/Low_BB.py. The author gets the credit. Any performance the original claims is unverified; our backtest with real fees decides. The source is a real, tradeable strategy, not a utility. INDICATORS: populate_indicators first computes Bollinger(20, 2) on the typical price and MACD(12,26,9). Both are then OVERWRITTEN or never used: the 'required for graphing' block recomputes bb_lowerband/bb_middleband/bb_upperband from Bollinger(window=20, stds=2) on CLOSE, and MACD is never referenced by entry or exit. The developer must therefore use the CLOSE-based band, defined as qtpylib does it: mid = rolling mean(close, 20), std = pandas rolling std(close, 20) with ddof=1 (sample std), lower = mid - 2*std. MACD and the typical-price band are dead code and must not be implemented as signals. ENTRY: enter_long = 1 when close <= 0.98 * bb_lowerband on a closed 1m bar; there are no other conditions. Freqtrade fills at the NEXT candle's open, so the port submits a market buy on that signal bar's close (equivalent within one bar). EXIT SIGNAL: populate_exit_trend runs dataframe.loc[(), 'exit_long'] = 1. Verified on pandas 2.3.3, that statement creates the exit_long column but leaves it all-NaN, so the strategy has NO signal exit. That matches the docstring's 'sell if (trailing) stop loss is hit'. trailing_stop is not set, so the stop is a FIXED stop, not a trailing one. Positions close only through: (1) minimal_roi = {"0": 0.9, "1": 0.05, "10": 0.04, "15": 0.5}, keyed by minutes since entry. The rule in force is the one with the largest key <= the trade's age: ages 0 to <1 min take +90%, 1 to <10 min take +5%, 10 to <15 min take +4%, and 15+ min take +50%, which in practice is unbounded. (2) stoploss = -0.015, a fixed -1.5% from the entry price that is always active. No time stop, no other exit. VENUE/INSTRUMENTS: the rules are long-only with no leverage, so they belong on BINANCE_SPOT (CASH), which is also under its >=15% venue quota at 10.7%. Freqtrade runs a strategy over a pairlist, one trade per pair, so the faithful platform equivalent runs the identical rules independently on 6 liquid, volatile Binance Spot alts. Each has 1m history from 2018-2020 in the catalog (checked): DOGE, SOL, AVAX, ADA, XRP, LINK. BTC is deliberately excluded. A 1m close 2% below its lower band is rare enough on BTC to give almost no trades, and BTC is the over-mined series. SIZING: this replaces Freqtrade's stake_amount/max_open_trades. Each pair gets a fixed 1/6 of account equity per trade (≈16.7% notional, the max exposure per position), at most one open position per pair, leverage 1.0. The -1.5% stop therefore risks ≈0.25% of equity per trade. FEES: Binance Spot 0.10% taker each side, 0.20% round trip.

Analysis

Low_BB

Backtest and paper results are hypothetical. Trading involves risk of loss.