یہ حکمت عملی مارکیٹ کے رجحانات کی نشاندہی کرنے کے لئے سی سی آئی اشارے اور رفتار اشارے اور آر ایس آئی اشارے کے ساتھ مل کر استعمال کرتی ہے اور جب اوور بکٹ / اوور سیل زون میں فرق ظاہر ہوتا ہے تو داخل ہوتی ہے۔ یہ رجحانات اور اوسط ریورس رینج کی نشاندہی کرنے کے لئے بولنگر بینڈ کا بھی استعمال کرتی ہے۔ یہ حکمت عملی مؤثر طریقے سے بریک آؤٹ اور پل بیک کی نشاندہی کرسکتی ہے ، رجحان کے آغاز میں ابتدائی طور پر جاسکتی ہے ، اور پیرامیٹرز کو ایڈجسٹ کرکے مختلف مصنوعات کو اپنانا۔
سب سے پہلے ، یہ حکمت عملی سی سی آئی اشارے یا رفتار اشارے کے ذریعہ 0 لائن سے اوپر / نیچے عبور کرنے والے طویل اور مختصر سگنل کا تعین کرتی ہے۔ اس کے علاوہ ، غلط اشاروں سے بچنے کے ل R ، آر ایس آئی کو زیادہ خرید / زیادہ فروخت والے علاقے میں ، یعنی 65 سے زیادہ خرید کے لئے اور 35 سے کم فروخت کے لئے ، غلط اشاروں سے بچنے کی ضرورت ہے۔
مزید برآں، حکمت عملی زیادہ قابل اعتماد سگنل کو یقینی بنانے کے لئے RSI بولش/بیئرش اختلافات کا تعین کرنے کا انتخاب کر سکتی ہے۔
جب سی سی آئی یا رفتار طویل سگنل کو متحرک کرتی ہے ، اور آر ایس آئی oversold زون میں ہے ، تو حکمت عملی چیک کرے گی کہ آیا پچھلی اعلی اور کم دونوں بولنگر بینڈ کی اوسط لائن سے اوپر ہیں۔ اگر ایسا ہے تو ، ایک طویل سگنل تیار کیا جاتا ہے۔ اس کے برعکس ، جب مختصر سگنل ٹرگر ہوتا ہے اور پچھلی اعلی کم اوسط لائن سے نیچے ہوتی ہے تو ، ایک مختصر سگنل تیار کیا جاتا ہے۔
اس طرح یہ حکمت عملی رجحان اور اتار چڑھاؤ کے دونوں اشارے استعمال کرتی ہے ، تاکہ ابتدائی رجحان میں داخل ہو سکے اور اوسط ریورس رینج کے ساتھ جھوٹے بریک آؤٹ سے بچ سکے۔ جب قیمت بولنگر بینڈ سے باہر نکل جاتی ہے تو ، حکمت عملی منافع کو مقفل کرنے اور مزید کمی کو روکنے کے لئے تمام پوزیشنوں کو بند کردے گی۔
رجحان اور نوسٹالیشن اشارے کا امتزاج رجحان میں جلدی داخل ہوسکتا ہے اور رینج مارکیٹ میں غیر ضروری پوزیشنوں سے بچ سکتا ہے۔
قیمت کے فرق کے ساتھ بولنگر بینڈ کا استعمال کرتے ہوئے غلط بریک آؤٹ کو مؤثر طریقے سے فلٹر کرتا ہے۔
تاریخی RSI کی جانچ پڑتال غلط تجارتی سگنل پیدا کرنے سے بچتی ہے۔
مکمل طور پر خودکار ٹریڈنگ بغیر دستی مداخلت کے، الگورتھم ٹریڈنگ کے لئے موزوں ہے.
لچکدار پیرامیٹر ایڈجسٹمنٹ مختلف تجارتی مصنوعات کے مطابق ہے.
نقصان کو روکیں اور منافع کو مؤثر طریقے سے کنٹرول کریں.
غلط بولنگر بینڈ پیرامیٹرز غلط اوسط ریورسشن کی شناخت کا سبب بن سکتے ہیں.
غلط اشارے پیرامیٹرز بہت زیادہ غلط سگنل پیدا کر سکتے ہیں.
ناکام بریکآؤٹ کے لیے بروقت سٹاپ نقصان کی ضرورت ہوتی ہے جب قیمت اوسط تک واپس آجائے۔
ناقص لیکویڈیٹی غیر موثر بریکآؤٹ ٹریڈنگ کا سبب بن سکتی ہے۔
کافی تاریخی اعداد و شمار کو یقینی بنانے کے لئے خراب منحنی فٹنگ سے بچنے کے لئے.
غلط بریک آؤٹ سے بچنے کے لیے ٹریڈنگ سیشنز پر توجہ دیں۔
زیادہ مستحکم اوسط ریورس رینج کے لئے بولنگر بینڈ پیرامیٹرز کو بہتر بنائیں.
بہتر اصلاح کے لئے مختلف مصنوعات پر ٹیسٹ پیرامیٹرز.
زیادہ سائز کی واحد پوزیشن سے بچنے کے لئے پوزیشن سائزنگ شامل کریں.
تجارتی سیشن فلٹر شامل کریں تاکہ بنیادی طور پر فعال گھنٹوں میں تجارت کی جاسکے۔
زیادہ ذہین سگنل پیدا کرنے کے لیے مشین لرننگ ماڈلز کو شامل کریں۔
مجموعی طور پر مارکیٹ کے رجحان کا تعین کرنے کے لئے مزید ڈیٹا ذرائع کو ضم کریں.
ایک مضبوط اشارے کے مجموعے کو تشکیل دینے کے لئے مزید اشارے شامل کریں.
یہ حکمت عملی رجحانات کو جلدی سے پکڑنے کے لئے رجحان اور نوسان کے اشارے کو مربوط کرتی ہے۔ بولنگر بینڈ کا مطلب اور قیمت کے فرق کے ساتھ یہ غلط بریک آؤٹ سے مؤثر طریقے سے بچتا ہے۔ لچکدار پیرامیٹرز بیک ٹسٹ کے بہترین نتائج کے ساتھ مختلف مصنوعات کے مطابق ڈھالتے ہیں۔ اگلے اقدامات زیادہ استحکام کے ل parameters پیرامیٹرز اور ماڈل مجموعہ کو بہتر بنانا ہیں ، اور طویل مدتی میں مستقل اضافی منافع حاصل کرنا ہے۔
/*backtest start: 2022-10-18 00:00:00 end: 2023-10-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title='BroTheJo Strategy', shorttitle='BTJ', overlay=true) // Input settings ccimomCross = input.string('CCI', 'Entry Signal Source', options=['CCI', 'Momentum']) ccimomLength = input.int(10, minval=1, title='CCI/Momentum Length') useDivergence = input.bool(false, title='Find Regular Bullish/Bearish Divergence') rsiOverbought = input.int(65, minval=1, title='RSI Overbought Level') rsiOversold = input.int(35, minval=1, title='RSI Oversold Level') rsiLength = input.int(14, minval=1, title='RSI Length') plotMeanReversion = input.bool(true, 'Plot Mean Reversion Bands on the chart') emaPeriod = input(200, title='Lookback Period (EMA)') bandMultiplier = input.float(1.6, title='Outer Bands Multiplier') // 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] // 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 // Entry Conditions prevHigh = ta.highest(high, 1) prevLow = ta.lowest(low, 1) longEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition) and (prevHigh >= meanReversion) and (prevLow >= meanReversion) shortEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition) and (prevHigh <= meanReversion) and (prevLow <= meanReversion) // Plotting oldLongEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition) oldShortEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition) plotshape(oldLongEntryCondition, title='BUY', style=shape.triangleup, location=location.belowbar, color=color.new(color.lime, 0), textcolor=color.new(color.white, 0), size=size.tiny) plotshape(oldShortEntryCondition, title='SELL', style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny) // Strategy logic if (longEntryCondition) strategy.entry("Buy", strategy.long) if (shortEntryCondition) strategy.entry("Sell", strategy.short) // Close all open positions when outside of bands closeAll = (high >= upperBand) or (low <= lowerBand) if (closeAll) strategy.close_all("Take Profit/Cut Loss") // Plotting plot(upperBand, title='Upper Band', color=color.fuchsia, linewidth=1) plot(meanReversion, title='Mean', color=color.gray, linewidth=1) plot(lowerBand, title='Lower Band', color=color.blue, linewidth=1)