Skip to main content

BuyOnly: The "Buy Only No Sell" Chill HODLer

Nickname: Chill HOLD Party, Buy Only No Sell
Profession: Buy then lie flat, wait for take-profit or stoploss
Timeframe: 15 minutes (Medium-frequency trading)


1. What's This Thing?

Simply put, BuyOnly is:

  • A super chill strategy that only buys, never sells
  • A cautious player that needs 4 indicators to confirm before buying
  • A lazy player whose exits all depend on take-profit/stoploss
  • A minimalist with explosively little code

It's like buying a stock and then deleting the trading app, waiting until it hits your target price or stoploss before opening it again to sell — the fluctuations in between? None of my business! 🤣

The strategy's name is literally "Buy Only", the sell function in the code is empty, just a HODL comment — this is a famous meme in the crypto world, meaning "hold on for dear life".


2. Core Config: Basically "Lie Flat"

Profit-Taking Rules (ROI Table)

Hold < 30min → Run at 4% profit
Hold 30-60min → Run at 2% profit
Hold > 60min → Run at 1% profit

Plain English: This take-profit setting is counter-intuitive! Shorter holding time, higher take-profit target. Why? The strategy thinks entry points right after buying are better, should earn more; as time passes, take what you got, don't be greedy.

Stoploss Rules

Loss 10% → Admit defeat and leave

Plain English: Cut at 10% loss, no nonsense.

Trailing Stop

trailing_stop = True (enable default trailing stop)

Plain English: Can also trail, follows when price goes up, sells when it turns back.


3. 1 Entry Condition: Four-Insurance Confirmation

This strategy has only 1 entry condition, but has 4 sub-conditions that must all be met:

(
qtpylib.crossed_above(dataframe["rsi"], 30) # RSI crosses up from below 30
& (dataframe["open"] <= dataframe["bb_lowerband"]) # Open price at or below Bollinger Band lower band
& (dataframe["tema"] > dataframe["tema"].shift(1)) # TEMA going up
& (dataframe["volume"] > 0) # Has trading volume
)

Plain English Translation:

"Boss! I found a great opportunity! RSI just climbed out of oversold zone, price opened near Bollinger Band lower band (means it dropped too much), TEMA still going up (trend upward), volume exists too — this is about to bounce! BUY!"

All four conditions must be met, only act when all satisfied.

Entry Signal Breakdown

ConditionTechnical MeaningPlain English
RSI crosses above 30RSI rebounds from oversoldCan't sell anymore, time to bounce
Open ≤ Bollinger Band lower bandPrice at extreme lowCheap as hell
TEMA upwardTrend directionAlready started going up
Volume > 0Has trading activityNot a dead coin, people playing

4. Protection: Sorry, None!

BuyOnly is a minimalist strategy, no complex protection mechanisms:

  • No entry protection parameter groups
  • No EMA protection
  • No ADX filtering

The strategy thinks RSI + Bollinger Bands + TEMA these three indicators themselves are protection. 🤷‍♂️


5. Exit Logic: Completely None!

