리소스 로딩... 로딩...

이중 추진 전략

저자:차오장, 날짜: 2023-09-19 16:27:12
태그:

전반적인 설명

이중 추진 전략은 개시 가격과 전날의 범위에 따라 상위 및 하위 범위를 설정하여 상향 브레이크에 대해 길고 하향 브레이크에 대해 짧습니다. 브레이크로 형성된 트렌드 거래 기회를 포착하는 것을 목표로합니다.

전략 원칙

  1. 가장 높은 HH와 가장 낮은 LL를 최근 N 바를 계산합니다.

  2. 전날의 가장 높은 HC와 가장 낮은 LC를 계산합니다.

  3. 전날의 범위 범위는 HH-LC와 HC-LL 중 더 크다.

  4. 상위 범주인 바이라인은 오픈 가격과 K1*레인지입니다.

  5. 아래 밸리 라인은 시작 가격 마이너스 k2 * 범위입니다.

  6. BuyLine 위를 닫을 때 장거리, SellLine 아래를 닫을 때 단거리.

이점 분석

이 전략의 주요 장점:

  1. 개시 가격 주변에서 유행이 형성되는 추세를 포착합니다.

  2. 폭은 주관성을 피하는 역사적 변동성에 따라 자동으로 설정됩니다.

  3. 사용자 정의 가능한 k 값은 다른 변동성을 가진 제품에 적합합니다.

  4. 파기 신호는 비교적 높은 품질입니다.

  5. 유연한 보유 기간은 다른 시간 프레임에서 동향을 포착합니다.

위험 분석

이 전략의 주요 위험은:

  1. 띠에 대한 합리적인 범위를 결정하는 데 어려움이 있고, 과도한 적합성 위험이 있습니다.

  2. 브레이크오웃은 잘못된 신호로 밝혀질 수 있습니다.

  3. 고정된 보유 기간은 시장에 동적으로 적응할 수 없습니다.

  4. 역시험 데이터가 부족해서 곡선 부착이 됩니다.

  5. 길고 짧은 거래를 동시에 실행하는 데 어려움이 있습니다.

해결책:

  1. 더 큰 데이터 세트에서 k 값을 최적화하여 과잉 부합을 피합니다.

  2. 적절한 스톱 로스를 설정하여 거래당 손실을 제한합니다.

  3. 트렌드 필터를 추가하여 역 트렌드 거래를 피합니다.

  4. 보유 기간을 하루내로 줄이는 것을 고려해야 합니다.

  5. 점진적인 위치 크기를 통해 실시간 검증

최적화 방향

전략을 개선할 수 있는 몇 가지 방법:

  1. 대역에 대한 k값을 동적으로 조정합니다.

  2. 분출 신호를 확인하기 위해 볼륨 필터를 추가합니다.

  3. 수익을 보호하기 위해 Stop Loss를 이동시키세요.

  4. 위치 크기를 측정하기 위해 파업 강도를 평가합니다.

  5. 트렌드와 범위를 구분해서 전략을 분해해 보세요.

요약

이중 추진 전략은 개시 가격 주위의 트렌드 거래 기회를 포착 할 수 있습니다. 그러나 매개 변수 설정 및 보유 기간 최적화는 리스크 통제를 고려하여 개선 할 수있는 큰 여지가 있습니다. 라이브 거래를 위해 보수적인 매개 변수와 시작하여 점진적으로 포지션을 크십시오.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Dual Thrust Strategy",overlay=true,initial_capital=1000)
k1=input(0.67,type=float,step=0.01)
k2=input(0.62,type=float,step=0.01)
TimeFrame=input('240')
len=input(20)
HH=security(syminfo.tickerid,TimeFrame,highest(high,len),barmerge.lookahead_off)
LC=security(syminfo.tickerid,TimeFrame,lowest(close,len),barmerge.lookahead_off)
HC=security(syminfo.tickerid,TimeFrame,highest(close,len),barmerge.lookahead_off)
LL=security(syminfo.tickerid,TimeFrame,lowest(low,len),barmerge.lookahead_off)
Range=max(HH-LC,HC-LL)
BuyLine=security(syminfo.tickerid,"D",open,barmerge.lookahead_off)+k1*Range
SellLine=security(syminfo.tickerid,"D",open,barmerge.lookahead_off)-k2*Range
plot(BuyLine,color=blue,linewidth=2,offset=1,transp=70)
plot(SellLine,color=red,linewidth=2,offset=1,transp=70)


LongCondition=crossover(close,BuyLine)
ShortCondition=crossunder(close,SellLine)
strategy.entry("enter long",true,1,when=LongCondition)
strategy.entry("enter short",false,1,when=ShortCondition)
plotshape(LongCondition and strategy.position_size<0?low:na,style=shape.labelup,location=location.absolute,color=blue,text="Long",textcolor=white,size=size.small)
plotshape(ShortCondition and strategy.position_size>0?high:na,style=shape.labeldown,location=location.absolute,color=red,text="Short",textcolor=white,size=size.small)
alertcondition(LongCondition and strategy.position_size<0,title='Long_DT')
alertcondition(ShortCondition and strategy.position_size>0,title='Short_DT')

더 많은