Стратегия фиксированных инвестиций DCA с проскальзыванием стоп-лосса


Дата создания: 2024-02-23 14:01:20 Последнее изменение: 2024-02-23 14:01:20
Копировать: 0 Количество просмотров: 926
1
Подписаться
1617
Подписчики

Стратегия фиксированных инвестиций DCA с проскальзыванием стоп-лосса

Обзор

Эта стратегия сочетает в себе доллар-стоимость-среднее ((Dollar Cost Averaging, DCA) с функцией стоп-слизинг ((Trailing Take Profit) на биржевой платформе. Она устанавливает 1% отклонение в цене для покупки и нацелена на получение прибыли в размере 0,5% от каждой продажи. Эта небольшая прибыль обоснована тем, что обеспечивает стабильную работу торгового робота, избегая риска оказаться в ловушке в период замедления рынка.

Стратегический принцип

Сначала в стратегии устанавливаются такие параметры, как стоп-стоп для скольжения, максимальное количество заказов DCA, процент отклонения от цены. Затем она отслеживает такие параметры, как цена последней покупки, количество покупок, начальная цена покупки и стоп-стоп для скольжения. В логике покупки, если текущая цена ниже цены последней покупки (%) и количество заказов DCA не достигло максимального количества, появляется сигнал покупки и записывается текущая цена покупки. В логике продажи, если текущая цена выше цены последней покупки (%) + стоп-стоп для скольжения.

Стратегические преимущества

  1. В сочетании с фиксированным вложением DCA и скользящим стоп-потерей, обеспечивается как средняя стоимость регулярных фиксированных покупок, так и блокировка части прибыли, чтобы избежать ее отзыва.

  2. Механизм остановки скольжения является гибким и позволяет корректировать остановку и соотношение скольжения в зависимости от рыночных условий, чтобы снизить риск.

  3. Отзывные показатели превосходят традиционные стратегии покупки и владения, стабильная годовая доходность, подходящая для долгосрочных инвестиций.

  4. Простая реализация, гибкая настройка параметров, легко применяемая на основных биржевых платформах.

Стратегический риск

  1. Покупки DCA ограничены, и убытки могут увеличиться в случае длительного падения.

  2. Неправильная установка стоп-лосса может привести к частому блокированию прибыли или увеличению убытков.

  3. Стоимость сделки оказывает определенное влияние на прибыль. Высокая стоп-стоп настройка увеличивает количество сделок.

  4. Недостаток первоначального капитала может привести к недостаточному количеству покупок.

Оптимизация стратегии

  1. Можно установить плавающий скользящий стоп-убыток, который постепенно уменьшается, когда прибыль достигает определенной пропорции.

  2. В сочетании с показателями средней линии, увеличить покупку доли вблизи критической поддержки.

  3. Присоединение к механизму ребалансировки с корректировкой суммы каждой покупки DCA в соответствии с общим количеством активов.

  4. Оптимизация параметров, тестирование доходности при различных периодах хранения позиций.

Подвести итог

Стратегия объединяет методы фиксированного инвестирования DCA и стоп-стоп с скользящими потерями, обеспечивает количественную торговлю с долгосрочной стабильной прибылью. Отзывчивость хороша и подходит для инвесторов, стремящихся к устойчивому росту.

Исходный код стратегии
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Stavolt

//@version=5
strategy("DCA Strategy with Trailing Take Profit", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Correctly using input to define user-configurable parameters
takeProfitPercent = input.float(0.6, title="Take Profit (%)", minval=0.1, maxval=5)
trailingPercent = input.float(0.1, title="Trailing Stop (%)", minval=0.05, maxval=1)
maxDCAOrders = input.int(10, title="Max DCA Orders", minval=1, maxval=20)
priceDeviationPercent = input.float(1.0, title="Price Deviation (%)", minval=0.5, maxval=5)

var float lastBuyPrice = na
var int buyCount = 0
var float initialBuyPrice = na
var float trailingStopPrice = na

// Strategy logic here...
// Note: The detailed logic for buying and selling based on the DCA strategy
// needs to be tailored to your specific requirements and tested for correctness.

if (buyCount < maxDCAOrders)
    if (na(lastBuyPrice) or close < lastBuyPrice * (1 - priceDeviationPercent / 100))
        strategy.entry("Buy", strategy.long)
        lastBuyPrice := close
        buyCount += 1
        if (na(initialBuyPrice))
            initialBuyPrice := close

if (not na(lastBuyPrice) and close > lastBuyPrice * (1 + takeProfitPercent / 100))
    if (na(trailingStopPrice) or close > trailingStopPrice)
        trailingStopPrice := close * (1 - trailingPercent / 100)
    if (close < trailingStopPrice)
        strategy.close("Buy")
        lastBuyPrice := na
        trailingStopPrice := na
        buyCount := 0
        initialBuyPrice := na