
이 전략은 여러 기술 지표들을 결합하여 은행 니프티의 단기 경향을 판단하여 구매 또는 판매 신호를 발송한다. 주로 사용되는 기술 지표는 MACD, RSI, ADX, Stochastic 및 브린 밴드이다. 전략은 은행 니프티_베어리시_인트라데이 이라고 불리며, 은행 니프티의 단기 베어리시 경향을 판단하는 데 주로 사용된다.
이 전략의 핵심 논리는 MACD, RSI, ADX, Stochastic, 그리고 브린 밴드와 같은 여러 지표가 동시에 오버 소드 신호를 표시할 때, 다가가기 신호를 발산하는 것입니다. 5개의 K 선이 종결 가격에서 5일선을 통과할 때, 평소 상태 신호를 발산하는 것입니다.
구체적으로, MACD의 5분, 15분, 60분 모두 상위 K선보다 낮아 세 차례의 주기적 추세를 나타냅니다. RSI는 40보다 낮아 과매매를 나타냅니다. ADX는 12보다 높으면 추세가 형성되기 시작한다는 것을 나타냅니다.
포지션의 평소 포지션 신호는 5분 K선 종결 가격에 5일 평균선을 뚫을 때, 단기 트렌드가 반전될 수 있음을 나타내는, 이 때 포지션을 평정한다.
여러 시간 주기에서의 K선 지표를 조합함으로써 단기 경향을 더 정확하게 판단하고, 일부 잡음을 필터링할 수 있다. 또한, 단편 거래의 위험을 제어할 수 있는 스톱 로즈 평점도 설정할 수 있다.
이 전략의 가장 큰 장점은 지표 포트폴리지가 포괄적이어서 단기 트렌드를 정확하게 판단할 수 있다는 것입니다. 특히 고주파 거래에 적합합니다. 구체적인 장점은 다음과 같습니다:
이 지표는 여러 시간 주기의 지표와 결합되어 보다 정확한 판단을 할 수 있습니다.
단편 거래 손실을 제한하는 스톱로스를 설정합니다.
거래 빈도가 높고 적극적인 단선 거래자에게 적합하다.
이 전략의 주요 위험은 지표 조합이 너무 복잡하여 신호 불일치가 발생할 수 있다는 것입니다. 또한, 고주파 거래는 개별 손실이 제한되어 있지만, 전체 거래 횟수가 더 많고 수수료가 더 높습니다. 주요 위험은 다음과 같습니다:
이러한 위험들을 대응하기 위해 우리는 지표 포트폴리오를 적절히 단순화하고, 스톱로스 위치를 조정하고, 거래 당 자본 점유율을 통제할 수 있습니다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
지표 변수를 조정하여 구매 및 판매 신호의 정확성을 최적화합니다.
거래량 지표와 같은 다른 보조적인 판단 지표를 추가하여 충분한 트렌드 신뢰를 확보한다.
시장의 변동에 따라 동적 상쇄 손실을 설정하고 조정합니다.
크로스 사이클 분석을 통해 핵심 지지부진을 판단한다.
변동성 및 위험 관리 규칙에 따라 포지션 규모 전략을 수립하십시오.
다양한 파라미터 설정을 테스트하고, 판단 차원을 추가하는 등의 최적화를 통해 이 전략을 더욱 안정적으로 신뢰할 수 있다.
이 단기 거래 전략은 단일 K 라인 다중 지표 조합을 통해 판단하여 높은 빈도 출전을 달성한다. 장점은 단기 동력을 정확하게 포착하고 위험을 제어하는 것; 단점은 복잡한 신호, 높은 수수료 비용이다. 우리는 파라미터를 조정하고, 더 많은 보조 판단을 추가하고, 동적 스톱로스를 설정하고, 크로스 사이클 분석과 같은 방법을 사용하여 전략을 더 실용적으로 만들 수 있습니다.
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
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/
// © makarandpatil
// This strategy is for Bank Nifty instrument and for intraday purpose only
// It checks for various indicators and gives a sell signal when all conditions are met
// Bank Nifty when in momentum gives 100-200 points in spot in 5-15 min which is how long the trade duration should be
// Issues - The custom script as per TradingView Pinescripting has an issue of repaint
// More information on repainting issue in this link - https://www.tradingview.com/pine-script-docs/en/v5/concepts/Repainting.html
// Use the script alert only to get notified, however check all the parameters individually before taking the trade
// Also, please perform a backtesting and deep backtesting of this strategy to see if the strategy gave correct buy signals in the past
// The script is made for testing purposes only and is in beta mode. Please use at own risk.
//@version=5
strategy("BankNifty_Bearish_Intraday", overlay=true, margin_long=100, margin_short=100)
// Variables
StochLength = input(14, title="Stochastic Length")
smoothK = input(3, title="%K Smoothing")
smoothD = input(3, title="%D Smoothing")
//INDICATOR CALCULATIONS
// 1. MACD
[macdLine, signalLine, histLine] = ta.macd(close[0],12,26,9)
macd5 = request.security(syminfo.tickerid, "5", macdLine)
macd15 = request.security(syminfo.tickerid,"15",macdLine)
macd60 = request.security(syminfo.tickerid,"60",macdLine)
// 2. RSI Calculation
xRSI = ta.rsi(close, 14)
// 3. ADX calculation
[diplus, diminus, adx] = ta.dmi(14,14)
// 4. Stochastic Calculation
k = ta.sma(ta.stoch(close, high, low, StochLength), smoothK)
d = ta.sma(k, smoothD)
// 5. Bollinger Band calculation
[middle, upper, lower] = ta.bb(close, 20, 2)
//CONDITIONS
// 1. Conditions for MACD
macd5Downtick = macd5[0] < macd5[1]
macd15Downtick = macd15[0] < macd15[1]
macd60Downtick = macd60[0] <= macd60[1]
// 2. Condition for xRSI
RSIWeak = xRSI < 40
// 3. Condition for ADX
ADXUngali = adx >= 12
// 4. Condition for Stochastic
StochNCO = k < d
// 5. Condition for Bollinger Band
BBCD = lower < lower [1]
//Evaluate the short condition
shortCondition = macd5Downtick and macd15Downtick and macd60Downtick and RSIWeak and ADXUngali and StochNCO and BBCD
// shortCondition = macd5Downtick and macd15Downtick and RSIWeak and ADXUngali and StochNCO
if (shortCondition)
strategy.entry("Short", strategy.short, alert_message = "BankNifty_Sell_Momentum")
longCondition = close > ta.ema(close,5)
if (longCondition)
strategy.entry("ShortSquareoff", strategy.long, alert_message = "BankNifty_Closed_Above_5EMA")