Стратегия обратной торговли на основе перекрывающихся ценовых дифференциалов

Автор:Чао Чжан, Дата: 2023-12-15 15:47:23
Тэги:

img

Обзор

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

Принцип

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

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

  1. ff: сумма ценовых различий за последние 30 дней
  2. dd1: 15-дневная взвешенная скользящая средняя ff
  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)


Больше