Стратегия торговли зерном с перемещаемым средним балансом

Автор:Чао Чжан, Дата: 2023-11-13 17:59:42
Тэги:

img

Обзор

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

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

Стратегия сначала определяет два параметра, регулируемых пользователем: активный скользящий средний период len1 и базовый скользящий средний период len2. Активный скользящий средний имеет более короткий период для улавливания краткосрочных изменений тренда, в то время как базовый скользящий средний имеет более длительный период для фильтрации рыночных шумов. Пользователи могут свободно выбирать между 5 различными типами скользящих средних: EMA, SMA, WMA, DEMA и VWMA. Код использует логику для расчета различных типов скользящих средних на основе выбора пользователя.

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

Маркеры формы визуально показывают позиции золотых и мертвых крестов. Цвет фона помогает определить направление тренда.

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

  1. Более надежные торговые сигналы с сочетанием нескольких индикаторов
  2. Повышение потенциала прибыли при длинной и короткой торговле балансом
  3. Настраиваемые типы скользящих средних и периоды, адаптируемые к различным рыночным условиям
  4. Интуитивное обнаружение тенденций с различными визуальными эффектами
  5. Ясная структура кода, легкая для понимания и настройки

Риски и решения

  1. Вводящие в заблуждение сигналы от скользящих средних

    • Использование комбинаций скользящих средних различных периодов для уменьшения вводящих в заблуждение сигналов
    • Добавьте другие условия выхода, такие как стоп-лосс
  2. Некоторые периоды могут лучше соответствовать стратегии

    • Проверьте различные параметры периода, чтобы найти оптимальные
    • Сделайте параметр периода динамичным и регулируемым в коде
  3. Увеличение риска потерь при длинной и короткой торговле

    • Правильно настроить размер положения
    • Выберите только длинный режим торговли

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

  1. Добавление стоп-лосса для контроля потери от одной сделки
  2. Создание условий для повторного выхода на рынок
  3. Оптимизировать стратегии размещения позиций
  4. Исследуйте новые торговые сигналы, такие как индикаторы волатильности
  5. Динамическая оптимизация параметров периода
  6. Оптимизировать взвешивание между различными типами скользящих средних

Резюме

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


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MASelect Crossover Strat", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
av1 = input(title="Active MA", defval="EMA", options=["EMA", "SMA", "WMA", "DEMA", "VWMA"])
av2 = input(title="Base MA", defval="EMA", options=["EMA", "SMA", "WMA", "DEMA", "VWMA"])
len1 = input(20, "Active Length")
len2 = input(100, "Base Length")
src = input(close, "Source")
strat = input(defval="Long+Short", options=["Long+Short", "Long Only"])

ema1 = ema(src, len1)
ema2 = ema(src, len2)
sma1 = sma(src, len1)
sma2 = sma(src, len2)
wma1 = wma(src, len1)
wma2 = wma(src, len2)
e1 = ema(src, len1)
e2 = ema(e1, len1)
dema1 = 2 * e1 - e2
e3 = ema(src, len2)
e4 = ema(e3, len2)
dema2 = 2 * e3 - e4
vwma1 = vwma(src, len1)
vwma2 = vwma(src, len2)

ma1 = av1 == "EMA"?ema1:av1=="SMA"?sma1:av1=="WMA"?wma1:av1=="DEMA"?dema1:av1=="VWMA"?vwma1:na
ma2 = av2 == "EMA"?ema2:av2=="SMA"?sma2:av2=="WMA"?wma2:av2=="DEMA"?dema2:av2=="VWMA"?vwma2:na

co = crossover(ma1, ma2)
cu = crossunder(ma1, ma2)
barcolor(co?lime:cu?yellow:na)
col = ma1 >= ma2?lime:red
bgcolor(co or cu?yellow:col)
plotshape(co, style=shape.triangleup, location=location.belowbar)
plotshape(cu, style=shape.triangledown)
plot(ma1, color=col, linewidth=3), plot(ma2, style=circles, linewidth=1)

strategy.entry("Buy", strategy.long, when=co)
if strat=="Long+Short"
    strategy.entry("Sell", strategy.short, when=cu)
else
    strategy.close("Buy", when=cu)

Больше