Ежемесячная стратегия отмены DCA

Автор:Чао Чжан, Дата: 2023-10-08 16:12:29
Тэги:

Обзор

Цель этой стратегии заключается в выявлении точек переворота краткосрочных нисходящих тенденций активов и инвестировании фиксированной суммы денег в эти точки. Это позволяет фиксировать средние стоимости долларов (DCA) по относительно более низким ценам после начала восходящих тенденций.

Принципы

Эта стратегия действует в месячный график. В каждом месяце есть 240 часовых бар, которые используются для определения сроков изменения тренда.

В частности, стратегия рассчитывает разницу между быстрой EMA и медленной EMA (EMA_CD), а также линию сигнала EMA_CD. Когда быстрая линия пересекает линию сигнала, она определяет конец краткосрочного нисходящего тренда и запускает сигнал покупки.

После сигнала покупки стратегия закрывает все позиции в конце месяца. Затем процесс повторяется в следующем месяце, с фиксированными периодическими покупками и удержаниями в течение одного месяца.

Это позволяет нам вычислить дно в конце краткосрочных спадов, и среднюю стоимость доллара в фиксированные интервалы.

Преимущества

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

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

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

Риски

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

Мы можем оптимизировать параметры EMA для улучшения идентификации, или комбинировать другие индикаторы, такие как RSI, чтобы подтвердить сигналы отмены.

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

Возможности для расширения

Стратегия может быть улучшена в следующих областях:

  1. Оптимизировать периоды EMA для поиска оптимальной комбинации параметров для выявления отклонений.

  2. Добавьте другие фильтры, такие как RSI, чтобы подтвердить сигналы обратного движения.

  3. Испытайте разные уровни остановки потери, чтобы найти оптимальную точку, которая максимально предотвращает потери, не получая випса.

  4. Подумайте о добавлении последующей остановки поверх остановки потери для динамической корректировки уровня остановки на основе цены.

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

Заключение

Общая идея этой стратегии проста и ясна - использование EMA для выявления краткосрочных обратных тенденций и средней стоимости доллара в точках обратного движения ежемесячно. Она может эффективно отфильтровывать нестабильные рынки и инвестировать по относительно низким ценам. Пространство оптимизации заключается в основном в настройке параметров и методах остановки потерь. В целом это отличная концепция стратегии для распределения основных активов, которая стоит дальнейшего тестирования и улучшения.


/*backtest
start: 2023-09-07 00:00:00
end: 2023-10-07 00:00:00
period: 1h
basePeriod: 15m
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/
// © BHD_Trade_Bot

// @version=5
// strategy(
//  shorttitle            = 'DCA After Downtrend',
//  title                 = 'DCA After Downtrend (by BHD_Trade_Bot)',
//  overlay               = true,
//  calc_on_every_tick    = true,
//  calc_on_order_fills   = true,
//  use_bar_magnifier     = true,
//  pyramiding            = 100,
//  initial_capital       = 0,
//  default_qty_type      = strategy.cash,
//  default_qty_value     = 1000,
//  commission_type       = strategy.commission.percent,
//  commission_value      = 0.1)



// Backtest Time Period
start_year   = input(title='Start year'   ,defval=2017)
start_month  = input(title='Start month'  ,defval=1)
start_day    = input(title='Start day'    ,defval=1)
start_time   = timestamp(start_year, start_month, start_day, 00, 00)

end_year     = input(title='end year'     ,defval=2050)
end_month    = input(title='end month'    ,defval=1)
end_day      = input(title='end day'      ,defval=1)
end_time     = timestamp(end_year, end_month, end_day, 23, 59)

window() => true



// EMA
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)

// EMA_CD
emacd = ema50 - ema200
emacd_signal = ta.ema(emacd, 20)
hist = emacd - emacd_signal

// Count n candles after x long entries
var int nPastCandles = 0
var int entryNumber = 0
nPastCandles := nPastCandles + 1



// ENTRY CONDITIONS

// 8 hours per day => 240 hours per month
entry_condition1 = nPastCandles > entryNumber * 240

// End of downtrend
entry_condition2 = ta.crossover(emacd, emacd_signal)

ENTRY_CONDITIONS = entry_condition1 and entry_condition2


if ENTRY_CONDITIONS and window()
    entryNumber := entryNumber + 1
    entryId = 'Long ' + str.tostring(entryNumber)
    strategy.entry(entryId, strategy.long)
    
    

// CLOSE CONDITIONS

// Last bar
CLOSE_CONDITIONS = barstate.islast

if CLOSE_CONDITIONS
    strategy.close_all()


    
// Draw
plot(ema50, color=color.orange, linewidth=3)
plot(ema200, color=entry_condition1 ? color.green : color.red, linewidth=3)


Больше