本策略主要思想是利用价格的重叠差额来判断市场趋势,当差额从负数反转到正数时做多,从正数反转到负数时做空,属于反转交易策略。
该策略首先计算价格的重叠差额(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)