یہ متعدد تکنیکی اشارے پر مبنی ریواسل ٹریڈنگ کی حکمت عملی ہے۔ یہ ممکنہ طویل اور مختصر تجارتی مواقع کی نشاندہی کرنے کے لئے سی سی آئی ، مومنٹم اشارے ، آر ایس آئی اور دیگر اشارے کو جوڑتا ہے۔ یہ حکمت عملی تجارتی سگنل تیار کرتی ہے جب اشارے اوور بک / اوور سیل سگنل دکھاتے ہیں اور قیمتیں پیچھے ہٹ جاتی ہیں۔
حکمت عملی کے تجارتی سگنل ایک کسٹم اشارے سے آتے ہیں جسے
طویل سگنل کے حالات:
مختصر سگنل کے حالات:
حکمت عملی کو باقاعدگی سے بولش / بیرش تغیرات تلاش کرنے کے لئے بھی تشکیل دیا جاسکتا ہے ، جب RSI قیمت سے نمایاں طور پر مختلف ہوتا ہے تو ہی تجارتی سگنل تیار کرتا ہے۔
جب ٹریڈنگ سگنل ٹرگر ہوتے ہیں تو ، حکمت عملی اسٹاپ نقصان کو انٹری قیمت ± 2ATR پر ، منافع کو انٹری قیمت ± 4ATR پر طے کرتی ہے۔ اس سے مارکیٹ کی اتار چڑھاؤ کی بنیاد پر معقول اسٹاپ نقصان اور منافع کی حد کی اجازت ملتی ہے۔
حل:
یہ حکمت عملی بنیادی طور پر رینج سے منسلک مارکیٹوں کے لئے کام کرتی ہے ، نسبتا ste مستحکم فوائد کے ل mid درمیانی مدتی الٹ پھیروں کو پکڑتی ہے۔ یہ قلیل مدتی قیمت کے پھیلاؤ کی نشاندہی کرنے میں مدد کرتا ہے اور متعدد اشارے کی بنیاد پر تجارتی سگنل تیار کرتا ہے۔ مناسب اصلاح اور رسک مینجمنٹ کے ساتھ ، اس کے فوائد کو مؤثر طریقے سے استعمال کیا جاسکتا ہے۔ پھر بھی الٹ پھیر ٹریڈنگ کی اندرونی کمزوریوں ، مضبوط رجحانات میں مسلسل نقصانات کے امکان سے آگاہ ہوں۔ مجموعی طور پر یہ حکمت عملی سرمایہ کاروں کے لئے موزوں ہے جن کے پاس کچھ مقدار اور رسک مینجمنٹ کا تجربہ ہے۔
/*backtest start: 2023-11-12 00:00:00 end: 2023-12-02 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/ // © MagicStrategies //@version=5 strategy("Reversal Indicator Strategy", overlay = true) // Input settings ccimomCross = input.string('CCI', 'Entry Signal Source', options=['CCI', 'Momentum'], tooltip='CCI or Momentum will be the final source of the Entry signal if selected.') ccimomLength = input.int(10, minval=1, title='CCI/Momentum Length') useDivergence = input.bool(true, title='Find Regular Bullish/Bearish Divergence', tooltip='If checked, it will only consider an overbought or oversold condition that has a regular bullish or bearish divergence formed inside that level.') rsiOverbought = input.int(65, minval=1, title='RSI Overbought Level', tooltip='Adjusting the level to extremely high may filter out some signals especially when the option to find divergence is checked.') rsiOversold = input.int(35, minval=1, title='RSI Oversold Level', tooltip='Adjusting this level extremely low may filter out some signals especially when the option to find divergence is checked.') rsiLength = input.int(14, minval=1, title='RSI Length') plotMeanReversion = input.bool(false, 'Plot Mean Reversion Bands on the chart', tooltip='This function doesn\'t affect the entry of signal but it suggests buying when the price is at the lower band, and then sell it on the next bounce at the higher bands.') emaPeriod = input(200, title='Lookback Period (EMA)') bandMultiplier = input.float(1.8, title='Outer Bands Multiplier', tooltip='Multiplier for both upper and lower bands') // CCI and Momentum calculation momLength = ccimomCross == 'Momentum' ? ccimomLength : 10 mom = close - close[momLength] cci = ta.cci(close, ccimomLength) ccimomCrossUp = ccimomCross == 'Momentum' ? ta.cross(mom, 0) : ta.cross(cci, 0) ccimomCrossDown = ccimomCross == 'Momentum' ? ta.cross(0, mom) : ta.cross(0, cci) // RSI calculation src = close up = ta.rma(math.max(ta.change(src), 0), rsiLength) down = ta.rma(-math.min(ta.change(src), 0), rsiLength) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down) oversoldAgo = rsi[0] <= rsiOversold or rsi[1] <= rsiOversold or rsi[2] <= rsiOversold or rsi[3] <= rsiOversold overboughtAgo = rsi[0] >= rsiOverbought or rsi[1] >= rsiOverbought or rsi[2] >= rsiOverbought or rsi[3] >= rsiOverbought // Regular Divergence Conditions bullishDivergenceCondition = rsi[0] > rsi[1] and rsi[1] < rsi[2] bearishDivergenceCondition = rsi[0] < rsi[1] and rsi[1] > rsi[2] // Entry Conditions longEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition) shortEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition) // Mean Reversion Indicator meanReversion = plotMeanReversion ? ta.ema(close, emaPeriod) : na stdDev = plotMeanReversion ? ta.stdev(close, emaPeriod) : na upperBand = plotMeanReversion ? meanReversion + stdDev * bandMultiplier : na lowerBand = plotMeanReversion ? meanReversion - stdDev * bandMultiplier : na // Plotting plotshape(longEntryCondition, title='BUY', style=shape.triangleup, text='B', location=location.belowbar, color=color.new(color.lime, 0), textcolor=color.new(color.white, 0), size=size.tiny) plotshape(shortEntryCondition, title='SELL', style=shape.triangledown, text='S', location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny) plot(upperBand, title='Upper Band', color=color.new(color.fuchsia, 0), linewidth=1) plot(meanReversion, title='Mean', color=color.new(color.gray, 0), linewidth=1) plot(lowerBand, title='Lower Band', color=color.new(color.blue, 0), linewidth=1) // Entry signal alerts alertcondition(longEntryCondition, title='BUY Signal', message='Buy Entry Signal') alertcondition(shortEntryCondition, title='SELL Signal', message='Sell Entry Signal') alertcondition(longEntryCondition or shortEntryCondition, title='BUY or SELL Signal', message='Entry Signal') ema100 = ta.ema(close, 100) plot(ema100, color=color.red) // Define trading signals based on the original indicator's entry conditions // Buy if long condition is met and price has pulled back to or below the 100 EMA longCondition = longEntryCondition and close <= ema100 // Sell if short condition is met and price has pulled back to or above the 100 EMA shortCondition = shortEntryCondition and close >= ema100 // Strategy Entries if longCondition strategy.entry("Buy", strategy.long) if shortCondition strategy.entry("Sell", strategy.short)