이 전략의 주요 아이디어는 상쇄된 가격 차이를 사용하여 시장 추세를 판단하는 것입니다. 차이는 음에서 양으로 역전되면 길게 갈 것이고, 차이는 양에서 음으로 역전되면 짧게 갈 것입니다. 그것은 역전 거래 전략에 속합니다.
이 전략은 먼저 겹치는 가격 차이 (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)