Стратегия торговли по реверсии вариантов

Автор:Чао Чжан, Дата: 2023-10-31 14:42:13
Тэги:

img

Обзор

Стратегия обращения вариантов генерирует торговые сигналы путем вычисления соотношения между опционами на покупку и продажу, также известного как соотношение на покупку и продажу. Когда соотношение обращается вспять, он запускает сделки в сочетании с простыми правилами управления деньгами для получения прибыли. Он подходит для 30-минутных периодов NDX и SPX. Колебание должно быть отрегулировано так, чтобы отразить правильную точку обращения. Результаты твёрдой обратной проверки указывают на оптимальную точку обращения.

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

Основными показателями этой стратегии являются скользящая средняя и стандартное отклонение соотношения call/put. Он сначала рассчитывает 20-дневную скользящую среднюю величину соотношения call/put, а затем вычисляет 30-дневный стандартное отклонение соотношения. Длинный сигнал запускается, когда соотношение превышает скользящую среднюю плюс 1,5 стандартного отклонения. Короткий сигнал запускается, когда соотношение падает ниже скользящей средней минус 1,5 стандартного отклонения.

После длинного хода, если соотношение отскочит обратно выше скользящей средней, закрыть короткую позицию. Стоп-лосс устанавливается на 1% ниже цены входа. Приобретение прибыли устанавливается на 3 раза расстояние стоп-лосса от цены входа.

Анализ преимуществ

Наибольшее преимущество этой стратегии заключается в том, что рынок становится чрезмерно пессимистичным или бычьим, что вызывает аномалии в соотношении call/put. Торговля против таких аномалий может получать прибыль от местных переворотов. Правила управления деньгами эффективно ограничивают риск и прибыль отдельных сделок.

Анализ рисков

Основной риск возникает из-за неправильной настройки параметров. Чрезмерно частые сигналы не могут улавливать значительные обратные действия. Сигналы обратного действия также могут быть сфальсифицированы ложными прорывами, вызывая потери. Параметры должны быть оптимизированы для более надежных сигналов.

Оптимизация

Подумайте о добавлении фильтров, чтобы подтвердить сигналы обратного движения и избежать ложных прорывов. Например, рассматривайте сигналы только при усилении объема. Фильтры тренда также могут избегать контратендных сделок. Оптимальные параметры, вероятно, варьируются на разных рынках и временных рамках. Интеграция большего количества факторов сделает стратегию более надежной.

Заключение

Эта стратегия направлена на захват точек переворота рынка с использованием соотношения call / put с базовыми правилами управления деньгами. Она может получать прибыль от местных переворотов, но сталкивается с рисками ложного выхода. Оптимизация параметров, добавление фильтров и интеграция большего количества факторов могут повысить его стабильность и прибыльность. В целом, она обеспечивает направление для переворотов торговли на основе настроения рынка. Необходимо дальнейшее тестирование и оптимизация для реального применения.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © I11L

//@version=5
strategy("I11L Long Put/Call Ratio Inversion", overlay=false, pyramiding=1, default_qty_value=10000, initial_capital=10000, default_qty_type=strategy.cash)

SL = input.float(0.01,step=0.01)
CRV = input.float(3)
TP = SL * CRV

len = input.int(30,"Lookback period in Days",step=10)
ratio_sma_lookback_len = input.int(20,step=10)
mult = input.float(1.5,"Standard Deviation Multiple")

ratio_sma = ta.sma(request.security("USI:PCC","D",close),ratio_sma_lookback_len)

median = ta.sma(ratio_sma,len)
standartDeviation = ta.stdev(ratio_sma,len)
upperDeviation = median + mult*standartDeviation
lowerDeviation = median - mult*standartDeviation


isBuy = ta.crossunder(ratio_sma, upperDeviation)// and close < buyZone
isCloseShort = (ratio_sma > median and strategy.position_size < 0)
isSL = (strategy.position_avg_price * (1.0 - SL) > low and strategy.position_size > 0) or (strategy.position_avg_price * (1.0 + SL) < high and strategy.position_size < 0)
isSell = ta.crossover(ratio_sma,lowerDeviation) 
isTP = strategy.position_avg_price * (1 + TP) < high

if(isBuy)
    strategy.entry("Long", strategy.long)

if(isCloseShort)
    strategy.exit("Close Short",limit=close)

if(isSL)
    strategy.exit("SL",limit=close)

if(isTP)
    strategy.exit("TP",limit=close)
    
plot(ratio_sma,color=color.white)
plot(median,color=color.gray)
plot(upperDeviation,color=color.rgb(0,255,0,0))
plot(lowerDeviation,color=color.rgb(255,0,0,0))

bgcolor(isBuy?color.rgb(0,255,0,90):na)
bgcolor(isSell?color.rgb(255,0,0,90):na)


Больше