Стратегия истощения импульса

Автор:Чао Чжан, Дата: 2023-11-16 17:54:00
Тэги:

img

Обзор

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

Логика стратегии

Основными показателями этой стратегии являются переменная средняя и переменная переменная. Переменная - это мера колебаний цен, рассчитанная на основе близких, высоких и низких цен. Специфическим расчетом является: (близкий + высокий + низкий переменный средний переменной) / переменная средняя переменной. Переменная переменная - это переменная средняя переменной. Когда переменная превышает переменную переменную, это указывает на консолидацию на рынке и возможное формирование новой тенденции. Когда переменная превышает переменную переменную переменную, это сигнализирует об обратном тренде, и мы должны рассмотреть возможность получения прибыли.

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

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

Конкретная логика входа и выхода:

Сигнал покупки: пересечение исчерпания выше скользящей средней исчерпания и 50-дневный MA выше 150-дневного MA; или RSI ниже 30.

Краткосрочный стоп-лосс: пересечение исчерпания ниже скользящей средней исчерпания; или пересечение MACD ниже линии сигнала.

Средне-длинный стоп-лосс: 50-дневный MA пересекающий 150-дневный MA; или 150-дневный MA пересекающий 300-дневный MA.

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

Эта стратегия объединяет в себе множество показателей для определения тенденции истощения и контроля рисков.

  1. Индикатор истощения может эффективно идентифицировать консолидацию и изменение тенденции.

  2. Использование скользящих средних за несколько временных рамок для определения тенденции позволяет избежать заблуждения от краткосрочного рыночного шума.

  3. MACD помогает подтвердить сигналы покупки и продажи, улучшая эффективность стратегии.

  4. RSI играет роль покупки низкого и продажи высокого, покупки в чрезвычайно перепроданных ситуациях.

  5. Ясная стратегия получения прибыли и остановки потерь может эффективно контролировать риск каждой сделки.

Риски стратегии

Эта стратегия также сопряжена с некоторыми рисками:

  1. Опираясь на несколько индикаторов, неправильное настройка параметров может привести к неправильным торговым сигналам.

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

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

  4. Когда общий рынок находится в диапазоне, индикаторы могут не работать.

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

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

  1. Испытывать различные комбинации параметров, чтобы найти оптимальные параметры и уменьшить ложные сигналы.

  2. Включить индикаторы волатильности, такие как ATR, для динамической корректировки диапазона стоп-лосса в соответствии с волатильностью рынка.

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

  4. Включайте графики, такие как линии тренда, линии поддержки, чтобы улучшить эффективность стратегии.

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

Заключение

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


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 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/
// © spiritualhealer117

//@version=4

strategy("Infiten Slope Strategy", overlay=false,calc_on_every_tick = true, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
// //TIME RESTRICT FOR BACKTESTING {
// inDateRange = (time >= timestamp(syminfo.timezone, 2003,
//          1, 1, 0, 0)) and
//      (time < timestamp(syminfo.timezone, 2021, 5, 25, 0, 0))
// //}

//OPTIMAL PARAMETERS {
daysback = 30
volumesens = 1.618
//}
//Calculating Exhaustion and Exhaustion Moving Average {
clh = close+low+high
exhaustion = (clh-sma(clh,daysback))/sma(clh,daysback)
exhaustionSma = sma(exhaustion,daysback)
//}
//Long Term Moving Averages for sell signals {
red = sma(close,300)
white = sma(close,150)
blue = sma(close,50)

plot(red,color=color.red)
plot(white,color=color.white)
plot(blue,color=color.blue)
//}
//MACD Calculation {
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false)
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//}
//SIGMOID Bottom {
timeAdjust = 300/sma(close,500)
//}
//RSI bottom {
len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(close), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//}

//Entry and exit conditions {
//Sell conditions
bigVolume = sma(volume,30)*volumesens
sellcond1 = crossunder(exhaustion,exhaustionSma) and volume > bigVolume
sellcond2 = crossunder(macd,signal) and volume > bigVolume
midtermsellcond1 = crossunder(blue,white)
longtermsellcond1 = white < red

//Buy conditions
buycond = crossover(exhaustion,exhaustionSma) and not longtermsellcond1
buycond2 = rsi < 30
buycond3 = crossover(blue,white) and longtermsellcond1
//}

//Backtest Run Buy/Sell Commands {
strategy.entry("buycond",true, when=buycond and bigVolume)
strategy.entry("buycond2",true, when=buycond2 and bigVolume)

strategy.close_all(when=sellcond1,comment="short term sell signal 1")
strategy.close_all(when=midtermsellcond1, comment="mid term sell signal 1")
strategy.close_all(when=longtermsellcond1, comment="long term sell signal 1")
strategy.close_all(when=sellcond2, comment="short term sell signal 2")
plot(strategy.position_size)

//Sell on last tested day (only for data collection)
//strategy.close_all(when=not inDateRange)
//}



Больше