Эта стратегия использует принцип многоуровневого пересечения линий скользящих средних для улавливания средне-долгосрочных тенденций и достижения устойчивой прибыли. Она использует три набора скользящих средних с разными параметрами и принимает торговые решения на основе их перекрестков. По сравнению с традиционными стратегиями с двумя наборами скользящих средних, эта многоуровневая стратегия пересечения скользящих средних может отфильтровать больше ложных сигналов и улучшить показатель выигрыша стратегии.
Стратегия использует три набора скользящих средних: быстрый скользящий средний MAshort, средний скоростной скользящий средний MAmid и медленный скользящий средний MAlong. MAshort имеет параметр 9, отвечает самым быстрым и используется для захвата краткосрочных сигналов; MAmid имеет параметр 50, имеет среднюю скорость и используется для подтверждения тренда; MAlong имеет параметр 100, отвечает самым медленным и используется для определения долгосрочного направления тренда.
Конкретная логика торговли стратегии заключается в следующем: когда линия средней скорости MAmid пересекает линию медленной скользящей средней MAlong, это указывает на то, что формируется подъемный импульс цены акции. В это время стратегия идет на длинный; когда быстрая скользящая средняя MAshort пересекает линию MAmid ниже средней скорости, это указывает на то, что произошло краткосрочное изменение тренда, и стратегия выходит из своей позиции в это время.
Самое большое преимущество этой стратегии заключается в том, что, объединив несколько скользящих средних, она может эффективно отфильтровать ложные сигналы и выбирать только относительно сильные прорывы во время средне-долгосрочного восходящего тренда для открытия длинных позиций.
Преимущества этой стратегии:
Эта стратегия также сопряжена со следующими рисками:
Для решения этих рисков мы будем расширять применение стратегии, контролируя максимальное снижение с помощью методов стоп-лосса.
Эта стратегия также может быть оптимизирована следующими способами:
Эта стратегия относится к типичной средне-долгосрочной количественной стратегии, которая, с предпосылкой контроля торговых рисков, непрерывно приносит прибыль путем сопоставления многоуровневых скользящих средних с средне-долгосрочными тенденциями. По сравнению с одним индикатором эта стратегия включает в себя несколько параметров и может эффективно идентифицировать сильные средне- и долгосрочные трендовые сигналы. Благодаря дальнейшей оптимизации эта стратегия может быть применена к большему количеству сортов и играет важную роль в количественной торговле.
/*backtest start: 2023-12-12 00:00:00 end: 2024-01-11 00:00:00 period: 1h basePeriod: 15m 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/ // © Coinrule //@version=4 strategy(shorttitle='Multi Moving Average Crossing',title='Multi Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true // create function "within window of time" //MA inputs and calculations inlong=input(100, title='MAlong') inmid=input(50, title='MAmid') inshort=input(9, title='MAfast') MAlong = sma(close, inlong) MAshort= sma(close, inshort) MAmid= sma(close, inmid) //Entry bullish = crossover(MAmid, MAlong) strategy.entry(id="long", long = true, when = bullish and window()) //Exit bearish = crossunder(MAshort, MAmid) strategy.close("long", when = bearish and window()) plot(MAshort, color=color.orange, linewidth=2) plot(MAmid, color=color.red, linewidth=2) plot(MAlong, color=color.blue, linewidth=2)