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

Автор:Чао Чжан, Дата: 2023-09-18 22:07:14
Тэги:

Обзор

Эта стратегия использует две линии EVWMA с разными периодами для генерации кроссоверов и получения сигналов покупки и продажи. Когда линия короткого периода пересекает линию длинного периода, она генерирует сигнал покупки. Когда линия короткого периода пересекает ниже линии длинного периода, она генерирует сигнал продажи.

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

Стратегия определяет изменения тренда путем расчета и перекрестки двух линий EVWMA с разными периодами.

В частности, он сначала рассчитывает две линии EVWMA:

  1. Линия краткосрочного периода m1, с длиной периода1, по умолчанию до 5

  2. Долгосрочная линия m2, с длиной периода2, по умолчанию до 40

Затем он использует функции перекрестки и перекрестки для определения ситуаций перекрестки между m1 и m2:

  • Если m1 пересекает м2, он генерирует сигнал покупки и выполняет длинную операцию

  • Если м1 пересекает ниже м2, он генерирует сигнал продажи и выполняет короткую операцию.

Следует отметить, что EVWMA придает большее значение последним данным по сравнению с простой скользящей средней.

data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume_price/nb_floating_shares)

где nz ((data[1]) - это значение EVWMA предыдущего периода, nb_floating_shares - это общий объем периода, объем - объем текущего периода, а объем_цена - оборот текущего периода.

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

Преимущества этой стратегии включают:

  1. EVWMA быстрее реагирует на изменения цен и улучшает возможности получения прибыли

  2. Пересечение двойных линий EVWMA определяет поворотные моменты своевременно

  3. Простая логика и легко внедряемая

  4. Продолжительность периода может быть адаптирована к различным условиям рынка

  5. Не требуется сложной оптимизации параметров и легко для живой торговли

Риски и решения

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

  1. Кроссоверы могут генерировать чрезмерные недействительные сигналы без фильтрации рыночного шума

    • Решение: комбинировать с громкостью или другими индикаторами для фильтрации сигналов
  2. Трудно определить точки переворота тренда и риски отсутствия переворотов

    • Решение: скорректировать параметры периода или добавить другие показатели обратного движения
  3. Нет стоп-лосса или получения прибыли, невозможно эффективно контролировать риски

    • Решение: установить соответствующие коэффициенты стоп-лосса и прибыли на основе исторических данных и волатильности
  4. Недостаточная оптимизация параметров приводит к неправильному установке периода

    • Решение: оптимизировать параметры путем обратного тестирования и выбрать правильные длины

Направления к улучшению

Некоторые направления для улучшения стратегии:

  1. Добавьте стоп-лосс и принимайте прибыль для строгого контроля рисков

  2. Оптимизировать длины периодов для поиска наилучших параметров

  3. Добавить фильтр объема для уменьшения недействительных сделок

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

  5. Динамическая оптимизация параметров на основе изменений рынка

  6. Различить бычьи и медвежьи рынки и использовать различные параметры

  7. Внедрение моделей машинного обучения для определения сроков торговли на основе больших данных

Заключение

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


/*backtest
start: 2023-08-18 00:00:00
end: 2023-08-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy("Elastic Volume Weighted Moving Average Cross Strategy", shorttitle="EVWMA Cross", overlay=true)
length1=input(5, title="EVWMA Short")
length2=input(40, title="EVWMA Long")

nbfs1=sum(volume, length1)
nbfs2=sum(volume, length2)

medianSrc=close

calc_evwma(price, length, nb_floating_shares) => 
    data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume*price/nb_floating_shares)
    data
    

m1=calc_evwma(medianSrc, length1, nbfs1)
m2=calc_evwma(medianSrc, length2, nbfs2)

if (crossover(m1, m2))
    strategy.entry("MA2CrossLE", strategy.long, comment="MA2CrossLE")

if (crossunder(m1, m2))
    strategy.entry("MA2CrossSE", strategy.short, comment="MA2CrossSE")

p1=plot(m1,color=orange,linewidth=2, title="evwma")
p2=plot(m2,color=orange,linewidth=2, title="evwma")

Больше