Торговля золотом по стратегии Саймонса

Автор:Чао Чжан, Дата: 2024-03-01 12:28:38
Тэги:

img

Обзор

Эта стратегия сочетает в себе индикаторы скользящей средней, индекс относительной силы (RSI) и модели поглощения для проведения длинных и коротких сделок с золотом.

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

Стратегия принимает торговые решения на основе следующих аспектов:

  1. Кроссовер скользящей средней

    Кроссовер между 21-дневным MA и 200-дневным MA используется в качестве основного индикатора для определения обратного тренда.

  2. Индикатор RSI

    RSI должна быть ниже уровня перекупленности для длинного сигнала и выше уровня перепроданности для короткого сигнала, чтобы избежать покупки пиков и продажи долин.

  3. Подтверждение поглощающей модели

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

Торговые сигналы генерируются при выполнении всех трех вышеперечисленных условий.

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

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

  1. Сама стратегия скользящей средней имеет относительно хорошую стабильность.

  2. Настройки RSI предотвращают покупку пиков и продажу долины.

  3. Подтверждение паттернов поглощения повышает надежность суждения об изменении тренда.

  4. Меньшее количество стоп-лосса эффективно контролирует риски.

Риски

Хотя эта стратегия превосходит все в области фильтрации сигналов и контроля рисков, она все еще содержит некоторые недостатки и риски:

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

  2. Строгие сигналы могут упустить хорошие возможности.

  3. В условиях чрезвычайно волатильной рыночной конъюнктуры будет определенное отставание.

  4. Долгосрочная стабильность и эффективность требуют дальнейшей проверки.

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

Возможности оптимизации

Несмотря на хорошие результаты в объединении нескольких индикаторов, эта стратегия все еще имеет место для оптимизации:

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

  2. Включить другие индикаторы, такие как MACD, KD и т. Д., чтобы помочь в оценке времени обратного движения тренда.

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

  4. Проверьте более длинные исторические наборы данных для проверки долгосрочной валидности стратегии.

Заключение

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


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Gold Trading with Simons Strategy", overlay=true)

// Parameters
length21 = input(21, minval=1, title="Length for 21 MA")
length50 = input(50, minval=1, title="Length for 50 MA")
length200 = input(200, minval=1, title="Length for 200 MA")
rsiLength = input(14, minval=1, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
takeProfitPercent = input(4, title="Take Profit %")
stopLossPercent = input(1, title="Stop Loss %")

// Moving Averages
ma21 = sma(close, length21)
ma50 = sma(close, length50)
ma200 = sma(close, length200)

// RSI
rsi = rsi(close, rsiLength)

// Engulfing Pattern
isBullishCandle(c) => close[c] > open[c]
isBearishCandle(c) => close[c] < open[c]

bearishEngulfing = isBullishCandle(1) and isBearishCandle(0) and close < open[1] and open > close[1]
bullishEngulfing = isBearishCandle(1) and isBullishCandle(0) and close > open[1] and open < close[1]

// Calculate Take Profit and Stop Loss Levels
takeProfitLevel(entryPrice) => entryPrice * (1 + takeProfitPercent / 100)
stopLossLevel(entryPrice) => entryPrice * (1 - stopLossPercent / 100)

// Entry Conditions
longCondition = crossover(ma21, ma200) and close > ma21 and close > ma50 and rsi < rsiOverbought and bullishEngulfing
shortCondition = crossunder(ma21, ma200) and close < ma21 and close < ma50 and rsi > rsiOversold and bearishEngulfing

// Entry
if (longCondition)
    entryPrice = close
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit", "Long", limit=takeProfitLevel(entryPrice))
    strategy.exit("Stop Loss", "Long", stop=stopLossLevel(entryPrice))
if (shortCondition)
    entryPrice = close
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit", "Short", limit=takeProfitLevel(entryPrice))
    strategy.exit("Stop Loss", "Short", stop=stopLossLevel(entryPrice))

// Plotting
plot(ma21, color=color.blue, title="21 MA")
plot(ma50, color=color.orange, title="50 MA")
plot(ma200, color=color.red, title="200 MA")
hline(rsiOverbought, "RSI Overbought", color=color.green)
hline(rsiOversold, "RSI Oversold", color=color.red)
plot(rsi, "RSI", color=color.purple)

Больше