На основе стратегии пересечения двойной скользящей средней

EMA SMA DEMA TEMA WMA VWMA
Дата создания: 2024-05-14 15:37:54 Последнее изменение: 2024-05-14 15:37:54
Копировать: 3 Количество просмотров: 697
1
Подписаться
1617
Подписчики

На основе стратегии пересечения двойной скользящей средней

Обзор

Двойная пересекающаяся средняя стратегия - это распространенная количественная торговая стратегия. Она использует как сигнал к покупке или продаже движущиеся средние двух различных периодов, покупая при пересечении долгосрочной средней на краткосрочной средней, и продавая при пересечении долгосрочной средней на краткосрочной средней. Код стратегии поддерживает несколько распространенных типов движущихся средних, таких как простое движущееся среднее (SMA), индексированное движущееся среднее (EMA), бинарное движущееся среднее (DEMA), треходексированное движущееся среднее (TEMA), вознагражденное движущееся среднее (WMA) и сводное вознагражденное движущееся среднее (VMA), и может гибко устанавливать краткосрочные средние и долгосрочные средние циклы.

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

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

Стратегические преимущества

  1. Простая и простая в использовании: Двойная стратегия пересечения скользящих средних является простой, понятной и легко реализуемой количественной торговой стратегией, подходящей для обучения и использования новичками.

  2. Широкая применимость: Стратегия может быть применена на различных финансовых рынках и торговых показателях, таких как акции, фьючерсы, иностранные валюты, криптовалюты и т. Д.

  3. Гибкость параметров: код стратегии поддерживает несколько распространенных типов скользящих средних и типов цен. Пользователи могут гибко настраивать параметры в соответствии со своими потребностями, чтобы адаптироваться к различным рыночным условиям и стилям торговли.

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

Стратегический риск

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

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

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

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

  1. Внедрение фильтрации тренда: на основе равнолинейного перекрестного сигнала можно проводить фильтрацию тренда в сочетании с другими трендовыми индикаторами, такими как MACD, ADX и т. Д., торговать только при четкой тенденции и избегать частых торгов на волатильных рынках.

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

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

  4. Многофакторное сочетание: сочетание двух пересекающихся средних сигналов с другими эффективными количественными факторами (такими как динамика, стоимость, объем сделок и т. Д.), Чтобы сформировать более стабильную и эффективную многофакторную стратегию.

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

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

Исходный код стратегии
/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SustainableInvestment

//@version=5
strategy("Moving average strategy (이동평균선 전략)", overlay=true)

// === INPUTS ===

basisType   = input.string(defval = "EMA", title = "MA Type: SMA, EMA, DEMA, TEMA, WMA, VWMA ",options=["SMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA"])
shortLen    = input.int(defval = 1, title = "Short MA Period", minval = 1)
longLen    = input.int(defval = 20, title = "Long MA Period", minval = 1)
price       = input.string(defval = "Typical", title = "Price Type : Close, High, Open, Low, Typical, Center ",options=["Close", "High", "Open", "Low", "Typical", "Center"])

// === BASE FUNCTIONS ===
// 가격 종류 설정
priceType(price) =>
    Typical = (high+low+close)/3
    Center  = (high+low) / 2
    price=="High"?high : price=="Low"?low : price=="Open"?open : price=="Typical"?Typical : price=="Center"?Center : close

// 이동평균선 종류 설정
variant(type, src, len) =>
    v1 = ta.sma(src, len)                                                  // Simple
    v2 = ta.ema(src, len)                                                  // Exponential
    v3 = 2 * v2 - ta.ema(v2, len)                                          // Double Exponential
    v4 = 3 * (v2 - ta.ema(v2, len)) + ta.ema(ta.ema(v2, len), len)         // Triple Exponential
    v5 = ta.wma(src, len)                                                  // Weighted
    v6 = ta.vwma(src, len)                                                 // Volume Weighted
    
    type=="EMA"?v2 : type=="DEMA"?v3 : type=="TEMA"?v4 : type=="WMA"?v5 : type=="VWMA"?v6 : v1

longCondition = ta.crossover(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen))
if (longCondition)
    strategy.entry("Long Entry", strategy.long)

exitCondition = ta.crossunder(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen))
if (exitCondition)
    strategy.close("Long Entry","Long Exit")