
이 전략은 RSI, 평균 MACD, 브린 벨트 및 하락 인자를 종합적으로 활용하여 다중 인자 동적 순환 거래를 구현합니다. 전략은 먼저 여러 기술 지표가 동시에 구매 또는 판매 신호를 발령하는지 여부를 판단하고, 만약 그렇다면, 그에 따른 구매 또는 판매 작업을 수행합니다. 동시에, 전략은 수익을 잠금하고 위험을 제어하기 위해 이동 스톱 및 스톱을 사용합니다.
이 정책은 다음과 같은 부분들로 구성되어 있습니다.
판단 요인
출입과 출퇴근
전략 최적화
이 전략은 단일 기술 지표만을 고려하는 것이 아니라 RSI, MACD, TD 서열과 같은 여러 요인을 결합하여 단일 지표로 인한 잘못된 신호를 줄이고 진입의 정확성을 향상시킬 수 있습니다.
RSI, MACD와 같은 지표는 주가 가격의 트렌드 변화를 포착할 수 있는 더 분명한 동적 특성을 가지고 있다. 평균선과 같은 트렌드 추적 지표에 비해 이러한 지표는 전환에 더 민감하다.
이동식 스톱은 거래상황과 함께 동작상태로 스톱을 할 수 있으며, 이윤을 더 잘 잠금할 수 있다. 스톱 손실 설정은 단편 손실을 제어할 수 있다.
이 정책은 일반적인 기술 지표와 결합하여 보편성이 있습니다. 규칙은 비교적 간단하고 명확하며 이해하기 쉽고 작동합니다.
이 전략은 역시장 조작을 주력으로 하여 반전 전략에 속한다. 황소시장에서 이 전략을 적용하는 것은 빈번하게 중단될 수 있으며, 효과가 좋지 않다.
만약 변수가 너무 민감하게 설정되면 거래 빈도가 너무 높을 수 있으며 거래 비용과 슬라이드 포인트 손실이 증가할 수 있다.
이 전략은 여러 지표가 같은 방향 신호를 의존하지만, 때때로 각 지표가 분분하여 잘못된 신호를 발산할 수도 있다.
고정된 스톱포인트를 설정하면 뚫릴 수 있으며, 동적 스톱포인트를 설정하거나 주식을 변경하는 것을 고려하여 위험을 피할 수 있습니다.
RSI의 변수와 평균선의 주기 변수를 테스트하여 거래 빈도가 낮은 조합을 찾을 수 있다.
주식 자체의 통계적 특성, 즉 변동성, 유동성 등과 결합하여 매개 변수를 설정하여 전략의 효율성을 높일 수 있다.
VIX와 같은 범시장 공황 지수에 따라 전략의 매개 변수를 조정할 수 있으며, 시장 공황시 거래 빈도를 줄일 수 있다.
다양한 포지션 주기를 테스트하여 장기 보유 또는 단기 순환이 전략 효과에 미치는 영향을 판단할 수 있다.
더 발전된 동적 제약 제약 방법을 연구할 수 있고, 효과를 재검토할 수 있다.
이 전략은 여러 가지 기술 지표를 종합적으로 고려하여 높은 입점 정확도를 보장하는 데 기초하여 모바일 스톱 스톱을 사용하여 수익을 잠금하고 위험을 제어합니다. 전략 아이디어는 간단하고 이해하기 쉬운 작업이며, 매개 변수 최적화 및 지표 선호를 통해 효과를 더욱 향상시킬 수 있습니다. 그러나 이 전략은 역시장 및 충격 상황에 더 적합하며, 지속적인 상승 상황에서 효과는 떨어질 수 있습니다. 이 전략은 전형적인 다인자 동적 양 역전 전략으로, 주식 회전 거래에 대한 아이디어와 참조를 제공합니다.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("RSI, TD Seq, MACD, BB Strategy - Calculation Trailing Profit",overlay=true)
RSIDifference = input(-7, minval=-50, maxval=50, title="RSI Difference")
TD = close > close[4] ?nz(TD[1])+1:0
TS = close < close[4] ?nz(TS[1])+1:0
TDUp = TD - valuewhen(TD < TD[1], TD , 1 )
TDDn = TS - valuewhen(TS < TS[1], TS , 1 )
TDcheckUP = iff(TD == 2, true, false)
TDCheckDOWN = iff(TS == 2, true, false)
[_, _, histLine] = macd(close, 12, 26, 9)
MACDCheckDown = iff(histLine > 0 and histLine[1] > 0 and histLine[2] > 0 and histLine[3] > 0 and histLine[4] > 0, true, false)
MACDCheckUp = iff(histLine < 0 and histLine[1] < 0 and histLine[2] < 0 and histLine[3] < 0 and histLine[4] < 0, true, false)
RSICal = rsi(close, 14)
RSICalNewUp = 50 + RSIDifference
RSICalNewDown = 50 - RSIDifference
RSICheckUp = iff(RSICal <= RSICalNewUp, true, false)
RSICheckDown = iff(RSICal >= RSICalNewDown, true, false)
basis = sma(close, 20)
dev = 2 * stdev(close, 20)
upperBB = basis + dev
lowerBB = basis - dev
BBCheckUp = iff(close > upperBB, true, false)
BBCheckDown = iff(close < lowerBB, true, false)
//BBCheckUp = false
//BBCheckDown = false
BuyCheck = iff(TDcheckUP == true and MACDCheckUp == true and RSICheckUp == true and BBCheckUp == false, true, false)
SellCheck = iff(TDCheckDOWN == true and MACDCheckDown == true and RSICheckDown == true and BBCheckDown == false, true, false)
ProfitStratA = input(50, minval=0, maxval=10000, title="Profit", step=0.5)
ProfitTrailingA = input(10, minval=0, maxval=10000, title="Profit", step=0.5)
useStopLoss = input(false, title="Use Stop Loss?")
LossstratA = input(145, minval=0, maxval=10000, title="Stop Loss", step=0.5)
colB = input(100, minval=0, maxval=100, title="0-show / 100-hide Strategy", step=100)
ProfitStrat = ProfitStratA * 10
ProfitTrailing = ProfitTrailingA * 10
Lossstrat = useStopLoss ? LossstratA * 10 : 1000000
if (strategy.position_size > 0)
strategy.exit("BuyClose", "Buy", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
if (strategy.position_size < 0)
strategy.exit("SellClose", "Sell", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
if (BuyCheck == true and strategy.position_size == 0)
strategy.entry("Buy", strategy.long, comment="Long Entry")
if (SellCheck == true and strategy.position_size == 0)
strategy.entry("Sell", strategy.short, comment="Short Entry")
plotshape(BuyCheck, color=blue, transp=colB, style=shape.arrowup, text="Buy\n", location=location.belowbar)
plotshape(SellCheck, color=orange, transp=colB, style=shape.arrowdown, text="Sell\n", location=location.abovebar)