이것은 비트코인 및 골드 시장의 단기 가격 변동과 변동성을 포착하여 수익을 창출하는 것을 목표로 하는 5분짜리 스칼핑 전략입니다. 이 전략은 EMA 라인, 볼링거 밴드 지표 및 스톱 로스 방법을 사용하여 트레이드를 입력하고 종료하는 것을 결합합니다.
이 전략은 트렌드 판단 시스템을 구축하기 위해 빠른 EMA와 느린 EMA 지표를 사용합니다. 빠른 EMA가 느린 EMA를 넘을 때 구매 신호가 생성됩니다. 빠른 EMA가 느린 EMA를 넘을 때 판매 신호가 생성되며 단기 트렌드의 전환을 포착합니다.
동시에, 전략은 가격 변동 범위를 판단하기 위해 볼링거 밴드 지표를 포함합니다. 거래 신호는 가격이 볼링거 밴드의 상부 또는 중간 레일 근처에있을 때만 생성됩니다. 이것은 대부분의 잘못된 신호를 필터링합니다.
시장에 진입한 후 전략은 ATR 지표를 사용하여 스톱 로스 가격을 계산합니다. 스톱 로스는 각 거래의 위험을 제어하는 데 사용되는 엔트리 바 마이너스 n 곱하기 ATR의 최저에 설정됩니다.
이 전략의 가장 큰 장점은 단기 변동과 가격 변동성을 포착하여 항상 작지만 일관된 이윤을 취하는 것입니다. 빠른 EMA와 느린 EMA의 조합은 단기 트렌드를 신속하게 결정할 수 있습니다. 볼링거 밴드 및 ATR 스톱 로스는 위험을 효과적으로 제어 할 수 있으며 비교적 안정적인 스칼핑 전략입니다.
또한 5분 시간 프레임은 거래 빈도가 높아지면서 수익 잠재력이 확대되고 수동 모니터링이나 최적화를 촉진합니다.
이 전략의 주요 위험은 여러 개의 작은 손실로 이어지는 윙사에서 발생합니다. 가격이 범위 내에서 변동 할 때 EMA 크로스오버 신호가 자주 발생하여 불필요한 거래와 연속적인 작은 손실이 발생할 수 있습니다.
또한, 단기적인 스칼핑 전략으로서, 높은 거래 빈도에 의해 발생하는 거래 비용의 위험도 직면합니다. 과도하게 높은 거래 비용은 이윤 마진을 침식시킬 수 있습니다.
전략은 다음과 같은 방법으로 최적화 될 수 있습니다.
오시일레이터 시장에 갇히지 않도록 RSI, 스토카스틱 등 보조 판단 지표로 다른 오시일레이터를 추가하십시오.
트렌드 방향을 판단하고 입력 정확도를 향상시키기 위해 기계 학습 모델을 증가시킵니다.
유전 알고리즘, 무작위 숲 및 다른 방법을 사용하여 현재 시장 조건에 더 잘 맞게 매개 변수를 자동으로 최적화합니다.
딥러닝을 적용하여 주요 지원 및 저항 수준을 결정하고 더 나은 스톱 로스 포지션을 설정합니다.
주식 지수, 외환, 암호화폐 등과 같은 다양한 거래 차량을 테스트하고 가장 좋은 거래 성능을 가진 것을 주요 거래 차량으로 선택하십시오.
요약하자면, 단기 빈번한 거래 전략으로서, 이 전략은 단기 가격 변동과 트렌드 반전을 효과적으로 포착할 수 있으며, 빠른 EMA를 사용하여 판단하고, 볼링거 밴드를 사용하여 필터하고, ATR을 사용하여 위험을 제어하여 안정적인 이익을 허용합니다. 수익성을 유지하면서 거래 빈도를 줄이기 위해 더 이상 최적화되고 개선되면 매우 유망한 양적 전략이 될 것입니다.
/*backtest start: 2023-12-19 00:00:00 end: 2024-01-10 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © singhak8757 //@version=5 strategy("Bitcoin and Gold 5min Scalping Strategy2.0", overlay=true) // Input parameters fastLength = input(5, title="Fast EMA Length") slowLength = input(13, title="Slow EMA Length") bollingerLength = input(20, title="Bollinger Band Length") bollingerMultiplier = input(2, title="Bollinger Band Multiplier") stopLossMultiplier = input(1, title="Stop Loss Multiplier") // Calculate EMAs fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) // Calculate Bollinger Bands basis = ta.sma(close, bollingerLength) upperBand = basis + bollingerMultiplier * ta.stdev(close, bollingerLength) lowerBand = basis - bollingerMultiplier * ta.stdev(close, bollingerLength) // Buy condition buyCondition = ta.crossover(fastEMA, slowEMA) and (close <= upperBand or close <= basis) // Sell condition sellCondition = ta.crossunder(fastEMA, slowEMA) and (close >= lowerBand or close >= basis) // Calculate stop loss level stopLossLevel = ta.lowest(low, 2)[1] - stopLossMultiplier * ta.atr(14) // Plot EMAs plot(fastEMA, color=color.rgb(0, 156, 21), title="Fast EMA") plot(slowEMA, color=color.rgb(255, 0, 0), title="Slow EMA") // Plot Bollinger Bands plot(upperBand, color=color.new(#000000, 0), title="Upper Bollinger Band") plot(lowerBand, color=color.new(#1b007e, 0), title="Lower Bollinger Band") // Plot Buy and Sell signals plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar) plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar) // Plot Stop Loss level plot(stopLossLevel, color=color.orange, title="Stop Loss Level") // Strategy logic strategy.entry("Buy", strategy.long, when = buyCondition) strategy.exit("Stop Loss/Close", from_entry="Buy", loss=stopLossLevel) strategy.close("Sell", when = sellCondition)