
윌리엄스어 지표 가격과 하반을 교차하는 양적 거래 전략은 기술 분석에 기반한 자동 거래 시스템으로, 핵심 논리는 가격과 윌리엄스어 지표의 “하반선” (Jaw) 의 교차 관계를 사용하여 입출입과 출구 신호를 식별하는 것이다. 이 전략은 간단한 이동 평균 (SMA) 을 사용하여 상어 지표의 3개의 선을 구성한다 (하반, 이빨, 입술), 가격 상하 하반선을 통과할 때 더 많은 위치를 열고, 가격 하반선을 통과할 때 빈 위치를 열는다. 이 전략은 또한 위험을 제어하고 수익을 잠금하기 위해 퍼센트 기반의 중지 및 중지 장치를 설정한다.
빌 윌리엄스 (Bill Williams) 가 만든 기술 지표로, 세 개의 평평한 이동 평균으로 구성되어 있으며, 각각 상하 (Jaw), 이빨 (Teeth) 및 입술 (Lips) 을 나타냅니다. 이 전략에서 세 개의 선의 계산 방법은 다음과 같습니다.
전략의 핵심 거래 논리는 다음과 같습니다.
이 전략의 이론적 근거는, 가격이 이동 평균과 교차할 때, 일반적으로 시장 추세의 전환을 나타냅니다. 특히, 가격이 상단으로 갈 때, 상승 경향의 시작을 예고 할 수 있습니다. 가격이 하단으로 갈 때, 하향 경향의 시작을 예고 할 수 있습니다.
간단하고 직관적이죠.전략 규칙은 명확하고 이해하기 쉽고 실행할 수 있다. 가격과 이동 평균의 교차를 신호로 사용하는 것은 고전적이고 직관적인 기술 분석 방법이다.
트렌드를 따르는 특성이 전략은 가격과 하위선과의 교차점을 따라 시장의 큰 추세 변화를 포착하여 부진 거래에 도움이 됩니다.
적응력: 윌리엄스어 지표의 세 줄은 서로 다른 주기와 편차를 가지고 있으며, 이는 시스템이 서로 다른 시간 프레임의 시장 변동에 대응할 수 있도록 해준다.
개선된 위험 관리이 전략은 스톱 로즈와 스톱 스톱 메커니즘을 내장하고 있으며, 비율을 설정하여 다양한 시장 환경과 개인 위험 선호도에 따라 조정할 수 있으며, 거래 당 위험 노출을 효과적으로 제어합니다.
시각적 피드백: 코드는 구매 및 판매 신호에 대한 그래픽 표시를 포함하고, 거래자가 전략의 작동을 직관적으로 볼 수 있도록하고, 추적 및 분석을 용이하게 합니다.
변수는 조정할 수 있습니다전략은 사용자가 낚시선의 길이와 오차, 그리고 중지 및 중지의 비율을 조정할 수 있도록 허용하여 전략이 다른 시장 조건과 거래 스타일에 적응할 수 있습니다.
가짜 침입 위험수평 정리 또는 높은 변동 시장에서 가격이 하위 선을 자주 통과하여 많은 가짜 신호를 발생시키고 거래 비용을 증가시키고 연속적인 손실을 초래할 수 있습니다.
뒤처진 문제: 이동 평균을 사용 하 고 오차 설정이 있기 때문에, 전략은 신호 발생에 약간의 지연성을 가지고 있으며, 최적의 입구 지점을 놓칠 수 있습니다. 또는 트렌드가 소모되었을 때 신호를 생성 할 수 있습니다.
시장 적응성의 한계이 전략은 강세를 보이는 시장에서 잘 작동하지만, 흔들리는 시장이나 빠르게 변하는 시장 환경에서는 잘 작동하지 않을 수 있습니다.
고정 손해 차단 장치의 한계고정된 비율의 스톱과 스톱을 사용하는 것은 모든 시장 환경에 적합하지 않을 수 있으며, 높은 변동률의 시장에서 스톱은 너무 꽉 차있을 수 있으며, 낮은 변동률의 시장에서 스톱은 너무 느슨할 수 있습니다.
변수 최적화 함수과도한 최적화 전략의 매개 변수는 과도한 적합성을 초래할 수 있으며, 이는 전략이 역사적인 데이터에서 잘 작동하지만 미래의 실제 디스크에서는 잘 작동하지 않습니다.
해결책:
신호 확인 메커니즘예를 들어, 가격에서 하향선과 하향선이 이빨선과 입술선 위에 있을 때만 다중 신호를 생성한다. 이것은 가짜 신호를 줄이고 전략의 안정성을 높일 수 있다.
동적 정지: 시장의 변동률 (ATR 지표와 같은) 을 기반으로 중지 및 중지 수준을 설정합니다. 고정된 퍼센티지를 사용하는 대신. 이것은 위험 관리를 현재의 시장 환경에 더 적합하게 만들 수 있습니다. 변동이 큰 경우 더 느슨한 중지, 변동이 적은 경우 더 긴밀한 중지 설정.
트렌드 필터: 더 긴 주기의 이동 평균 또는 ADX 지표와 같은 추가적인 트렌드 필터링 메커니즘을 도입하여 주요 트렌드 방향으로만 거래하십시오. 예를 들어, 200 일 이동 평균이 올라갈 때만 더 많이하고, 아래로 갈 때 공백을하십시오.
포지션 관리 최적화: 위험 기반의 포지션 관리를 실시하여, 매 거래의 포지션 크기는 고정된 포지션이 아닌, 현재 시장의 변동성과 계좌의 위험 수용력에 따라 조정됩니다.
시간 필터시간 필터를 추가하는 것을 고려하고, 시장의 개시, 폐지 또는 중요한 보도 발표 기간 동안 거래하는 것을 피하십시오. 이러한 기간은 일반적으로 큰 변동과 불안정합니다.
탈퇴 전략의 다양성: 하향선 교차에 기반한 탈퇴 신호 외에도, 다른 기술 지표에 기반한 탈퇴 조건을 추가하여 다양한 시장 환경에 더 유연하게 적응할 수 있습니다.
제어장치 철회: 전략 철회에 기반한 거래 정지 메커니즘을 추가하여, 전략의 연속적인 손실이 특정 하위값에 도달했을 때, 돈을 보호하기 위해 거래를 일시 중지하거나 포지션을 줄인다.
이러한 최적화 방향의 핵심 목표는 전략의 안정성과 적응성을 높이고, 잘못된 신호를 줄이고, 위험 관리를 최적화하고, 다양한 시장 환경에서 전략이 상대적으로 안정적인 성능을 유지할 수 있도록 하는 것입니다.
윌리엄스어 지표 가격과 하향을 교차하는 수량 거래 전략은 기술 분석 기반의 트렌드 추적 시스템으로 가격과어 지표 하향의 교차를 포착하여 거래 신호를 생성합니다. 이 전략은 규칙이 간단하고 직관적으로 이해하기 쉬운 장점을 가지고 있으며, 위험 관리 장치가 내장되어 있으며, 트렌드 추적 거래의 기본 프레임 워크로 적합합니다.
그러나, 이 전략은 또한 가짜 돌파의 위험, 신호 지연 등과 같은 제한을 가지고 있다. 전략의 안정성과 적응력을 높이기 위해, 신호 확인 메커니즘, 동적 손해 막기, 트렌드 필터와 같은 최적화 조치를 추가하는 것을 고려할 수 있다. 또한, 다른 시장 환경의 도전에 대응하기 위해 더 나은 포지션 관리 및 철회 제어 장치를 구현할 수 있다.
전체적으로, 이것은 더 복잡한 거래 시스템을 구축하는 데 적합한, 견고한 이론적 기반을 가진 정량 거래 전략입니다. 합리적인 파라미터 최적화 및 전략 개선으로, 다양한 시장 환경에서 안정적인 수익을 창출 할 잠재력이 있습니다.
/*backtest
start: 2024-07-08 00:00:00
end: 2025-06-01 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Williams Alligator Price vs Jaw Strategy", overlay=true)
// Alligator Indicator Parameters
jawLength = input(13, "Jaw Length")
jawOffset = input(8, "Jaw Offset")
teethLength = input(8, "Teeth Length")
teethOffset = input(5, "Teeth Offset")
lipsLength = input(5, "Lips Length")
lipsOffset = input(3, "Lips Offset")
// Calculate Alligator Lines (Smoothed Moving Averages)
jaw = ta.sma(close, jawLength)[jawOffset]
teeth = ta.sma(close, teethLength)[teethOffset]
lips = ta.sma(close, lipsLength)[lipsOffset]
// Plot Alligator Lines
plot(jaw, color=color.blue, title="Jaw")
plot(teeth, color=color.red, title="Teeth")
plot(lips, color=color.green, title="Lips")
// Define Conditions for Buy and Sell Signals
// Buy: Price crosses above Jaw
buySignal = ta.crossover(close, jaw)
// Sell: Price crosses below Jaw
sellSignal = ta.crossunder(close, jaw)
// Strategy Logic
if (buySignal)
strategy.entry("Long", strategy.long)
if (sellSignal)
strategy.entry("Short", strategy.short)
// Optional: Set stop loss and take profit
stopLoss = input.float(2.0, "Stop Loss %", step=0.1)
takeProfit = input.float(5.0, "Take Profit %", step=0.1)
strategy.exit("Exit Long", "Long", stop=strategy.position_avg_price * (1 - stopLoss/100), limit=strategy.position_avg_price * (1 + takeProfit/100))
strategy.exit("Exit Short", "Short", stop=strategy.position_avg_price * (1 + stopLoss/100), limit=strategy.position_avg_price * (1 - takeProfit/100))
// Plot Buy and Sell Signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)