Цены пересекают скользящую среднюю тенденцию в соответствии со стратегией

Автор:Чао Чжан, Дата: 2024-01-26 15:18:29
Тэги:

img

Обзор

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

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

Стратегия рассчитывает скользящую среднюю длину N на основе цены закрытия. Типичные типы скользящих средних включают простую скользящую среднюю (SMA), экспоненциальную скользящую среднюю (EMA), взвешенную скользящую среднюю (WMA) и т. д. Затем устанавливается уровень терпимости, например 5%, и вычисляются верхняя полоса (1,05 раз скользящая средняя) и нижняя полоса (0,95 раз скользящая средняя). Когда цена закрытия пересекает верхнюю полосу, генерируется сигнал покупки. Когда цена закрытия пересекает нижнюю полосу, генерируется сигнал продажи. Это помогает отфильтровать некоторые ложные прорывы.

Преимущества

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

Риски

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

Руководство по оптимизации

  • Оптимизировать параметры типа и длины скользящей средней
  • Испытать различные параметры допустимости
  • Добавление других показателей к фильтрующим сигналам
  • Используйте стратегии размещения позиций

Заключение

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


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 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/
// © RafaelPiccolo

//@version=4
strategy("Price X MA Cross", overlay=true)

typ = input("HMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"])
len = input(100, minval=1, title="Length")
src = input(close, "Source", type=input.source)
tol = input(0, minval=0, title="Tolerance (%)", type=input.float)
shortOnly = input(false, "Short only")

tema(src, len)=>
    ema1 = ema(src, len)
    ema2 = ema(ema1, len)
    ema3 = ema(ema2, len)
    return = 3 * (ema1 - ema2) + ema3

getMAPoint(type, len, src)=>
    return = type == "SMA" ? sma(src, len) : type == "EMA" ? ema(src, len) : type == "WMA" ? wma(src, len) : type == "HMA" ? hma(src, len) : type == "VWMA" ? vwma(src, len) : type == "RMA" ? rma(src, len) : tema(src, len)

ma = getMAPoint(typ, len, src)
upperTol = ma * (1 + tol/100)
lowerTol = ma * (1 - tol/100)

longCondition = crossover(close, upperTol)
shortCondition = crossunder(close, lowerTol)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longCondition)
    if (shortOnly)
        strategy.close("Short")
    else
        strategy.entry("Long", strategy.long)

plot(ma, "Moving Average", close > ma ? color.green : color.red, linewidth = 2)
t1 = plot(tol > 0 ? upperTol : na, transp = 70)
t2 = plot(tol > 0 ? lowerTol : na, transp = 70)
fill(t1, t2, color = tol > 0 ? color.blue : na)


Больше