Тенденция позиции цикла в соответствии со стратегией

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

img

Обзор

Стратегия последовательности трендов цикла позиций - это количественная стратегия торговли, которая определяет направление тренда на основе 200-дневной простой скользящей средней (SMA). Она предоставляет два режима - Follow Uptrend и Follow Downtrend для трейдеров на выбор в соответствии с их предпочтениями. Стратегия позволяет трейдерам настраивать стоп-лосс и принимать уровни прибыли для большей гибкости.

Как работает стратегия

Основным показателем этой стратегии является 200-дневная SMA. Стратегия имеет два режима:

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

  2. Следуйте режиму нисходящего тренда: займите длинную позицию, когда закрытие находится ниже 200-дневной SMA; закрыть позицию, когда активируется стоп-лосс или прибыль.

Долгое условие определено вlongConditionУсловие закрытия определяется вcloseConditionпеременная, основанная на стоп-лосс, take profit и SMA.

В частности,strategy.entryиспользуется для открытия длинных позиций при выполнении длинного условия.strategy.exitиспользуется для закрытия позиций при запуске условия закрытия.

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

Преимущества этой стратегии включают:

  1. Простая и понятная логика, которую легко понять.

  2. Предоставляет два дополнительных режима для различных рыночных условий.

  3. Настраиваемые стоп-лосс и прибыль позволяют настраивать профиль риска и прибыли.

  4. Использует известный 200-дневный индикатор SMA для определения направления тренда.

  5. Создает автоматические торговые сигналы без ручного вмешательства.

Риски стратегии

Риски этой стратегии включают:

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

  2. Стоп-лосс и уровни прибыли слишком узкие или слишком широкие могут привести к преждевременной остановке или отсутствию идеальных точек выхода.

  3. Использование ценового закрытия для сигналов имеет предвзятое отношение к цене закрытия.

  4. Не учитывает затраты на торговлю. Нужно сохранить затраты при запуске.

Как улучшить стратегию

Некоторые способы улучшения стратегии:

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

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

  3. Добавить фильтр тренда, чтобы торговать только в хорошо определенных тенденциях, например, ADX.

  4. Улучшить способ входа, рассмотрев тело свечи или добавив подтверждение.

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

  6. Испытать различные периоды SMA, чтобы найти оптимальный параметр.

Заключение

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


/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
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/
// © I11L

//@version=5
strategy("Cycle Position Trading", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false)

// Input for selecting the mode
mode = input.string("Buy Uptrend", options = ["Buy Uptrend", "Buy Downtrend"])

// Input for customizing stop loss and take profit levels
stopLoss = input.float(0.9, title="Stop Loss (SL) level", step=0.01)
takeProfit = input.float(1.1, title="Take Profit (TP) level", step=0.01)

// Calculate the 200-day Simple Moving Average (SMA)
sma = ta.sma(close, 200)

// Plot the SMA on the chart
plot(sma)

// Define the conditions for entering a long position based on the selected mode
longCondition = mode == "Buy Uptrend" ? close > sma and close[5] > sma : close < sma

// Define the conditions for closing a position based on the selected mode
closeCondition = mode == "Buy Uptrend" ? (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close < sma * 0.95) : (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close > sma * 1.05)

// Execute a long position if the longCondition is met
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

// Close the position if the closeCondition is met
if (closeCondition)
    strategy.exit("Exit", limit = close)


Больше