
Циклическая торговая стратегия, основанная на тенденции, - это количественная торговая стратегия, основанная на 200-дневных простых движущихся средних для определения направления тенденции. Эта стратегия предлагает две модели “следить за восходящей тенденцией” и “следить за нисходящей тенденцией”, которые можно выбрать в соответствии с предпочтениями трейдера.
Ключевым показателем стратегии является 200-дневная простая скользящая средняя. Стратегия делится на две модели:
Следить за восходящей тенденцией: делать больше, когда цена закрытия выше 200-дневного скользящего среднего; снять позиции, когда возникают остановки или остановки.
Следить за падением тренда: делать больше, когда цена закрывается ниже 200-дневного скользящего среднего значения; делать меньше, когда наступает остановка или остановка.
Принятие нескольких условийlongConditionОпределение переменных, основанных на взаимосвязи между ценой закрытия и 200-дневным скользящим средним.closeConditionОпределение переменных, основанных на отношениях между стоп-стоп, ценой стоп-принтов и скользящей средней.
В частности, если выполняется несколько условий, то принятиеstrategy.entryОткрытие позиции, если выполняются условия для закрытия позиции,strategy.exitНикаких проблем.
Эта стратегия имеет следующие преимущества:
Простая и понятная логика транзакций, легко понятная реализация.
Существует два варианта, которые могут быть выбраны в соответствии с различными рыночными условиями.
Риск-прибыль характеристики, которые могут быть скорректированы в стратегии путем настройки стоп-лосса и стоп-поста.
Используйте 200-дневную скользящую среднюю для определения направления тенденции.
Автоматически генерируемые торговые сигналы, не требующие человеческого вмешательства, снижают операционный риск.
Также существуют следующие риски:
Слишком большая зависимость от одного технического показателя может привести к ошибочным сигналам. Можно рассмотреть возможность включения других показателей для проверки, таких как MACD, KDJ и т. Д.
Стоп-потери и остановки слишком малы, подвержены рыночным колебаниям; слишком велики, могут пропустить идеальную точку выхода. Должны быть должным образом протестированы и оптимизированы параметры.
При использовании сигналов по оценке по цене закрытия, существует отклонение в сторону потери / падения. Можно рассмотреть возможность изменения сущности по оценке по линии K или подтверждения следующей линии K после генерации сигнала.
Не учитывается влияние на транзакционные расходы. При использовании фиксированного диска необходимо зарезервировать определенное пространство для транзакционных расходов.
Эта стратегия может быть оптимизирована в следующих направлениях:
Добавить другие технические индикаторы, чтобы избежать ошибочных сигналов. Например, MACD.
Оптимизация параметров стоп-стоп-убытков, чтобы найти оптимальную комбинацию параметров. Можно сравнить их, отслеживая несколько параметров.
Добавление фильтрации трендов, торгуйте только в том случае, если тренд очевиден. Например, введение индикатора ADX.
Изменение способа доступа, принятие во внимание отношений между субъектами линии K или включение в механизм подтверждения.
Рассмотрим влияние объема торгов. Проверьте надежность сигнала при большом количестве.
Тестирование различных параметров скользящих средних для поиска оптимальных.
В целом, общая концепция стратегии понятна и имеет некоторую практическую ценность. Однако существует определенная слепая зона, основанная только на одном показателе. Необходимо добавить дополнительные критерии для проверки и оптимизировать параметры для тестирования, чтобы получить лучшие результаты в реальном мире. Кроме того, необходимо обратить внимание на влияние сборов за транзакции, таких как скольжение в реальном мире и комиссионные.
/*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)