이 전략은 촛불 몸/위크 비율을 계산하고 RSI 지표를 결합하여 과잉 구매/ 과잉 판매 시장 조건을 감지하여 거래 기회를 식별합니다. 이는 단기에서 중기 기간 동안 가격 동력의 잠재적 인 반전을 포착하는 것을 목표로합니다.
이 전략의 핵심 논리는 다음을 기반으로 합니다.
촛불의 몸 / wick 비율을 계산하십시오: 오픈, 클로즈, 하이 및 로우 가격을 계산하여 촛불 몸과 윙크가 차지하는 비율을 도출하십시오. 20% 이하의 윙크 비율은 강한 촛불을 나타냅니다.
촛불 강도 변화 비율을 계산: 촛불 강도를 결정하기 위해 각 촛불의 내부 가격 움직임 크기를 계산합니다. 더 큰 변동은 더 강한 모멘텀을 의미하므로 더 강한 촛불을 나타냅니다.
과잉 구매/ 과잉 판매 조건을 식별하기 위해 RSI와 결합: RSI를 위해 과잉 구매 및 과잉 판매 임계선을 설정하십시오. 과잉 구매 라인의 위의 RSI는 과잉 구매 상태를 의미하고 반대로 과잉 판매를 의미합니다. 그러한 상태에서 강한 촛불은 반전 가능성이 높습니다.
반전 신호를 결정합니다. 피크 비율이 < 20%이고 촛불 강도가 > 2 x 평균 강도면, 이전 촛불 닫기보다 높은 현 촛불 닫기와 함께 짧은 상태를 신호합니다. 반대는 긴 상태를 나타냅니다.
스톱 로스 및 수익을 정의하십시오: 고정된 비율에 기반한 스톱 로스 및 수익 수준을 설정하고 긴 거래와 짧은 거래를 별도로 취합니다.
이 전략의 장점은 다음과 같습니다.
촛불 몸 / wick 비율을 사용하여 트렌드 및 역전을 효과적으로 식별합니다. 가격 동력과 전환점을 잘 감지합니다.
촛불 강도 변화와 RSI를 결합하여 역전 신호의 정확도가 높습니다. RSI는 더 많은 최적화 능력을 제공하는 조정 가능합니다.
합리적인 스톱 로스/프로피트 취득 구성으로 단기적 기회를 활용하고 동시에 무역 위험 노출을 줄입니다.
다양한 제품과 시간 프레임에 최적화를 위해 파라미터의 유연한 조정성. 높은 실용적 유용성.
이 전략에 포함된 몇 가지 위험:
강력한 트렌드 브레이크 도중 잠재적 인 잘못된 신호. 촛불 비교 기간 및 RSI 매개 변수를 최적화하여 줄일 수 있습니다.
실패한 반전의 확률은 완전히 제거 될 수 없습니다. 하락 추세에서 길고 반대로 손실을 유발합니다. 손상을 최소화하기 위해 중지 손실은 그에 따라 조정되어야합니다.
성능은 제품과 시간 틀에 따라 다릅니다. 매우 휘발성 제품에는 주의가 필요합니다.
전략은 다음과 같은 방법으로 최적화 될 수 있습니다.
최적의 매개 변수 조합을 결정하기 위해 과소 구매/ 과소 판매를 식별하는 데 고려되는 미세 조정 기간.
제품 특성에 따라 과반 구매/ 과반 판매 RSI 임계치를 최적화합니다.
이상적인 리스크 관리 계획을 도출하기 위해 스톱 로스/이익 취득 비율을 테스트합니다.
보다 타겟화된 매개 변수 조정을 위해 변동성에 따라 제품을 분류하십시오.
다른 지표에 기반한 추가 필터는 견고성을 향상시킬 수 있습니다.
이 전략은 촛불 정보를 이해함으로써 반전을 감지하는 데 매우 실용적입니다. 전형적인 단기 거래 시스템으로서 중장기 트렌드를 추적하기 위해 제품과 환경에 걸쳐 상당한 최적화 능력을 가지고 있습니다. 그러나 중지 손실을 통해 적절한 위험 통제가 필수적입니다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("mecha larga study",overlay = true, max_bars_back = 600) //Porcentaje Mecha cuerpo bodyPercent = math.abs(open - close) / (high - low) * 100 wickPercent = 100 - bodyPercent plot(bodyPercent, "Porcentaje del cuerpo", color.rgb(163, 76, 175)) plot(wickPercent, "Porcentaje de la mecha", color.red) VelaDeFuerza = math.abs(((high[0] - low[0])*100)/high)//PORCENTAJE DE VARIACION DE UNA VELA plot(VelaDeFuerza, color = color.purple) Promedio = ((VelaDeFuerza[0] + VelaDeFuerza[1] + VelaDeFuerza[2] + VelaDeFuerza[3] + VelaDeFuerza[4] + VelaDeFuerza[5] + VelaDeFuerza[6] + VelaDeFuerza[7] + VelaDeFuerza[8] + VelaDeFuerza[9] + VelaDeFuerza[10] + VelaDeFuerza[11] + VelaDeFuerza[12] + VelaDeFuerza[13] + VelaDeFuerza[14] ) / 15) plot(Promedio, color = color.yellow) // rsi per_Rsi = input.int(14, "Periodo RSI",minval= 11, maxval=20) //inicializo el rsi en 14 periodos pero doy la posibilidad al usuario de cambiarlo rsi_Sc = input.int(75,"Sobre Compra",minval=68,maxval=80) //ENTRADA DE SOBRE COMPRA DE RSI rsi_Sv = input.int(25,"Sobre Venta",minval=20,maxval=33) //ENTRADA DE SOBRE VENTA DE RSI rsi= ta.rsi(close,per_Rsi)//guardo el rsi con los paramentros anteriores en una variable //logica MayorPromedio = Promedio + 0.800 plot(MayorPromedio, color = color.green) Venta = bodyPercent > 80 and VelaDeFuerza > Promedio * 2 and close < close[1] Compra = bodyPercent > 80 and VelaDeFuerza > Promedio * 2 and close > close[1] precioVenta = Venta? close : na precioCompra = Compra? close : na tp1 = 0.00 sl = 0.00 tp1 := 0.003 sl := 0.010 TP1short = precioVenta - (precioVenta * tp1) Slshort = precioVenta + (precioVenta * sl) TP1long = precioCompra + (precioCompra * tp1) SLlong = precioCompra - (precioCompra * sl) name1 = "tp1" name2 = "tp2" name3= "SL" if ( precioVenta ) strategy.entry("short", strategy.short , comment = "Sell SL: " + str.tostring(Slshort, "0.000") + " TP1: " + str.tostring(TP1short,"0.000") ) strategy.exit("exit" , "short", stop = Slshort , limit = TP1short ,qty_percent = 100 ) if ( precioCompra ) strategy.entry("long", strategy.long , comment = "Buy SL: " + str.tostring(SLlong, "0.000") + " TP1: " + str.tostring(TP1long,"0.000") ) strategy.exit("exit" , "long", stop = SLlong , limit = TP1long ,qty_percent = 100 )