
Основная идея этой стратегии заключается в том, чтобы использовать пересекающиеся разницы цен для определения рыночной тенденции. Когда разница переходит от отрицательного числа к положительному, делается больше, а когда она переходит от положительного числа к отрицательному, делается пустота, это относится к стратегии обратного торговли.
Эта стратегия рассчитывает сначала накладываемую разницу в цене (Close-Close[1]), то есть сегодняшняя цена закрытия за вычетом цены закрытия вчера, а затем рассчитывается сумма разницы за последние 30 дней. Когда сумма переворачивается с отрицательного числа на положительное число, возникают сигналы о множестве, а когда сумма переворачивается с положительного числа на отрицательное число, возникают сигналы о недостаточности, относящиеся к типичной стратегии обратной торговли.
В частности, стратегия поддерживает три показателя:
Когда ff переходит от отрицательного числа к положительному, то есть меньше 0 становится больше 0, а dd1 также переходит от отрицательного числа к положительному, образуется множественный сигнал.
Когда ff переходит от положительного к отрицательному, то есть больше 0 становится меньше 0, а dd1 также переходит от положительного к отрицательному, то создается пустой сигнал.
После дополнительного пробега устанавливается стоп-стоп.
Эта стратегия имеет следующие преимущества:
Однако эта стратегия также несет в себе некоторые риски:
В соответствии с решением:
Эта стратегия может быть оптимизирована в следующих аспектах:
Эта стратегия определяет рыночные переломные моменты, рассчитывая разницу в цене, и является типичной стратегией обратного трейдинга. Идея стратегии ясна, ее легко реализовать, и она имеет некоторую практическую ценность. Но есть также некоторые риски, которые требуют дальнейшей оптимизации для адаптации к изменениям рынка.
/*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)