Бактэст Стратегия торговли через канал

Автор:Чао Чжан, Дата: 2023-09-20 17:02:40
Тэги:

Обзор

Эта стратегия строит длинные и короткие каналы, систематически проверяя прорывы канала.

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

  1. Постройте длинный канал с самыми высокими ценами за определенный период, и короткий канал с самыми низкими ценами.

  2. Покупайте, когда цена перешагнут верхнюю линию канала.

  3. Продайте, когда цена опустится ниже нижней линии канала.

  4. Можно установить диапазон даты обратного теста для проверки стратегии.

  5. Простые и понятные правила торговли.

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

  1. Каналы визуально определяют ценовые диапазоны.

  2. Высокая вероятность повышения импульса после прорыва.

  3. Обратное тестирование проверяет эффективность стратегии в историческом плане.

  4. Концепция выхода из канала проста и интуитивна.

  5. Конкретный код, легкий для модификации и оптимизации.

Риски

  1. Риски ложного выхода и отступления после первоначального выхода.

  2. Нет эффективного способа установки остановок и выходов.

  3. Неправильные параметры канала негативно влияют на производительность.

  4. Результаты обратных тестов могут быть предвзятыми.

  5. Реальные результаты торговли могут сильно отличаться от обратных тестов.

Улучшение

  1. Испытать параметры для поиска оптимальных комбинаций.

  2. Добавьте другие факторы, чтобы отфильтровать ложные прорывы.

  3. Встройте механизмы стоп-лосса и прибыли.

  4. Правильно обрабатывайте данные обратного теста, чтобы исключить предвзятость.

  5. Проверка стратегии в различных рыночных условиях с помощью бэкстеста.

  6. Бумажная торговля для настройки параметров для торговли в реальном времени.

Заключение

Эта стратегия проверяет простые правила прорыва канала, которые просты в эксплуатации, но требуют усовершенствования для стабильности.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-08-30 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//strategy(title = "Backtest Donchian Teixeira", default_qty_type = strategy.fixed, default_qty_value = 100, overlay = true, commission_type = strategy.commission.cash_per_order, commission_value = 2.50, precision = 2, calc_on_every_tick = true, pyramiding = 0, initial_capital = 10000)

testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 00, 00)

testEndYear = input(2018, "Backtest End Year")
testEndMonth = input(12, "Backtest End Month")
testEndDay = input(1, "Backtest End Day")
testPeriodEnd = timestamp(testStartYear, testStartMonth, testStartDay, 23, 59)

window()  => true //nao funciona

length1 = input(20, minval=1, title="Upper Channel")
length2 = input(20, minval=1, title="Lower Channel")

dcUpper = highest(length1)
dcLower = lowest(length2)

plot(dcLower, style=line, linewidth=1, color=red, offset=1)
plot(dcUpper, style=line, linewidth=1, color=lime, offset=1)
plot(dcLower, style=line, linewidth=1, color=gray)

if (strategy.position_size == 0)
    strategy.entry("COMPRA", true, stop = dcUpper)
    
if (strategy.position_size > 0)
    strategy.exit("VENDA", stop = dcLower)

Больше