В конце месяца прорыв на 200-дневной стратегии скользящей средней

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

img

Обзор

Эта стратегия основана на ценовом прорыве 200-дневной скользящей средней в конце месяца, чтобы определить направление тренда цен на акции.

Принцип стратегии

  1. Использовать 200-дневную простую скользящую среднюю dma200 в качестве индикатора для оценки тенденции цен
  2. В последний торговый день каждого месяца оценить, является ли цена закрытия выше dma200
  3. Если цена закрытия превышает 200-дневную МР, устанавливается полная длинная позиция на открытии следующего торгового дня.
  4. Если цена закрытия превышает 200-дневную МР, очистить все позиции в начале следующего торгового дня.
  5. Это может достичь эффекта следующего тренда, устанавливая позиции, когда цены на акции вступают в восходящую тенденцию и избегая нисходящих тенденций.

Анализ преимуществ

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

Анализ рисков

  1. 200-дневный MA может быть недостаточно чувствительным для некоторых акций, чтобы вовремя отслеживать изменения цен
  2. Для занятия позиций в месяц существует только одна торговая точка, которая может упустить возможности для подъема/снижения.
  3. Стратегия может не дать правильной оценки, когда общая тенденция рынка неопределена
  4. Чтобы снизить эти риски, следует объединить другие показатели

Руководство по оптимизации

  1. Подумайте об увеличении торговых точек в начале или середине месяца для улучшения частоты стратегии
  2. Добавьте такие индикаторы, как полосы Боллинджера, чтобы оценить колебания цен и избежать неправильных сделок.
  3. Оценить эффекты приспособления различных параметров МД на различные запасы для поиска оптимальных комбинаций параметров
  4. Создать механизмы динамического размещения позиций для активного прекращения потерь при слишком высоком снижении.

Резюме

Стратегия относительно проста и практична в целом, эффективно отражая средне- и долгосрочные ценовые тенденции акций через выход в конце месяца из 200-дневной МА, с относительно небольшим снижением и рисками.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-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/
// © muscleriot
//200 dma
//2000-2016 backtested 
//1 signal per month only at end of month
//If > 200DMA enter long
//If < 200DMA goto cash
//results: 318% drawdown 17% vs 125% with 55% drawdown for buy and hold
//@version=5
strategy("200DMA last DOM - ajh", overlay =true,default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Use 100% of  equity always

dma200 = ta.sma(close, 200)
plot(dma200, color=color.red, linewidth = 2)
//e =dayofmonth(time)
// backtesting date range
from_day = input.int(defval=1, title="From Day", minval=1, maxval=31)
from_month = input.int(defval=1, title="From Month", minval=1, maxval=12)
from_year = input.int(defval=2018, title="From Year", minval=1900)

to_day = input.int(defval=1, title="To Day", minval=1, maxval=31)
to_month = input.int(defval=1, title="To Month", minval=1, maxval=12)
to_year = input.int(defval=9999, title="To Year", minval=1900)

time_cond = time > timestamp(from_year, from_month, from_day, 00, 00) and 
   time < timestamp(to_year, to_month, to_day, 23, 59)



xLong = dayofmonth(time) == 30 and (close > dma200) ? true : na
xSell = dayofmonth(time) == 30 and (close < dma200) ? true : na
plotchar(xLong, "long","L", color=color.green)    
plotchar(xSell, "Sell","S", color=color.red)    
if (xLong == true) and time_cond
    strategy.entry("long", strategy.long)
if (xSell == true) and time_cond
    strategy.close("long")

Больше