
La stratégie de simplicité de détention est une stratégie d’achat régulier de crypto-monnaies pour augmenter la valeur des actifs en achetant et en détenant des crypto-monnaies à plusieurs reprises. La stratégie comprend principalement trois composants principaux: le signal d’achat régulier, le signal de détention et le signal de sortie.
La logique de base de cette stratégie est la suivante:
Envoyer un signal d’achat pour effectuer un premier achat.
Chaque fois qu’un certain nombre de pièces sont échangées, un signal d’achat est envoyé pour acheter plus de pièces de base avec la devise de référence.
Lorsque le comptage des jetons atteint la valeur prédéfinie, l’instruction de sortie est envoyée et la position est effacée.
Lorsque l’heure de sortie est arrivée, envoyez un signal de sortie, arrêtez la stratégie et liquidez toutes les positions.
L’effet de la moyenne des coûts et de la rétention continue peut être obtenu en achetant et en détenant des crypto-monnaies à plusieurs reprises.
Cette stratégie présente les avantages suivants:
Il est possible d’acheter des crypto-monnaies régulièrement, ce qui réduit le risque de temps d’achat.
Le coût moyen de détention d’une crypto-monnaie peut être réduit par des achats répétés.
Les gains de croissance du portefeuille peuvent être obtenus en augmentant continuellement la position.
Il est possible de personnaliser le moment de l’achat et de la sortie et d’automatiser le fonctionnement.
L’opération est simple et facile à maîtriser.
La stratégie présente également les risques suivants:
Le risque systémique sur le marché des crypto-monnaies, avec une forte volatilité des prix.
Un retrait à un mauvais moment peut entraîner une perte de temps.
Une mauvaise gestion des fonds peut aussi entraîner des pertes insupportables.
Cette stratégie peut être optimisée dans les domaines suivants:
Les périodes et les montants d’achat sont adaptés en fonction de la situation du marché.
Ajout d’un signal de stop-loss pour arrêter la position de vente lorsque le prix est en dessous du support.
Le meilleur moment pour l’entrée et la sortie du marché, combiné à d’autres facteurs.
Cette stratégie de détention naïve permet d’obtenir des effets de coût moyen et de valeur ajoutée combinée en achetant et en détenant régulièrement des crypto-monnaies. C’est une stratégie de quantification relativement simple, à condition de maîtriser la méthode d’utilisation. En introduisant plus d’optimisations, la stratégie peut être rendue plus intelligente et adaptée aux changements du marché.
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Merdoc390
//@version=5
// The idea with this script is to use 3commas DCA bot to keep buying crypto, but not 'close the deal' which sells the crypto.
// Basic idea is to keep adding funds, which increases the buy.
// When you cancel the sale, you keep the crypto, thus HODL.
// I use this to build my positions that I short sale on Coinbase.com, so I need to cancel the deal after several candles so I can
// trade them.
// 3commas HODL DCA Bot article:
// https://3commas.io/blog/3commas-hodl-dca-bot-strategy
// This article includes the bot setup on 3Commas:
// Basicially you start the trade, then add funds to the trade, buying more crypto, then eventually cancel the deal.
// When you create the bot, you set the take profit really high, like 999%. Since it is unlikey to hit the value, it will never sell
// Credit to Irakli Gun as inspriation
// https://3commas.io/blog/3commas-hodl-dca-bot-strategy
strategy(title='HODL Simple v1', shorttitle="HODL'er",
calc_on_every_tick=false, calc_on_order_fills=true, process_orders_on_close =true,
format=format.price, precision=4, overlay=true, pyramiding=365,
currency=currency.USD, default_qty_value=10, default_qty_type=strategy.cash , initial_capital=3650,
commission_type=strategy.commission.percent, commission_value=0.1)
var startFirstDeal = true
var done = false
var dealCount = 0
var totalDealCount = 0
i_closeCount = input.int(defval=7,title="Close at Candle Count:",tooltip="How many buy candles to convert to a buy, otherwise it will remain open until end of timeframe.",group="Trade Range")
Start_date = input(defval=timestamp('2023-09-21 16:30'),title="Start Date/Time",group="Trade Range")
Finish_date = input(defval=timestamp('2023-09-21 23:05'),title="End Date/Time",group="Trade Range")
i_startBotAndDealMessage = input(defval="paste your message here",title="Message to start bot and deal", tooltip="Message for 'start bot and deal", group="3Commas",display=display.all)
i_addFundsMessage = input(defval="paste your message here",title="Message for deal add funds signal in the quote currency", tooltip="Using the quote (such as USD), to purchase more.",group="3Commas",display=display.all)
i_cancelTheDealMessage = input(defval="paste your message here",title="Message to cancel the deal",tooltip="If you paste only cancel the deal, the bot will wait until next candle to add funds.\nOption is to also paste the add funds message to also add a buy position.", group="3Commas",display=display.all)
i_cancelAndStopMessage = input(defval="paste your message here",title="Message to cancel all bot deals and stop the bot",tooltip="Paste 3c bot messagage for Cancel all and Stop Bot", group="3Commas",display=display.all)
time_cond = true
// check exit first
if not startFirstDeal and not done and dealCount < i_closeCount
strategy.close("Long")
alert(i_cancelAndStopMessage)
// log.info("Time expired, stopping bot, Total Deal Count:{0}",totalDealCount)
done := true
// check if add funds after first deal
else if time_cond and not startFirstDeal and dealCount < i_closeCount
strategy.entry("Long", strategy.long)
alert(i_addFundsMessage)
// log.info("Deal Count:{0}, totalDeals:{1}",dealCount,totalDealCount)
dealCount := dealCount + 1
totalDealCount := totalDealCount + 1
else if time_cond and startFirstDeal and dealCount <= i_closeCount
strategy.entry("Long", strategy.long)
// log.info("Start deal message, startFirst")
alert(i_startBotAndDealMessage)
startFirstDeal := false
else if time_cond and dealCount >= i_closeCount
strategy.close("Long")
alert(i_cancelTheDealMessage)
// log.info("Over Trades limit of {1}, resetting. Canceling. DealCount: {0}", dealCount, i_closeCount)
dealCount := 0
startFirstDeal := true
else if time_cond
log.error("case not covered")