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


Дата создания: 2024-01-12 10:56:57 Последнее изменение: 2024-01-12 10:56:57
Копировать: 0 Количество просмотров: 502
1
Подписаться
1617
Подписчики

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

Обзор

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

Стратегический принцип

Эта стратегия использует быстрый период, такой как 60-дневная простая скользящая средняя, и медленный период, такой как 200-дневная простая скользящая средняя. Быстрая скользящая средняя реагирует на изменения цены быстрее, отражая недавние ценовые тенденции; медленная скользящая средняя реагирует на изменения цены медленнее, отражая среднесрочные тенденции.

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

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

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

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

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

Анализ стратегических рисков

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

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

Направление оптимизации стратегии

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

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

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

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

  4. С учетом затрат на транзакции, таких как комиссионные, добавляется модуль оценки затрат, что делает моделирование более реалистичным.

  5. Для различных видов и их особенностей можно найти оптимальные комбинации параметров.

  6. Улучшение идентификации локальных признаков, помогающих определить переломные моменты тренда, повышение понимания времени открытия и закрытия позиций.

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 10m
basePeriod: 1m
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/
// © thebearfib
//
//@version=5
//

strategy("x-over 150d_200d_sma - Free", overlay = true)

repaint = input.bool(defval = false, title = "[RePaint] Uncheck to see real time results") //when you deselect it - it shows what would have happened in real time while trading the system
srcmc   = request.security(syminfo.tickerid, 'D', open, lookahead= repaint ? barmerge.lookahead_on : barmerge.lookahead_off, gaps=barmerge.gaps_off)

fast_length         = input(title="Fast Length", defval=60)
slow_length         = input(title="Slow Length", defval=275)

_fast               = ta.sma(srcmc,  fast_length)
_slow               = ta.sma(srcmc,  slow_length)

plot(_fast, 
  title="Fast SMA", 
  color=color.red,
  linewidth = 1) 

plot(_slow, 
  title="Slow SMA", 
  color=color.white,
  linewidth = 3)
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Calculating  —————————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//
longProfitPerc      = input.float(title="Long Take Profit (%)", minval=0.01, step=1.0, defval=42) * .01
longStopPerc        = input.float(title="Long Stop (%)",        minval=0.01, step=1.0, defval=13)  * .01
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Stop Conditions   ————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
longExitPrice  = strategy.opentrades > 0 ? strategy.position_avg_price * (1 + longProfitPerc) : srcmc *  (1 + longProfitPerc)
longStopPrice = strategy.opentrades  > 0 ? strategy.position_avg_price * (1 - longStopPerc)   : srcmc *  (1 - longStopPerc)
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Long Conditions   ————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
longCondition   = srcmc > _slow and  ta.crossover(_fast, _slow)
closeCondition  =  ta.crossover(srcmc, _slow)  

if (longCondition)
    strategy.entry("Entry (long)", strategy.long, comment="→ 𝗟𝗴 𝗘𝗻𝘁𝗿𝘆")

if (closeCondition)
    strategy.close("Entry (long)", comment=" 𝗟𝗴 𝗘𝘅𝗶𝘁 ←")

if (strategy.position_size > 0)
    strategy.exit(id="XL", limit=longExitPrice, stop = longStopPrice, comment_profit = "Take Profit", comment_loss = "Stop Loss")
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// —————————————————————————————————  Never the End Just the beginning    —————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//