
이 전략은 가격의 동력을 기반으로 K선 엔티티와 그림자 선의 비율을 계산하여 RSI 지표와 결합하여 시장의 과매매 상태를 판단하고 역전 기회를 찾고 거래를 한다. 주로 짧은 라인 거래에 사용되며, 짧은 라인의 가격 동력의 역전점을 추적하여 더 높은 승률을 얻는다.
이 전략의 핵심 논리는 다음과 같습니다.
K선의 실물 비율과 그림자 비율을 계산한다: 각 K선의 오픈, 클로즈, 하이, 로우 가격을 계산하여 실물과 그림자 선이 차지하는 비율을 얻는다. 그림자 선의 비율이 20% 미만일 때, 강한 K선으로 간주한다.
K선 강도 변화 비율을 계산한다: 각 K선 내부 가격 변화의 폭을 계산하여 K선의 강점을 판단한다. 변화의 폭이 상대적으로 커지면 동력이 강하다는 것을 나타내고, 강한 K선으로 판단한다.
RSI 지표와 결합하여 과매매를 판단합니다. RSI의 과매매 라인을 설정합니다. RSI가 과매매 라인을 초과하면 과매매, RSI가 과매매 라인을 초과하면 과매매입니다.
판단 역전 신호: 그림자 선 비율이 20% 미만이고 K 선의 강도가 평균의 2배 이상이고, 상위 K 선의 종전 가격이 현재 K 선보다 높을 때, 역전 조건을 충족시킨다는 것을 나타냅니다. 반대로 종전 가격이 현재 K 선보다 낮을 때 더 많이 한다.
스톱 손실 스톱을 설정: 다중 코카이 신호에 대해 각각 고정 비율의 스톱 손실 및 스톱 스톱을 설정한다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
K선 실체와 그림자 선의 비율을 이용한 경향과 반전을 판단하는 능력이 강하다. 가격의 동력과 반전을 효과적으로 판단할 수 있다.
K선 강도 변화와 RSI 지표를 결합하여 역전 신호의 정확도가 높습니다. RSI의 매개 변수는 조정할 수 있으며 최적화 할 여지가 있습니다.
스톱로스 스톱은 합리적으로 설정되어 단편 거래의 위험을 줄여주고 단편 거래의 기회를 잡을 수 있습니다.
정책 파라미터를 조정할 수 있는 유연성, 다양한 품종, 주기별로 최적화할 수 있으며, 실용성이 강하다.
이 전략에는 다음과 같은 위험이 있습니다.
강점 돌파할 때, 가짜 신호가 발생하여 거래 실패로 이어질 수 있다. K선 비교 주기 및 RSI 파라미터를 최적화하여 줄일 수 있다.
역전 실패의 확률도 존재하며, 하락하는 경우의 상수와 상승하는 경우의 공이 모두 적용된다. 적당히 중지 지점을 조정하여 손실을 줄여야 한다.
효과는 거래 품종과 시간 주기와 관련이 있다. 변동성이 불안정한 품종에 대해서는 신중하게 이 전략을 사용한다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
K선 비교의 근수를 최적화하여 오버 바이 오버 셀의 주기 변수 조합을 가장 잘 판단한다.
RSI의 오버 바이 오버 세일 라인을 최적화하여 다양한 품종에 대한 최적의 매개 변수를 결정한다.
다양한 스톱 스톱 비율 설정을 테스트하여 최적의 스톱 스톱 전략을 결정합니다.
거래 품종에 대해 변동률에 따라 그룹을 최적화하여 전략 매개 변수를 더 타깃하게 만듭니다.
다른 지표 판단과 필터링 조건을 추가하여 전략의 안정성을 향상시킵니다.
이 전략은 전반적으로 매우 실용적이며, K선 정보의 응용을 통해 가격 동력 반전점을 판단하는 전형적인 단선 거래 전략이다. 최적화 공간이 넓고, 다양한 품종과 거래 환경에 맞게 조정할 수 있으며, 추적에서 단선 가격 경향에서 더 효과적이다. 그러나 주의를 기울여야 한다.
/*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 )