A ideia principal desta estratégia é usar os diferenciais de preços sobrepostos para julgar as tendências do mercado.
A estratégia primeiro calcula o diferencial de preço sobreposto (Close-Close [1]), que é o preço de fechamento de hoje menos o preço de fechamento de ontem, e depois calcula a soma dos diferenciais nos últimos 30 dias.
Em especial, a estratégia mantém três indicadores:
Ele gera um sinal longo quando ff muda de negativo para positivo, ou seja, de menor que 0 para maior que 0, e dd1 também muda de negativo para positivo.
Gera um sinal curto quando ff muda de positivo para negativo, ou seja, de maior que 0 para menor que 0, e dd1 também muda de positivo para negativo.
Depois de ir longo ou curto, as linhas de take profit e stop loss serão definidas.
A estratégia apresenta as seguintes vantagens:
Há também alguns riscos para a estratégia:
As soluções correspondentes são:
A estratégia pode ser otimizada nos seguintes aspectos:
A estratégia julga os pontos de virada do mercado calculando inversões de diferencial de preço. É uma estratégia de negociação reversa típica. A lógica é clara e fácil de implementar com algum valor prático. Mas também há riscos que precisam ser otimizados para se adaptar às mudanças do mercado.
/*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)