
Скромная стратегия владения - это стратегия регулярной покупки криптовалюты для увеличения стоимости активов путем повторной покупки и владения криптовалютой. Стратегия включает в себя три основных компонента: регулярные сигналы покупки, сигналы владения и сигналы выхода.
Основная логика этой стратегии заключается в следующем:
При запуске, отправка сигнала покупки, совершение первой покупки.
Каждый раз, когда вы набираете определенное количество, вы посылаете сигнал о покупке, чтобы купить больше базовых валют в котировке.
При достижении заданного значения отсчета, отправляется указание на вывод и ликвидация позиции.
Когда придет время выхода, пошлите сигнал выхода, остановите стратегию и ликвидируйте все позиции.
Эффекты средней стоимости и устойчивого увеличения владения могут быть достигнуты путем многократной покупки и владения криптовалютой.
Эта стратегия имеет следующие преимущества:
Можно регулярно покупать криптовалюты, снижая риски по времени покупки.
Средняя стоимость владения криптовалютой может быть снижена за счет повторных покупок.
Продолжая наращивать позиции, можно получить доход от роста портфеля.
Покупатель может настроить время покупки и выхода из сделки, чтобы автоматизировать работу.
Простая в использовании и легко осваиваемая.
Также существуют следующие риски:
Системные риски на криптовалютном рынке, возможные значительные колебания цен.
Неправильное время выхода может привести к тому, что вы не сможете вовремя остановить ущерб.
Неправильное управление деньгами также может привести к невыносимым потерям.
Эта стратегия может быть оптимизирована в следующих аспектах:
В зависимости от ситуации на рынке, динамично корректируются временные интервалы и суммы покупки.
Добавление стоп-сигнала, чтобы прекратить убытки при падении цены ниже уровня поддержки.
Вместе с другими факторами, определяющими рыночную ситуацию, выбирайте наилучшее время для входа и выхода.
Эта простая стратегия владения обеспечивает эффективность среднего уровня затрат и добавленной стоимости портфеля путем регулярной покупки и владения криптовалютой. Это относительно простая количественная стратегия при условии, что владелец знает, как ее использовать. Благодаря введению дополнительных оптимизаций эта стратегия может стать более интеллектуальной и адаптироваться к изменению рыночной среды.
/*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")