
Эта стратегия разработана на основе CCI, чтобы использовать стратегию длинных линий, в которой только плюсы и минусы. Показатель CCI дает сигнал покупки, когда он превышает 100, и сигнал продажи, когда показатель CCI превышает 100. Эта стратегия разрешает только открытые позиции, не допускает пробел, и, таким образом, эффективно предотвращает риск торговли на пустом месте.
Индекс CCI - это индикатор трендового колебания, который определяет, является ли текущая цена перекупленной или перепроданной, измеряя ее отклонение от типичной цены за определенный период. Если показатель CCI превышает 100, то можно считать, что он входит в зону перекупа.
Торговая логика этой стратегии заключается в том, что, когда на показателе CCI попадает 100 и создается сигнал покупки, тогда можно создать позицию сверхновой позиции; когда показатель CCI впоследствии попадает в 100 и создается сигнал продажи, предыдущая позиция сверхновой позиции ликвидируется. Кроме того, стратегия эффективно контролирует риск, предотвращая появление пустой позиции, позволяя только ликвидировать позиции.
Эта стратегия использует показатель CCI для определения зоны перепродажи, только не делайте ничего, чтобы эффективно предотвратить риск торговли на пустом месте. Концепция стратегии является более зрелой, логика проста, ее легко реализовать. Но также существует определенный риск, требующий внимания на такие вопросы, как оптимизация параметров, объединение большего количества показателей, установка остановки убытков.
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("CCI Long Only Strategy", overlay=true)
// Input for CCI period
cciPeriod = input(14, title="CCI Period")
// Calculate CCI
cciValue = ta.cci(close, cciPeriod)
// Initialize variables to track last signals
var bool lastBuySignal = na
var bool lastSellSignal = na
// Buy condition
buyCondition = cciValue > 100 and na(lastBuySignal)
// Sell condition
sellCondition = cciValue < -100 and na(lastSellSignal)
// Update last signals
lastBuySignal := buyCondition ? true : na
lastSellSignal := sellCondition ? true : na
// Execute Buy and Sell orders
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.close("Buy", when = sellCondition)
// Plot CCI for reference
plot(cciValue, title="CCI", color=color.blue)