
Эта стратегия использует три показателя CCI, ADX и AO в комбинации для достижения лишних суждений и создания торговых сигналов. CCI используется для определения того, является ли рынок перекупленным, ADX используется для определения направления тенденции, а AO используется для вспомогательного определения рынка колебаний.
Индекс CCI используется для определения того, является ли рынок перекупленным или перепроданным. Когда CCI ниже -100, это перепродажа, а когда выше 100 - это перекуп. Эта стратегия проводится, когда CCI меньше 0.
Индекс ADX определяет силу тренда. DI+ означает силу тренда вверх, DI- означает силу тренда вниз. ADX означает среднюю силу тренда. Эта стратегия работает больше, когда DI+ ниже 25.
Показатель AO определяет воздушную энергию. AO состоит из быстрого SMA минус медленного SMA. Повышение AO означает увеличение текущей многоголовой силы, а снижение AO означает увеличение воздушной силы. Эта стратегия делает больше, когда AO ниже 0.
Комбинируя несколько вышеперечисленных показателей, формируется торговая стратегия: при CCI < 0 и DI+ < 25 и AO < 0 делать больше; при DI+ > 25 - быть на равных позициях.
Количество заказов динамически рассчитывается как учетная запись, разделенная на цену закрытия и уменьшение, что позволяет скорректировать количество заказов с учетом изменения учетной записи.
Используйте strategy.entry для многосигнала, strategy.close для сигнала равновесия.
Используя CCI для определения перепродажи, можно эффективно отфильтровывать ложные сигналы, вызванные шокирующей ситуацией.
Индекс ADX определяет наличие и силу тренда и может улавливать более сильные трендовые сигналы.
Индекс AO помогает оценить теплоту и энергию тренда и избегать торговли в условиях колебаний.
Комбинация нескольких показателей может взаимно проверять сигналы, повышать надежность сигналов и эффективно уменьшать ложные сигналы.
Динамический расчет количества ордеров позволяет корректировать размер позиции с учетом изменений в правах и интересах счета, с более сильным осознанием управления средствами.
Стратегическая логика понятна, проста, легко понятна и отслеживается.
Показатель CCI плохо распознает колебания в VSDK, что может привести к ошибочному сигналу.
Индекс ADX задерживается и может пропустить поворотный момент.
Показатель AO плохо влияет на оценку кривообразования.
Несмотря на то, что комбинация нескольких индикаторов повышает надежность сигнала, неправильная настройка индикаторов может привести к чрезмерной фильтрации, что приводит к упущенным торговым возможностям.
DYNAMICAOR связан с волатильностью рынка и требует корректировки параметров в зависимости от разных сортов и рыночных условий.
Стратегический вывод может быть значительным и требует строгого управления капиталом для контроля риска.
Оптимизация параметров CCI для выявления перекупленных и перепроданных зон на различных рынках.
Оптимизация параметров ADX, чтобы зафиксировать переходные тенденции в разных сортах и рыночных условиях.
Настройка параметров AO для определения реальных тенденций в различных волатильных средах.
Тестирование весовых комбинаций различных показателей для поиска оптимальных параметров.
Добавление стратегии сдерживания убытков для контроля отступления.
В сочетании с показателями объема торгов, чтобы избежать ложных прорывов.
Фиксированные позиции корректируются в зависимости от особенностей разных сортов.
Эта стратегия использует комбинацию из трех показателей CCI, ADX и AO, чтобы сформировать более надежный многосигнал. Вместе с тем, в сочетании с динамическим расчетом количества заказов и управления позициями, можно эффективно контролировать риск. Идея стратегии проста, ясна, легко понятна и подходит для обучения новичкам.
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Strategy Niel", shorttitle="Strategy Niel", max_bars_back=2000, initial_capital=1000)
//Input variables
buywhenadxabove = input(25)
buywhendiplusbelow = input(10)
buywhenccibelow = input(0)
buywhenawesomeoscillatorbelow = input(0)
sellwhendiplusabove = input(25)
//CCI script
numberofbarsforcci = input(20)
CCI = cci(close,numberofbarsforcci)
//+DI and ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
up = change(high)
down = -change(low)
truerange = rma(tr, len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
[adx, plus, minus]
[sig, up, down] = adx(dilen, adxlen)
//plot(sig, color=red, title="ADX")
//plot(up, color=blue, title="+DI")
//plot(down, color=orange, title="-DI")
//Awesome Oscillator
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
cClr = xSMA1_SMA2 > xSMA1_SMA2[1] ? blue : red
//plot(xSMA1_SMA2, style=histogram, linewidth=1, color=cClr)
buy = sig > buywhenadxabove and up < buywhendiplusbelow and CCI < buywhenccibelow and xSMA1_SMA2 < buywhenawesomeoscillatorbelow
ordersize=floor(strategy.equity/close) // Floor returns largest integer, strategy.equity gives total equity remaining - allows to dynamically calculate the order size as the account equity increases or decreases.
strategy.entry("long",strategy.long,ordersize,when= buy) //strategy.entry let's you enter the market variables id ("long"), strategy.long (long position entry), size of the order and when the order should happen
bought = strategy.position_size[0] > strategy.position_size[1]
entry_price = valuewhen(bought, open, 0)
sell = up > sellwhendiplusabove
strategy.close("long", when=sell ) //strategy.close let's you close your position with variables id ('long') and when this should happen