Стратегия бокового прорыва с использованием одиночной скользящей средней


Дата создания: 2024-02-02 11:19:19 Последнее изменение: 2024-02-02 11:19:19
Копировать: 0 Количество просмотров: 537
1
Подписаться
1617
Подписчики

Стратегия бокового прорыва с использованием одиночной скользящей средней

Обзор

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

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

Сначала стратегия рассчитывает динамические изменения ценыmommЗатем разделить на положительное движение.m1и отрицательная динамикаm2Затем вычислить сумму положительных и отрицательных динамических величин за определенный период.sm1иsm2И в конце - Чанде.chandeMOУказатель с 0 как центральной оси, когда показатель больше 0, то силы повышения больше силы снижения, а меньше 0, то наоборот.

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

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

  • Эта стратегия позволяет уловить переломные моменты, когда цены переходят от падения к скорректировке и затем к повышению, чтобы достичь низких покупок и высоких продаж.
  • Индекс динамики Chande учитывает скорость и интенсивность изменения цен и является хорошим инструментом для определения тенденций.
  • Стратегия проста и легко реализуема.

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

  • Динамический индикатор Chande чувствителен к параметрам, различные параметры настройки цикла могут привести к значительным различиям в торговых сигналах и результатах.
  • В некоторых странах, например, в Китае, в США, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае.
  • Стратегия, не учитывающая остановку убытков, может привести к увеличению убытков.

Можно установить динамическую линию покупки и продажи, или в сочетании с другими индикаторами фильтруют сигналы. Также следует установить стоп-лосс, чтобы контролировать риск.

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

  • Попробуйте параметры с разными циклами для наилучшего эффекта
  • Настройка динамической линии покупок и продаж
  • Фильтрация сигналов в сочетании с другими показателями
  • Добавление риска стоп-логического контроля

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

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

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

//@version=4

//* Backtesting Period Selector | Component *//
//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//
testStartYear = input(2021, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(10, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(999999, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(26, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true
/////////////// END - Backtesting Period Selector | Component ///////////////
strategy(title="Chande Momentum Strat", shorttitle="ChandeMO Strat", format=format.price, precision=2)
length = input(9, minval=1)
src = input(close, "Price", type = input.source)
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, length)
sm2 = sum(m2, length)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)
plot(chandeMO, "Chande MO", color=color.blue)
hline(0, color=#C0C0C0, linestyle=hline.style_dashed, title="Zero Line")
buyline= input(-80)
sellline= input(80)
hline(buyline, color=color.gray)
hline(sellline, color=color.gray)

if testPeriod()
    if crossover(chandeMO, buyline)
        strategy.entry("Long", strategy.long, alert_message="a=ABCD b=buy e=binanceus q=1.2 s=uniusd")
    //    strategy.exit(id="Long Stop Loss", stop=strategy.position_avg_price*0.8) //20% stop loss 
        
    if crossunder(chandeMO, sellline)
        strategy.entry("Short", strategy.short, alert_message="a=ABCD b=sell e=binanceus q=1.2 s=uniusd")
    //    strategy.exit(id="Short Stop Loss", stop=strategy.position_avg_price*1.2) //20% stop loss

//      remember to alert as    {{strategy.order.alert_message}}