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

Автор:Чао Чжан, Дата: 2023-11-28 14:11:33
Тэги:

img

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

Обзор

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

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

Эта стратегия основана на индикаторе взвешенной скользящей средней. Он сначала рассчитывает WMA определенной длины, а затем отслеживает, выходит ли цена из WMA на определенный диапазон. Когда расстояние до прорыва достигает порога, он настраивает стрелку и открывает позиции.

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

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

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

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

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

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

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

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

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

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

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

Резюме

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


/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-22 08:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="WMA Breakout",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02)
len = input(20, minval=1, title="Length")
src = input(close, title="Source")
out = wma(src, len)
price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001)
price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001)
trail = input(true, "Trailing Stop(checked), Market stop(unchecked)")
stop = input(10, "Stop (in ticks)", step=1)
limit = input(5, "Limit Out", step=1)
//size = input(1, "Limit Position Size (pyramiding)", minval=1)
timec = input(true, "Limit Time of Day (Buying Side)")


//Time Session
sess = input("1600-0500", "Start/Stop trades (Est time)")
t = time(timeframe.period, sess)
//plots
plot(wma(src,len))
z = if low+price_drop<out
    (out-low)
plotarrow(z, colorup=red)

a = if high-price_climb>out
    (high-out)
plotarrow(a, colorup=lime)
av=wma(src,len)

//Orders
if(timec)
    strategy.entry("Enterlong", long=true, when=z and t>1)
else
    strategy.entry("Enterlong", long=true, when=z)
if(trail)
    strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Enterlong", profit=limit, loss = stop )
    
if(timec)
    strategy.entry("Entershort", long=false, when=a and t>1)
else
    strategy.entry("Entershort", long=false, when=a)
if(trail)
    strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Entershort", profit=limit, loss = stop )
  



Больше