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
| Condition | Technical Meaning | Plain English |
|---|---|---|
| RSI crosses above 30 | RSI rebounds from oversold | Can't sell anymore, time to bounce |
| Open ≤ Bollinger Band lower band | Price at extreme low | Cheap as hell |
| TEMA upward | Trend direction | Already started going up |
| Volume > 0 | Has trading activity | Not 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 Method | Trigger Condition | Plain English |
|---|---|---|
| ROI Take-Profit | Holding time + profit rate | Run when made enough |
| Fixed Stoploss | Loss 10% | Dropped too much, admit defeat |
| Trailing Stop | Price turns back | Follow when up, sell when turns |
6. This Strategy's "Personality Traits"
✅ Pros (Praise Section)
- Explosively Simple: Code just a few lines, beginners understand in 5 minutes
- No Need to Manage Exits: Buy then lie flat, worry-free
- Multi-Indicator Confirmation: 4 conditions together, won't buy blindly
- Learning Friendly: Best for first lesson
- Highly Extensible: This is a "skeleton", add whatever you want
⚠️ Cons (Roast Section)
- No Exit Signals: Completely passive, might ride the roller coaster
- Counter-Trend Entry: May buy in downtrend, catching falling knives
- Few Signals: 15min + 4 conditions, might only trigger once in several days
- Stoploss Too Big: 10% stoploss maybe okay for crypto, but wide for other markets
- Doesn't Distinguish Bull/Bear: Buys same in all markets, not picky
7. Applicable Scenarios: When to Use It?
| Market Environment | Recommended Action | Reason |
|---|---|---|
| 📈 Rebound market | ✅ Use it! | Oversold bounce is its specialty |
| 📊 Uptrend | ✅ Usable | High success rate buying in uptrend |
| 📉 Downtrend | ❌ Don't use! | Catching falling knives, easy to stoploss |
| 🔄 Ranging market | ⚠️ Caution | Bollinger 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
- As learning starting point: This strategy is the best intro case
- Can be modified: Add trend filtering, add protection mechanisms, add exit logic
- Use small capital first: Test for a while to see results
- 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 Type | Performance Rating | Plain 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 Item | Suggested Value | Description |
|---|---|---|
| Timeframe | 15m (default) | Can try 5m or 30m |
| Stoploss | -10% (default) | Can adjust based on coin |
| Take-Profit | 1-4% (default) | Crypto can be higher |
10. Want to Run This Strategy? Check These Configs First
10.1 Pair Configuration
| Configuration Item | Suggested Value | Roast |
|---|---|---|
| Number of pairs | 10-20 | Too few = not enough signals, too many = trouble managing |
| Coin Selection | Mainstream coins | Don'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 Pairs | Minimum Memory | Recommended Memory | Experience |
|---|---|---|---|
| 1-20 | 1GB | 1GB | Smooth |
| 20+ | 2GB | 2GB | No 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:
- Backtest first to see historical performance
- Run paper trading for a month
- Small capital live test
- 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:
- Wait for RSI to rebound from below 30
- Confirm price at Bollinger Band lower band
- Check TEMA direction upward
- Volume has surge
- 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! 🙏