Стратегия разворотной торговли, основанная на перекрывающихся разрывах


Дата создания: 2023-12-15 15:47:23 Последнее изменение: 2023-12-15 15:47:23
Копировать: 0 Количество просмотров: 586
1
Подписаться
1621
Подписчики

Стратегия разворотной торговли, основанная на перекрывающихся разрывах

Обзор

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

Принципы

Эта стратегия рассчитывает сначала накладываемую разницу в цене (Close-Close[1]), то есть сегодняшняя цена закрытия за вычетом цены закрытия вчера, а затем рассчитывается сумма разницы за последние 30 дней. Когда сумма переворачивается с отрицательного числа на положительное число, возникают сигналы о множестве, а когда сумма переворачивается с положительного числа на отрицательное число, возникают сигналы о недостаточности, относящиеся к типичной стратегии обратной торговли.

В частности, стратегия поддерживает три показателя:

  1. ff: сумма разницы за последние 30 дней
  2. dd1: 15-дневная скользящая средняя FFF
  3. dd2: 30-дневная скользящая средняя по ff

Когда ff переходит от отрицательного числа к положительному, то есть меньше 0 становится больше 0, а dd1 также переходит от отрицательного числа к положительному, образуется множественный сигнал.

Когда ff переходит от положительного к отрицательному, то есть больше 0 становится меньше 0, а dd1 также переходит от положительного к отрицательному, то создается пустой сигнал.

После дополнительного пробега устанавливается стоп-стоп.

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

Эта стратегия имеет следующие преимущества:

  1. Мысли ясны, легко понятны и реализуемы.
  2. Используйте свойства обратного ценообразования, чтобы получить лучший момент входа в рыночные переменные моменты.
  3. В сочетании с механизмом двойного подтверждения, можно отфильтровывать фальшивые прорывы.
  4. Настраиваемые параметры, адаптированные к различным рыночным условиям.

Риск

Однако эта стратегия также несет в себе некоторые риски:

  1. Большая вероятность неудачи поворота, легкая остановка на рынке с промежуточным колебанием.
  2. Неправильная настройка параметров может привести к частым транзакциям и увеличить стоимость транзакций.
  3. Необходимо сочетать с другими показателями фильтрацию входа, чтобы избежать вершины и дна.

В соответствии с решением:

  1. Разумная установка стоп-процентов, контроль одиночных потерь.
  2. Оптимизируйте параметры, чтобы найти оптимальную комбинацию параметров.
  3. Добавить фильтрацию, чтобы избежать ненужного доступа.

Направление оптимизации

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

  1. Увеличение количества сделанных сделок, например, увеличение количества сделанных сделок при прорыве.
  2. В сочетании с фильтрацией трендовых индикаторов, избегайте обратных операций.
  3. Динамическая настройка параметров, позволяющая изменять их в зависимости от состояния рынка.
  4. Оптимизация механизмов погашения убытков, например, погашение убытков по цене.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-12-07 00:00:00
end: 2023-12-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Fst",currency="USD",initial_capital=100000)

//Length0 = input(30, title="fastperiod", minval=1)
Length = input(30, title="SUMM")
Length1 = input(15, title="Signalperiod", minval=1)
Length2= input(30, title="Info", minval=1)
profit=input(95, title="profit", minval=1)
loss=input(95, title="loss", minval=1)
//f=iff(close>open,close-open,iff(close>open[1],close[1]-open[1],0))
f=0.0
dd1=0.0
dd2=0.0
ff=0.0
ff0=0.0
f:=close-close[1]
ff:=sum(f,Length)
//ff0:=sum(f,Length0)
dd1:=wma(ff,Length1)
dd2:=wma(ff,Length2)

bull=ff<0 and dd1<0 and ff[1]<dd1 and ff>dd1 and abs(ff)>20
bear=ff>0 and dd1>0 and ff[1]>dd1 and ff<dd1 and abs(ff)>20
if(bull)
    
    strategy.entry("long", strategy.long)
strategy.exit("exit", "long", profit = close*profit/1000, loss=close*loss/1000) 

strategy.close("long", when = bear)




plotchar(bull,size=size.small,location=location.bottom)
plot(ff,color=black,linewidth=2)
plot(ff0,color=green,linewidth=2)
plot(wma(ff,Length1),color=red,linewidth=2)
plot(wma(ff,Length2),color=blue,linewidth=2)
plot(wma(ff,Length1)-wma(ff,Length2),color=green,style=columns)

plot(0,linewidth=1,color=black)
plot(500,linewidth=1,color=red)
plot(-500,linewidth=1,color=red)