Эта стратегия использует две линии EVWMA с разными периодами для генерации кроссоверов и получения сигналов покупки и продажи. Когда линия короткого периода пересекает линию длинного периода, она генерирует сигнал покупки. Когда линия короткого периода пересекает ниже линии длинного периода, она генерирует сигнал продажи.
Стратегия определяет изменения тренда путем расчета и перекрестки двух линий EVWMA с разными периодами.
В частности, он сначала рассчитывает две линии EVWMA:
Линия краткосрочного периода m1, с длиной периода1, по умолчанию до 5
Долгосрочная линия 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 - это общий объем периода, объем - объем текущего периода, а объем_цена - оборот текущего периода.
Преимущества этой стратегии включают:
EVWMA быстрее реагирует на изменения цен и улучшает возможности получения прибыли
Пересечение двойных линий EVWMA определяет поворотные моменты своевременно
Простая логика и легко внедряемая
Продолжительность периода может быть адаптирована к различным условиям рынка
Не требуется сложной оптимизации параметров и легко для живой торговли
Эта стратегия также сопряжена с некоторыми рисками:
Кроссоверы могут генерировать чрезмерные недействительные сигналы без фильтрации рыночного шума
Трудно определить точки переворота тренда и риски отсутствия переворотов
Нет стоп-лосса или получения прибыли, невозможно эффективно контролировать риски
Недостаточная оптимизация параметров приводит к неправильному установке периода
Некоторые направления для улучшения стратегии:
Добавьте стоп-лосс и принимайте прибыль для строгого контроля рисков
Оптимизировать длины периодов для поиска наилучших параметров
Добавить фильтр объема для уменьшения недействительных сделок
Комбинировать с индикаторами обратного движения, чтобы избежать пропущенных обратных движений
Динамическая оптимизация параметров на основе изменений рынка
Различить бычьи и медвежьи рынки и использовать различные параметры
Внедрение моделей машинного обучения для определения сроков торговли на основе больших данных
В целом, эта кросс-стратегия 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")