В процессе загрузки ресурсов... загрузка...

Стратегия выхода на базе каналов Камариллы

Автор:Чао Чжан, Дата: 2023-10-24 16:18:30
Тэги:

img

Обзор

Эта стратегия в основном использует каналы Камариллы и скользящие средние для выявления точек прорыва на рынке и, таким образом, реализации тенденции.

Логика стратегии

  1. Вычислить уровни поддержки и сопротивления с использованием каналов Камариллы, включая H4, L4 и т.д.

  2. Например, закрытие выше H4 и открытие ниже H4 указывает на сигнал прорыва.

  3. Добавьте фильтр скользящей средней для дальнейшего подтверждения. Например, если EMA ниже закрытия, это бычий прорыв.

  4. Введите длинную позицию со стоп-лосом и получите прибыль, например, фиксированные точки стоп-лосса и последующие стоп-лосы.

  5. Такая же логика применима к коротким позициям.

С помощью стоп-лосса стратегия может эффективно управлять трендами.

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

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

  1. Камарильские каналы точно определяют потенциальную поддержку и сопротивление.

  2. Фильтр скользящих средних помогает подтвердить истинные сигналы прорыва.

  3. Последующая остановка потери приносит прибыль, избегая остановок по перевороту.

  4. Сигналы ясны и легко действовать.

  5. Для автоматизированной торговли не требуются частые коррективы.

Риски и решения

Некоторые риски следует учитывать:

  1. Канал Камариллы не может эффективно определить поворотные моменты.

    • Решение: добавить осцилляторы для обнаружения обратного тренда.
  2. Неправильное установление точек остановки может привести к преждевременному выходу или увеличению потерь.

    • Решение: оптимизировать и протестировать различные уровни стоп-лосса.
  3. Сигналы прорыва могут оказаться ложными.

    • Решение: добавить больше фильтров для подтверждения или смягчить критерии выхода.
  4. Многие ложные прорывы могут произойти на различных рынках.

    • Решение: избегайте торговли в разные периоды или смягчите критерии.

Предложения по улучшению

Стратегия может быть улучшена в следующих аспектах:

  1. Добавьте больше индикаторов в качестве фильтров для повышения точности прорыва, таких как KDJ, MACD и т. д.

  2. Оптимизировать выходные пути, такие как динамическое отслеживание стоп-лосса, интеграция ATR и т.д.

  3. Оптимизировать параметры для различных продуктов для повышения надежности.

  4. Добавьте более высокий временной фрагмент фильтра тренда, чтобы избежать торговли с противоположным трендом.

  5. Сосредоточьтесь на больших объемах для подтверждения.

  6. Разработка автоматической оптимизации параметров для динамической настройки.

  7. Расширить на многопродуктовые стратегии арбитража.

Заключение

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


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Created by CristianD
strategy(title="CamarillaStrategyV1", shorttitle="CD_Camarilla_StrategyV1", overlay=true) 
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,8)

//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 and open < dtime_h4 and EMA < close
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit ("Exit Long","Long",  trail_points = 140,trail_offset = 1, loss =170) 
    //trail_points = 40, trail_offset = 3, loss =70 and


shortCondition = close <dtime_l4 and open >dtime_l4 and EMA > close
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit ("Exit Short","Short", trail_points = 110,trail_offset = 1, loss =120)
    


Больше