Оригинальная стратегия следования за трендом, основанная на скользящих средних


Дата создания: 2023-11-23 15:54:37 Последнее изменение: 2023-11-23 15:54:37
Копировать: 0 Количество просмотров: 581
1
Подписаться
1617
Подписчики

Оригинальная стратегия следования за трендом, основанная на скользящих средних

Обзор

Эта стратегия основана на физической части свечи, в сочетании с показателями EMA, чтобы определить направление рыночной тенденции, чтобы реализовать эффект ORIGINAL PRIMITIVE TREND TRACKING. Когда появляется большое солнечное сияние, делайте больше, когда появляется большое теневое сияние, делайте пустое, чтобы отслеживать рыночную тенденцию.

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

  1. Вычислите среднюю длину тела свечи на последних 30 линиях K
  2. Делайте больше, когда последняя K-линия является солнечной линией, а длина объекта больше sbody/2
  3. Когда уже сделано множество, если последняя K-линия является нижняя, длина сущности больше sbody/2, и текущая позиция является выигрышной, то равное множество позиций
  4. Пустота, когда новейшая K-линия является отрицательной, а длина объекта больше sbody/2
  5. При открытом положении, если последняя K-линия является солнечной линией, длина сущности больше sbody/2, и текущая позиция является прибыльной, то пустая позиция

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

Эта стратегия имеет следующие преимущества:

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

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

Однако есть и другие риски:

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

Риски можно снизить следующими способами:

  1. В сочетании с другими показателями фильтрует сигналы
  2. Настройка стратегии стоп-лосса
  3. Оптимизация параметров, контроль частоты торгов

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих аспектах:

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

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

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

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

//@version=3
strategy(title = "Noro's Primitive Strategy v1.0", shorttitle = "Primitive str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 10)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usebody = input(true, defval = true, title = "Use body")
useus = input(true, defval = true, title = "Use UUP")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(01, defval = 01, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Logic
body = abs(close - open)
sbody = ema(body, 30) / 2
bar = close > open ? 1 : close < open ? -1 : 0

//Signals
up = bar == -1 and (body > sbody or usebody == false) and (close < strategy.position_avg_price or strategy.position_size <= 0 or useus == false)
dn = bar == 1 and (body > sbody or usebody == false) and (close > strategy.position_avg_price or strategy.position_size >= 0 or useus == false)

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    
if time > timestamp(toyear, tomonth, today, 00, 00)
    strategy.close_all()