def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
HODL
"""
return dataframe

Look! The exit function has just one comment HODL, then directly returns empty data.

All exits rely on passive mechanisms:

Exit MethodTrigger ConditionPlain English
ROI Take-ProfitHolding time + profit rateRun when made enough
Fixed StoplossLoss 10%Dropped too much, admit defeat
Trailing StopPrice turns backFollow when up, sell when turns

6. This Strategy's "Personality Traits"

✅ Pros (Praise Section)

  1. Explosively Simple: Code just a few lines, beginners understand in 5 minutes
  2. No Need to Manage Exits: Buy then lie flat, worry-free
  3. Multi-Indicator Confirmation: 4 conditions together, won't buy blindly
  4. Learning Friendly: Best for first lesson
  5. Highly Extensible: This is a "skeleton", add whatever you want

⚠️ Cons (Roast Section)

  1. No Exit Signals: Completely passive, might ride the roller coaster
  2. Counter-Trend Entry: May buy in downtrend, catching falling knives
  3. Few Signals: 15min + 4 conditions, might only trigger once in several days
  4. Stoploss Too Big: 10% stoploss maybe okay for crypto, but wide for other markets
  5. Doesn't Distinguish Bull/Bear: Buys same in all markets, not picky

7. Applicable Scenarios: When to Use It?

Market EnvironmentRecommended ActionReason
📈 Rebound market✅ Use it!Oversold bounce is its specialty
📊 Uptrend✅ UsableHigh success rate buying in uptrend
📉 Downtrend❌ Don't use!Catching falling knives, easy to stoploss
🔄 Ranging market⚠️ CautionBollinger Band lower band may get slapped repeatedly

One Sentence: Best performance in pullback entries during uptrends, or oversold bounces in ranging markets.


8. Summary: How's This Strategy Really?

One-Sentence Review

"The chillest strategy — buy then delete the app, just HODL. Suitable for lazy people, beginners, and those wanting to learn strategy development."

Who Should Use It?

  • ✅ Beginners learning Freqtrade strategy development
  • ✅ Lazy players, don't want frequent operations
  • ✅ Want simple strategy skeleton for extension
  • ✅ Like oversold bounce strategies

Who Should NOT Use It?

  • ❌ Pursue active management, fine-tuned operations
  • ❌ Want to catch big trends (it's just a bounce strategy)
  • ❌ Like frequent trading (few signals)
  • ❌ Don't want to ride roller coasters (no active exit)

My Suggestions

  1. As learning starting point: This strategy is the best intro case
  2. Can be modified: Add trend filtering, add protection mechanisms, add exit logic
  3. Use small capital first: Test for a while to see results
  4. Coordinate with big trend: Only use during overall uptrend

9. What Markets Can This Strategy Make Money In?

9.1 Core Logic: Oversold Bounce

BuyOnly's philosophy is simple:

  • RSI < 30 = Sold too much
  • Bollinger Band lower band = Price too cheap
  • TEMA upward = Started rising
  • All three together = Bounce opportunity!

9.2 Performance in Different Markets (Plain English Version)

Market TypePerformance RatingPlain English Explanation
📈 Uptrend pullback⭐⭐⭐⭐⭐Big trend up + short-term oversold = best buy point
📉 Downtrend⭐☆☆☆☆Catching falling knives, easy to stoploss
🔄 Ranging market⭐⭐⭐☆☆Bollinger Band lower band useful, but may get slapped repeatedly
⚡ High volatility⭐⭐☆☆☆Frequent signals, but direction hard to judge

One-Sentence Summary: Oversold bounce in uptrend = this strategy's comfort zone 🎯

9.3 Key Configuration Recommendations

Configuration ItemSuggested ValueDescription
Timeframe15m (default)Can try 5m or 30m
Stoploss-10% (default)Can adjust based on coin
Take-Profit1-4% (default)Crypto can be higher

10. Want to Run This Strategy? Check These Configs First

10.1 Pair Configuration

Configuration ItemSuggested ValueRoast
Number of pairs10-20Too few = not enough signals, too many = trouble managing
Coin SelectionMainstream coinsDon't buy meme coins, oversold may sell more

10.2 Hardware Requirements (Very Low!)

This strategy is ridiculously simple, almost no hardware requirements:

Number of PairsMinimum MemoryRecommended MemoryExperience
1-201GB1GBSmooth
20+2GB2GBNo problem

Warning: If this strategy lags on your machine, time to change computers 😅

10.3 Backtest vs Live Trading

Backtest Performance:

  • Backtest results look good in up years
  • May frequently stoploss in down years

Live Trading Notes:

  • Signals may be fewer than you think
  • Stoploss may be more frequent than you think

Suggested Process:

  1. Backtest first to see historical performance
  2. Run paper trading for a month
  3. Small capital live test
  4. Add position after confirming stability

11. Easter Egg: The Strategy Author's "Little Thoughts"

Reading the code, I think the author might have smiled when writing this function:

def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
HODL
"""
return dataframe

HODL origin story:

In 2010, a drunk brother posted "I AM HODLING" (meant to write HOLDING), became a famous meme in crypto world, meaning "hold on for dear life, regardless of ups and downs".

Author's subtext:

"Sell? Doesn't exist. Buy then delete the app, just HODL!"


12. Final Final Thoughts

One-Sentence Review

"BuyOnly is the 'minimalist master' of strategies — uses least code to show you how strategies should be written."

Who Should Use It?

  • ✅ Beginners learning Freqtrade strategy development
  • ✅ Want simple strategy skeleton for extension
  • ✅ Lazy players, don't want frequent operations
  • ✅ Like oversold bounce strategies

Who Should NOT Use It?

  • ❌ Pursue complex strategies
  • ❌ Want active exit control
  • ❌ Don't want to ride roller coasters
  • ❌ Like frequent trading

Manual Trader Suggestions

If you're a manual trader, can borrow this strategy's approach:

  1. Wait for RSI to rebound from below 30
  2. Confirm price at Bollinger Band lower band
  3. Check TEMA direction upward
  4. Volume has surge
  5. Buy only when all 4 conditions met

But remember to set your own stoploss and take-profit, don't really "buy only no sell"! 😄


13. ⚠️ Risk Reminder (Must Read This Section)

Backtest Looks Great, Live Trading Needs Caution

BuyOnly looks simple and beautiful — but simple doesn't mean safe!

This strategy's core risks: counter-trend entry, passive exit.

Simply put: You think you're buying the bottom, actually might be catching a falling knife. 🗡️

Hidden Risks of Complex Strategies

Even such a simple strategy has live trading risks:

  • Too few signals: 4 conditions met simultaneously may rarely happen, you'll wonder if strategy is broken
  • Stoploss too big: 10% stoploss maybe okay in crypto, but disaster in other markets
  • No exit logic: Rose 20% then dropped back to 2%, you regret or not?
  • Doesn't distinguish trend: Bottom-fishing in downtrend, catch halfway down

My Suggestions (Real Talk)

1. Don't use in downtrend! Wait for trend upward first
2. Stoploss can be smaller, like 5%
3. Take-profit target can be higher, don't sell too early
4. Paper trade for a month first, see signal frequency
5. Small capital test, add position after confirming stability

Remember: No matter how simple the strategy, the market will teach you lessons. The premise of HODL is you bought at a good position, can't lie flat anytime!

Final Final

BuyOnly is good learning material, but not necessarily a good money-making tool.

Treat it as strategy development starting point, not endpoint. On this foundation:

  • Add trend filtering (like EMA slope)
  • Add exit logic (like RSI overbought)
  • Adjust stoploss/take-profit parameters
  • Add more protection mechanisms

Then you'll have your own strategy! 🚀


Final Reminder: No matter how good the strategy, the market won't say hello when teaching you a lesson. Light position test, staying alive is most important! 🙏