Стратегия Camarilla Pivot Breakout - это количественная стратегия торговли, которая использует уровни Camarilla Pivot для входов и выходов. Эта стратегия опирается на традиционные теории технического анализа поддержки и сопротивления, сочетает в себе математические формулы Camarilla для расчета точек перехода в разные временные рамки и устанавливает прорывы этих ключевых уровней в качестве условий для открытия и закрытия торгов, чтобы достичь избыточной доходности.
Основная логика этой стратегии заключается в следующем: расчет H4 и L4, двух ключевых уровней поддержки и сопротивления, из формулы Камариллы в течение суточного периода времени; генерация торговых сигналов, когда цена переходит эти два уровня.
В частности, стратегия сначала рассчитывает середину самых высоких, самых низких и закрывающих цен текущей панели в качестве поворотной точки. Затем она рассчитывает диапазон цен. На основе диапазона можно составить график различных уровней Камариллы, включая H4, H3, H2, H1 и L1, L2, L3, L4. Среди них H4 является первым сопротивлением, а L4 - первой поддержкой.
Для торговых сигналов, если цена закрытия превышает уровень H4, это запускает длинный сигнал; если цена закрытия превышает L4, это запускает короткий сигнал.
Итак, основная логика заключается в том, чтобы использовать прорывы на уровне Камариллы для определения структуры рынка и получения торговых сигналов.
Эта стратегия выхода Камариллы имеет несколько ключевых достоинств:
Анализ Camarilla использует классические концепции поддержки/сопротивления.
По сравнению с моделями машинного обучения, правила Камариллы просты с несколькими настраиваемыми показателями, легко понимаются и выполняются в режиме реального времени, особенно для новичков.
Наблюдение за H4/L4 прорыва напрямую переводится в торговые записи. Сигнал стратегии четкий и код прост. Это позволяет быстро создавать прототипы от идей до живой торговли.
Стратегия Camarilla работает для высокой частоты (секунды, минуты) и низкой частоты (ежедневно, еженедельно).
Однако такая простая стратегия выхода имеет некоторые внутренние недостатки:
Не своевременное сокращение потерь может привести к большим снижениям.
Наблюдение только за закрывающимися ценами может привести к отсутствию потенциальных прорывов во время более ранних барных периодов.
По сравнению с более сложными моделями, исключительная зависимость от Камариллы может ограничить прибыль и амплитуду.
Поэтому для обеспечения надежности такого простого метода выхода необходимо управление рисками с помощью стоп-лосса, оптимизация логики входа и корректировка размеров позиций.
Чтобы еще больше оптимизировать эту стратегию выхода Камарильи, мы можем сосредоточиться на следующем:
Сочетание объема, скользящих средних и т.д., чтобы оценить подлинность прорыва и избежать ложных сигналов.
Например, расслабление величины прорыва через обратные тесты, чтобы найти сладкие точки, или добавление новых правил, основанных на сезонности.
Ужесточить диапазон стоп-лосса, избегая преждевременных стоп-лостов или альтернативных слоев, таких как отставание стоп-лосса.
адаптивная настройка позиций и параметров рыночного плеча в соответствии с меняющимися рыночными режимами.
Используйте модели LSTM и RNN для прогнозирования вероятности прорыва и повышения уровня интеллекта.
Стратегия Camarilla Pivot Breakout - это простая и прямая количественная торговая стратегия, которую легко реализовать. Она использует зрелые инструменты технического анализа и генерирует торговые сигналы, захватывая перерывы ключевых уровней поддержки и сопротивления.
/*backtest start: 2023-12-27 00:00:00 end: 2024-01-03 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Created by CristianD strategy(title="CamarillaStrategy", shorttitle="CD_Camarilla_Strategy", overlay=true) //sd = input(true, title="Show Daily Pivots?") EMA = ema(close,3) //Camarilla pivot = (high + low + close ) / 3.0 range = high - low h5 = (high/low) * close h4 = close + (high - low) * 1.1 / 2.0 h3 = close + (high - low) * 1.1 / 4.0 h2 = close + (high - low) * 1.1 / 6.0 h1 = close + (high - low) * 1.1 / 12.0 l1 = close - (high - low) * 1.1 / 12.0 l2 = close - (high - low) * 1.1 / 6.0 l3 = close - (high - low) * 1.1 / 4.0 l4 = close - (high - low) * 1.1 / 2.0 h6 = h5 + 1.168 * (h5 - h4) l5 = close - (h5 - close) l6 = close - (h6 - close) // Daily line breaks //sopen = request.security(syminfo.tickerid, "D", open [1]) //shigh = request.security(syminfo.tickerid, "D", high [1]) //slow = request.security(syminfo.tickerid, "D", low [1]) //sclose = request.security(syminfo.tickerid, "D", close [1]) // // Color //dcolor=sopen != sopen[1] ? na : black //dcolor1=sopen != sopen[1] ? na : red //dcolor2=sopen != sopen[1] ? na : green //Daily Pivots dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) dtime_h6 = request.security(syminfo.tickerid, 'D', h6[1]) dtime_h5 = request.security(syminfo.tickerid, 'D', h5[1]) dtime_h4 = request.security(syminfo.tickerid, 'D', h4[1]) dtime_h3 = request.security(syminfo.tickerid, 'D', h3[1]) dtime_h2 = request.security(syminfo.tickerid, 'D', h2[1]) dtime_h1 = request.security(syminfo.tickerid, 'D', h1[1]) dtime_l1 = request.security(syminfo.tickerid, 'D', l1[1]) dtime_l2 = request.security(syminfo.tickerid, 'D', l2[1]) dtime_l3 = request.security(syminfo.tickerid, 'D', l3[1]) dtime_l4 = request.security(syminfo.tickerid, 'D', l4[1]) dtime_l5 = request.security(syminfo.tickerid, 'D', l5[1]) dtime_l6 = request.security(syminfo.tickerid, 'D', l6[1]) //offs_daily = 0 //plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",color=dcolor, linewidth=2) //plot(sd and dtime_h6 ? dtime_h6 : na, title="Daily H6", color=dcolor2, linewidth=2) //plot(sd and dtime_h5 ? dtime_h5 : na, title="Daily H5",color=dcolor2, linewidth=2) //plot(sd and dtime_h4 ? dtime_h4 : na, title="Daily H4",color=dcolor2, linewidth=2) //plot(sd and dtime_h3 ? dtime_h3 : na, title="Daily H3",color=dcolor1, linewidth=3) //plot(sd and dtime_h2 ? dtime_h2 : na, title="Daily H2",color=dcolor2, linewidth=2) //plot(sd and dtime_h1 ? dtime_h1 : na, title="Daily H1",color=dcolor2, linewidth=2) //plot(sd and dtime_l1 ? dtime_l1 : na, title="Daily L1",color=dcolor2, linewidth=2) //plot(sd and dtime_l2 ? dtime_l2 : na, title="Daily L2",color=dcolor2, linewidth=2) //plot(sd and dtime_l3 ? dtime_l3 : na, title="Daily L3",color=dcolor1, linewidth=3) //plot(sd and dtime_l4 ? dtime_l4 : na, title="Daily L4",color=dcolor2, linewidth=2) //plot(sd and dtime_l5 ? dtime_l5 : na, title="Daily L5",color=dcolor2, linewidth=2) //plot(sd and dtime_l6 ? dtime_l6 : na, title="Daily L6",color=dcolor2, linewidth=2) longCondition = close >dtime_h4 if (longCondition) strategy.entry("My Long Entry Id", strategy.long) shortCondition = close <dtime_l4 if (shortCondition) strategy.entry("My Short Entry Id", strategy.short)