동력 및 공포 지수 크로스오버 전략

저자:차오장, 날짜: 2024-01-23 14:27:23
태그:

img

전반적인 설명

이 전략은 동력 지표와 공포 지표의 교차를 계산하여 시장 추세를 판단하고 두 지표가 급격한 하락을 잡기 위해 특정 교차를 할 때 판매 신호를 발행합니다.

전략 원칙

  1. 50주기 동력 지표를 계산합니다. 50주기 전과 비교하여 가격 변화를 나타냅니다.

  2. 22주기 수정된 공포 지수를 계산해 보세요. 가장 높은 가격과 가장 낮은 가격의 비율을 통해 시장 공황을 나타냅니다.

  3. 동력 지표가 공포 지표 아래를 넘으면 시장의 하향 압력을 나타냅니다.

  4. 만약 동력이 위험 영역 (-5와 5 사이) 에 계속 떨어지면 강력한 판매 신호가 발사됩니다.

이점 분석

  1. 시장 분위기의 지표인 공포 지수를 사용하면 시장의 구조적 변화를 효과적으로 결정할 수 있습니다.

  2. 동력 지표는 가격 변화의 속도와 크기를 판단하고 트렌드 변화를 결정하는 데 도움을 줄 수 있습니다.

  3. 두 가지 다른 유형의 지표를 결합하면 갑작스러운 사건을 식별하는 정확도를 향상시킬 수 있습니다.

  4. 매개 변수를 조정하면 다양한 시장 환경에 유연하게 적응할 수 있습니다.

위험 분석

  1. 공포 지수와 추진력의 교차는 모든 큰 감소를 보장하지 않습니다. 최종 결정을 내리기 위해 다른 지표가 고려되어야합니다.

  2. 판매 후 손해를 멈추지 않는 것은 손해를 효과적으로 통제하는 데 실패합니다.

  3. 역전과 재입구는 고려되지 않습니다. 이 전략은 갑작스러운 충돌을 포착하는 데만 적합합니다.

최적화 방향

  1. 손실을 통제하기 위해 판매 후 Stop Loss를 설정합니다.

  2. 신호 신뢰성을 판단하고 향상시키기 위해 다른 지표를 추가하십시오. 예를 들어 볼링거 밴드.

  3. 전략이 장기적인 주기를 실행할 수 있도록 재입구 신호를 추가합니다.

  4. 가장 좋은 매개 변수 조합을 찾기 위해 매개 변수를 최적화합니다.

요약

이 전략은 동력 지표와 공포 지수의 크로스오버를 통해 시장 하락 경보를 발행합니다. 갑작스러운 시장 붕괴를 효과적으로 포착 할 수 있습니다. 그러나 전략은 출구 메커니즘과 위험 통제 없이 단기 사용에 적합합니다. 지속 가능한 장기 전략으로 만들기 위해 추가 개선이 필요합니다.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gary_trades

//THIS SCRIPT HAS BEEN BUIL TO BE USED AS A S&P500 SPY CRASH INDICATOR (should not be used as a strategy).
//THIS SCRIPT HAS BEEN BUILT AS A STRATEGY FOR VISUALIZATION PURPOSES ONLY AND HAS NOT BEEN OPTIMISED FOR PROFIT.
//The script has been built to show as a lower indicator and also gives visual SELL signal on top when conditions are met. BARE IN MIND NO STOP LOSS, NOR ADVANCED EXIT STRATEGY HAS BEEN BUILT.
//As well as the chart SELL signal an alert has also been built into this script.
//The script utilizes a VIX indicator (marron line) and 50 period Momentum (blue line) and Danger/No trade zone(pink shading).
//When the Momentum line crosses down across the VIX this is a sell off but in order to only signal major sell offs the SELL signal only triggers if the momentum continues down through the danger zone.
//To use this indicator to identify ideal buying then you should only buy when Momentum line is crossed above the VIX and the Momentum line is above the Danger Zone. 
//This is best used as a daily time frame indicator

//@version=4
strategy(title="S&P Bear Warning", shorttitle="Bear Warning" )

//Momentum
len = input(50, minval=1, title="Length")
src = input(close, title="Source")
bandUpper = input( 5)
bandLower = input(-5)
// ————— Control plotting of each signal. You could use the same technique to be able to turn acc/dist on/off.
showVixFix = input(true)
showMomentum = input(true)
 
mom = src - src[len]
myAtr = atr(14)
plot(showMomentum ? mom : na, color=color.blue, title="MOM")
plot(showMomentum ? 0 : na, color=color.silver, title="MOM Zero line", style=plot.style_circles, transp=100)
plot(showMomentum ? myAtr : na, color=color.orange, title="ATR", transp=90)
 
//VIX
VIXFixLength = input(22,title="VIX Fix Length")
VIXFix = (highest(close,VIXFixLength)-low)/(highest(close,VIXFixLength))*100
plot(showVixFix ? VIXFix : na, "VIXFix", color=color.maroon)
 
band1 = plot(showVixFix ? bandUpper : na, "Upper Band", color.red, 1, plot.style_line, transp=90)
band0 = plot(showVixFix ? bandLower : na, "Lower Band", color.red, 1, plot.style_line, transp=90) 
fill(band1, band0, color=color.red, transp=85, title="Background")
 
//Identify Triggers
//Back Test Range
start = timestamp("America/New_York", 2000, 1, 1, 9,30)
end   = timestamp("America/New_York", 2020, 7, 1, 0, 0)

//Momentum 
Long1 = mom > bandUpper
Short1 = mom < bandLower
 
//VIX
Long2  = crossover(mom, VIXFix)
Short2 = crossunder(mom, VIXFix)

//Warning Alert
SellAlert = Short1
alertcondition(SellAlert, title="Sell SPY", message="Warning Selling off {{ticker}}, price= {{close}}") 

//Entry and Exit
if true
    strategy.entry("SELL", false, when = Short1)
 
strategy.close("SELL", when = Long2)

더 많은