
이 전략의 주요 아이디어는 가격의 중복 차원을 사용하여 시장의 추세를 판단하는 것입니다. 차원이 마이너스에서 긍정으로 돌아가는 경우 더 많이하고, 긍정에서 마이너스으로 돌아가는 경우 공백을 할 때 역전 거래 전략에 속합니다.
이 전략은 우선 가격의 겹치는 차이를 계산합니다.[1]), 즉, 오늘의 종전 가격을 어제의 종전 가격에서 빼고, 최근 30일간의 차이의 총합을 계산한다. 총합이 마이너스에서 긍정으로 역전되면 다중 신호가 발생하며, 총합이 긍정에서 부정으로 역전되면 하위 신호가 발생하며, 전형적인 역전 거래 전략에 속한다.
특히, 전략은 세 가지 지표를 유지합니다.
ff가 음수에서 양수로 역전되면, 즉 0보다 작은 것이 0보다 커지고, dd1도 음수에서 양수로 역전되면, 다중 신호가 발생한다.
ff가 양수에서 음수로 역전되면, 즉 0보다 큰 것이 0보다 작아지고, dd1도 양수에서 음수로 역전되면, 공백 신호가 발생한다.
더 많은 공백을 다면, Stop Loss Lines를 설정한다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
대응방법은 다음과 같습니다.
이 전략은 다음과 같은 측면에서 최적화될 수 있습니다.
이 전략은 가격 차이의 반전을 계산하여 시장의 전환점을 판단하는 전형적인 반전 거래 전략이다. 전략 아이디어는 명확하고, 실행하기 쉽고, 약간의 실용적 가치가 있다. 그러나 시장의 변화에 적응하기 위해 추가적인 최적화가 필요한 몇 가지 위험도 있다. 전체적으로 이 전략은 양적 거래에 대한 기본 프레임워크를 제공하며, 이를 기반으로 확장할 수 있다.
/*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)