
다중 평평 이동량 교차량 수량 전략은 동량에 기반한 교차 시스템으로, 단선 거래자를 위해 설계되었다. 이 전략의 핵심은 평평 이동 평균 필터와 빠른 신호 선 사이의 교차 관계를 사용하여 시장의 단기 운동량 변화를 포착하는 것이다. 이 전략은 “스칼핑 라인”이라는 사용자 정의 신호 선을 구성하고, 이 신호 선은 이중 평평 이동량 평균과 더 짧은 주기 신호 선 사이의 값을 계산함으로써 얻어진다. 이 신호 선이 0선을 상단 또는 아래로 통과하면, 이 전략은 거래 신호를 유발하며, 다중 및 공백 상장을 위한 명확한 규칙의 틀을 제공한다.
이 전략의 핵심 논리는 다음과 같은 몇 가지 핵심 컴퓨팅 구성 요소에 기반합니다.
주요 트렌드 필터이 전략은 먼저 두 배의 평평한 이동 평균을 계산합니다. 이 두 배의 평평한 처리는 가격 소음을 효과적으로 줄여주고 짧은 라인 거래 신호에 더 안정적인 기본 프레임 워크를 제공합니다.
% 필터위조 신호를 방지하기 위해, 정책은 사용자 정의 할 수 있는 비율 필터링 파라미터를 도입했다. 이 필터링 시스템은 이동 평균에서 벗어난 가격에 대한 “감각성”을 조정하여 중요하지 않은 가격 변동을 필터링하는 데 도움이됩니다.
신호선 계산: 짧은 주기의 간단한 이동 평균을 사용하여 (기본 7) 최근 가격 행동에 더 빠르게 반응할 수 있는 능력을 제공합니다.
Scalping Line (SLI) 계산: 핵심 신호선은 빠른 신호선과 평평한 이동 평균 사이의 차원으로 정의된다. SLI가 0점을 통과할 때 잠재적인 동력 전환을 나타냅니다:
거래 방향 제어이 전략은 다양한 거래 스타일에 맞게 다중 거래, 다중 거래 또는 양방향 거래로 구성할 수 있습니다.
신호 회전 옵션: 기본적으로, SLI가 아래로 0선을 통과할 때 다중 헤드 신호가 발생하고, 위로 0선을 통과할 때 공백 신호가 발생한다. 그러나 이 설정은 뒤집을 수 있으며, 시장 조건에 따라 동력 신호의 대체 해석을 허용한다.
시간 창 필터: 일일 거래자에게는 시간 필터를 활성화하여 특정 거래 시간대에 신호를 제한할 수 있습니다 (예: 오전 9시부터 오후 4시까지) 이는 거래가 하루 동안 매우 변동성이있는 자산에 특히 유용합니다.
코드 분석을 통해, 이 전략은 다음과 같은 중요한 장점을 가지고 있다고 결론을 내릴 수 있습니다.
간결하고 명확한 신호 시스템이 전략은 0선 교차를 주요 신호로 사용하여 거래자에게 명확하고 직관적인 진입 지점을 제공하고 해석상의 모호성을 줄인다.
고도의 사용자 정의이동 평균 주기와 필터링 비율에서 신호 방향과 시간 필터링에 이르기까지, 전략은 여러 가지 조정 가능한 매개 변수를 제공하여 거래자가 자신의 시장과 스타일에 따라 최적화 할 수 있습니다.
매우 적응력이 좋다: 비율 필터와 조정 가능한 평형 파라미터를 통해, 전략은 다양한 시장 변동 조건에 적응할 수 있으며, 높은 변동과 낮은 변동 환경 모두에서 효과를 유지할 수 있습니다.
시각적 피드백이 명확합니다.전략: 전략은 직관적인 시각적 지시를 제공하며, 제로 라인 레퍼런스, 기둥 도표 채우기 및 신호 표시를 포함하여 거래자가 잠재적인 거래 기회를 쉽게 식별 할 수 있도록합니다.
다 시장 적용성전략 논리는 간단하고 효과적이며 주식, 외환, 암호화폐 및 선물과 같은 여러 시장에 적용될 수 있으며, 특히 하루 내 충분한 변동성이있는 시장에 적합합니다.
유연한 시간 프레임 적응력: 1분에서 15분 차트에서 주로 짧은 라인 거래를 위해 설계되었지만, 파라미터를 조정함으로써 전략은 더 높은 시간 프레임의 스윙 거래를 적용 할 수 있습니다.
이 전략은 여러 장점이 있지만, 몇 가지 잠재적인 위험도 있습니다.
내장된 위험 관리의 부족전략은 주로 입문 신호에 초점을 맞추고, 내장된 위치 관리, 중지 손실 및 중지 규칙이 없습니다. 거래자는 자신의 위험 관리 스타일에 따라 이러한 규칙을 중첩해야합니다.
매개변수 민감도: 전략 성능은 매개 변수 설정에 크게 의존하며, 잘못된 매개 변수는 과도한 거래 또는 놓친 기회를 초래할 수 있습니다. 특정 시장 조건에 대한 매개 변수 최적화가 필요합니다.
잘못된 신호의 위험위기 시장이나 낮은 변동성 환경에서, 이 전략은 더 많은 가짜 신호를 만들어 불필요한 거래와 잠재적인 손실을 초래할 수 있습니다.
뒤처진 문제: 짧은 주기의 신호선을 사용했음에도 불구하고, 이동 평균은 본질적으로 다소 지연성이 있으며, 빠른 시장 전환점에 반응이 부족할 수 있다.
단일 지표 의존이 전략은 스칼핑 라인 지표에만 의존하여 결정을 내리고 다른 확인 지표의 지원이 없기 때문에 잘못된 신호의 위험을 증가시킬 수 있습니다.
이러한 위험을 해결하기 위한 방법은 다음과 같습니다.
코드의 심층적인 분석을 바탕으로, 이 전략에는 다음과 같은 몇 가지 잠재적인 최적화 방향이 있습니다:
리스크 관리 통합스톱로스 및 스톱스톱 로직을 전략에 직접 통합하여 ATR (Average True Range) 또는 고정된 비율을 기반으로 스톱로스 위치를 설정할 수 있으며, 리스크/이익 비율을 설정하여 수익 목표를 설정할 수 있습니다.
다중 시간 프레임 분석: 더 높은 시간 프레임의 트렌드 확인을 도입하여 주요 트렌드 방향으로만 거래하면 역동적인 거래의 위험을 크게 줄일 수 있습니다.
변동성 적응: ATR 또는 유사한 지표에 기반한 동적 매개 변수 조정을 추가하여 전략이 현재 시장의 변동성에 따라 신호 민감도를 자동으로 조정할 수 있도록 한다.
추가 필터: 교역량, 상대 강도 또는 다른 동력 지표를 통합하여 확인 도구로 사용하여 여러 지표가 일치하는 경우에만 거래하여 신호 품질을 향상시킵니다.
기계 학습 최적화: 머신 러닝 기술을 사용하여 최적의 변수 조합을 동적으로 선택하고, 다양한 시장 조건에 따라 전략 변수를 자동으로 조정한다.
입시 최적화: 0선 교차뿐만 아니라 극치 반전, 분산/결합 모드 등 더 복잡한 신호 모드도 고려할 수 있으며, 진입 정밀도를 높일 수 있다.
이러한 최적화는 전략의 안정성을 높이고, 가짜 신호를 줄이고, 다양한 시장 조건에서 전반적인 성능을 향상시킬 수 있다. 특히 위험 관리의 통합은 자본을 보호하고 장기적인 수익을 달성하는 데 중요합니다.
다중 평면 이동량 교차량화 전략은 정확하고 유연한 단선 거래 방법을 제공하며, 특히 일일 거래자와 단선 거래자에게 적합합니다. 이중 평면 이동 평균, 적응 필터 및 유연한 신호 옵션을 결합하여 거래자가 단기 동력 전환을 명확하고 자신있게 식별 할 수 있도록 도와줍니다.
전략의 핵심 장점은 그것의 단순성과 적응성이어서 짧은 라인 트레이딩 툴킷에서 강력한 도구가 됩니다. 그러나, 최적의 효과를 얻기 위해, 거래자는 적절한 위험 관리 규칙을 추가하고, 철저한 피드백을 수행하고, 특정 시장 조건에 따라 변수를 조정하는 것을 고려해야합니다.
위와 같은 최적화 제안을 통해, 특히 위험 관리와 다중 지표 확인을 통합함으로써, 이 전략은 잠재적인 거래 기회를 식별할 수 있을 뿐만 아니라 자본을 보호하고 다양한 시장 환경에서 지속적인 성공을 거둘 수 있는 보다 포괄적이고 안정적인 거래 시스템이 될 잠재력을 가지고 있습니다.
/*backtest
start: 2024-08-22 00:00:00
end: 2025-08-19 08:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Binance","currency":"ETH_USDT","balance":500000}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nirnaykhatri - Strategy Version (Based on Scalping Line Indicatory By KivancOzbilgic)
//@version=6
strategy("Scalping Line Strategy", overlay=false)
// ═══════════════════════════════════════════════════════════════════════════════
// 📊 INPUT PARAMETERS
// ═══════════════════════════════════════════════════════════════════════════════
// === Core Indicator Settings ===
src = input.source(close, title="Source", group="📈 Core Settings")
percent = input.float(1.0, "Percent Filter", step=0.1, minval=0, group="📈 Core Settings", tooltip="Percentage threshold for signal filtering")
mainperiod = input.int(100, "Main Period", minval=1, group="📈 Core Settings", tooltip="Main moving average period")
signalperiod = input.int(7, "Signal Period", minval=1, group="📈 Core Settings", tooltip="Signal line moving average period")
// === Strategy Configuration ===
tradeDirection = input.string("Both", "Trade Direction", options=["Long Only", "Short Only", "Both"], group="🎯 Strategy Settings")
flipSignals = input.bool(false, "Flip Entry Signals", group="🎯 Strategy Settings", tooltip="When enabled: Long on cross above zero, Short on cross below zero. When disabled: Long on cross below zero, Short on cross above zero")
enableLongs = tradeDirection == "Long Only" or tradeDirection == "Both"
enableShorts = tradeDirection == "Short Only" or tradeDirection == "Both"
// === Signal Filtering ===
enableTimeFilter = input.bool(false, "Enable Time Filter", group="🕒 Signal Filters")
startHour = input.int(9, "Start Hour", minval=0, maxval=23, group="🕒 Signal Filters")
endHour = input.int(16, "End Hour", minval=0, maxval=23, group="🕒 Signal Filters")
// ═══════════════════════════════════════════════════════════════════════════════
// 🔧 CORE CALCULATIONS (Original Indicator Logic)
// ═══════════════════════════════════════════════════════════════════════════════
// Calculate the main moving average with double smoothing
MA = ta.sma(ta.sma(src, math.ceil(mainperiod / 2)), math.floor(mainperiod / 2) + 1)
// Apply percentage-based signal smoothing
ssMA = MA > close + MA * percent / 100 ? MA : MA < close - MA * percent / 100 ? MA : close
// Calculate signal line
signalline = ta.sma(close, signalperiod)
// Calculate the Scalping Line Indicator (core signal)
ScalpLine = signalline - ssMA
// ═══════════════════════════════════════════════════════════════════════════════
// 📈 ORIGINAL INDICATOR VISUALS (Preserved)
// ═══════════════════════════════════════════════════════════════════════════════
// Plot the original indicator
k1 = plot(ScalpLine, "SLI", color.maroon, 2)
k2 = plot(0, "", color=color.gray)
// Original color logic and fill
color1 = ScalpLine >= 0 ? color.green : color.red
fill(k1, k2, color=color.new(color1, 80))
// ═══════════════════════════════════════════════════════════════════════════════
// 🎯 TRADING LOGIC & SIGNAL GENERATION
// ═══════════════════════════════════════════════════════════════════════════════
// Time filter logic
inTimeWindow = not enableTimeFilter or (hour >= startHour and hour <= endHour)
// Signal generation with crossover detection
longSignal = (flipSignals ? ta.crossover(ScalpLine, 0) : ta.crossunder(ScalpLine, 0)) and enableLongs and inTimeWindow
shortSignal = (flipSignals ? ta.crossunder(ScalpLine, 0) : ta.crossover(ScalpLine, 0)) and enableShorts and inTimeWindow
// ═══════════════════════════════════════════════════════════════════════════════
// 🚀 STRATEGY EXECUTION (Following BB-Strategy Pattern)
// ═══════════════════════════════════════════════════════════════════════════════
// Simple strategy entries following BB-Strategy pattern
if (longSignal)
strategy.entry("Long", strategy.long, comment="Long Entry")
else
strategy.cancel(id="Long")
if (shortSignal)
strategy.entry("Short", strategy.short, comment="Short Entry")
else
strategy.cancel(id="Short")
// ═══════════════════════════════════════════════════════════════════════════════
// 🎨 VISUAL INDICATORS (Simple and Clean)
// ═══════════════════════════════════════════════════════════════════════════════
// Plot entry signals
plotshape(longSignal, title="Long Entry", style=shape.triangleup, location=location.belowbar, color=color.lime, size=size.small)
plotshape(shortSignal, title="Short Entry", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Zero line for reference
hline(0, title="Zero Line", color=color.gray, linestyle=hline.style_solid)