Oscillator ٹریڈنگ کی حکمت عملی


تخلیق کی تاریخ: 2023-12-13 14:45:51 آخر میں ترمیم کریں: 2023-12-13 14:45:51
کاپی: 0 کلکس کی تعداد: 795
1
پر توجہ دیں
1621
پیروکار

Oscillator ٹریڈنگ کی حکمت عملی

جائزہ

یہ ایک الٹ ٹریڈنگ حکمت عملی ہے جو متعدد تکنیکی اشارے پر مبنی ہے۔ یہ سی سی آئی ، حرکت پذیری اشارے ، آر ایس آئی جیسے اشارے کے ساتھ مل کر ممکنہ کثیر اور خالی تجارت کے مواقع کی نشاندہی کرتا ہے۔ جب اشارے اوور بُوڈ اوور سیل سگنل دکھاتے ہیں اور قیمت میں ردوبدل ہوتا ہے تو یہ حکمت عملی تجارتی سگنل جاری کرتی ہے۔

حکمت عملی کا اصول

اس حکمت عملی کے لئے ٹریڈنگ سگنل ایک اپنی مرضی کے مطابق اشارے کی طرف سے حاصل کیا جاتا ہے ایڈری پوڈل خرید و فروخت کی پوزیشن، جس میں سی سی آئی، متحرک اشارے اور آر ایس آئی کے کراس کی صورت حال کو جامع طور پر سمجھا جاتا ہے۔ اس کی مخصوص منطق یہ ہے:

ملٹی ہیڈ سگنل کی شرط:

  1. ایڈری پوائنٹ خرید و فروخت پوائنٹ پوائنٹ اشارے خریدنے کا اشارہ دیتا ہے ، یعنی سی سی آئی پر 0 محور یا حرکیات کے اشارے پر 0 محور ، اور آر ایس آئی اوور سیل لائن سے کم ہے۔
  2. قیمت 100 سائیکل ای ایم اے سے نیچے یا نیچے ہے۔

خالی سر سگنل حالات:

  1. ایڈری پوائنٹ خرید و فروخت پوائنٹ خرید اشارے فروخت کا اشارہ دیتے ہیں ، یعنی سی سی آئی نیچے 0 محور یا 0 محور نیچے حرکت پذیری اشارے کے نیچے ، اور آر ایس آئی اوور خرید لائن سے زیادہ ہے۔
  2. قیمت 100 سیکنڈ ای ایم اے سے نیچے یا اس سے اوپر ہے۔

اس حکمت عملی کو معمول کے انحراف کی تلاش کے لئے بھی ترتیب دیا جاسکتا ہے ، یعنی آر ایس آئی اور قیمت میں واضح انحراف سے پہلے تجارتی سگنل۔

جب ٹریڈنگ سگنل کو پورا کیا جاتا ہے تو ، حکمت عملی کا اسٹاپ نقصان داخلہ قیمت + 2 اے ٹی آر اور اسٹاپ نقصان داخلہ قیمت + 4 اے ٹی آر ہے۔ اس سے مارکیٹ میں اتار چڑھاؤ کی حد کے مطابق مناسب اسٹاپ نقصان کی حد طے کی جاسکتی ہے۔

طاقت کا تجزیہ

  1. ایک سے زیادہ اشارے کے مجموعی فیصلے سے کسی ایک اشارے کے غلط اشارے سے بچنے میں مدد ملتی ہے۔
  2. ریورس ٹریڈنگ کا طریقہ ، جو ہنگامہ خیز حالات میں مختصر تجارت کے مواقع کو پکڑنے کے لئے موزوں ہے۔
  3. اے ٹی آر اسٹاپ نقصان روکنے کا طریقہ ، مارکیٹ میں اتار چڑھاؤ کے ذہانت کے مطابق پوزیشن کو ایڈجسٹ کیا جاسکتا ہے۔
  4. غیر معمولی اوورلوڈ اور اوور سیل کے حالات میں پوزیشن کھولنے سے بچنے کے لئے غیر معمولی اوورلوڈ کو تلاش کریں.

خطرے کا تجزیہ

  1. اشارے کے پیرامیٹرز کی غلط ترتیب سے تجارتی مواقع ضائع ہوسکتے ہیں یا غلط سگنل پیدا ہوسکتے ہیں۔
  2. ریورس ٹریڈنگ کے طریقوں میں رجحانات کے دوران مسلسل نقصانات ہوسکتے ہیں۔
  3. اے ٹی آر میں تاخیر ہوتی ہے اور تیزی سے بدلتے ہوئے حالات میں اسٹاپ نقصان کی روک تھام کی جگہ کو بروقت اپ ڈیٹ نہیں کیا جاسکتا ہے۔

حل:

  1. اشارے کے پیرامیٹرز کو متعدد بار جانچنے اور ان کو بہتر بنانے کے لئے ، بہترین پیرامیٹرز کا مجموعہ تلاش کریں۔
  2. اس حکمت عملی کا استعمال اس وقت روکنے پر غور کیا جاسکتا ہے جب رجحان مضبوط ہو۔
  3. دوسرے روک تھام کے طریقوں کے ساتھ مل کر ، جیسے چلنے والی روک تھام یا خلاف ورزی کی روک تھام۔

اصلاح کی سمت

  1. مختلف پیرامیٹرز کے مجموعے کی جانچ کریں ، جیسے سی سی آئی اور ٹرانسمیشن انڈیکس سائیکل ، آر ایس آئی پیرامیٹرز ، اے ٹی آر ضارب وغیرہ۔
  2. اضافی فلٹرنگ شرائط شامل کریں ، جیسے قیمتوں کا نمونہ ، حجم میں تبدیلی ، وغیرہ۔
  3. پوزیشن مینجمنٹ کے طریقوں کو ایڈجسٹ کریں ، جیسے اے ٹی آر ویلیو کے مطابق پوزیشن کا تناسب وغیرہ۔
  4. مختلف اقسام اور ادوار کے پیرامیٹرز کے سانچوں کو ترتیب دیں۔
  5. ٹرینڈ ٹریکنگ میکانزم کے ساتھ مل کر ، رجحانات کے دوران ریورس ٹریڈنگ کو روکنے پر غور کریں۔

خلاصہ کریں۔

یہ حکمت عملی بنیادی طور پر جھٹکے والی صورتحال میں لاگو کی جاتی ہے ، جس میں وسط میں مختصر لائن الٹ کو پکڑ کر مستحکم منافع حاصل کیا جاتا ہے۔ یہ قیمتوں میں قلیل مدتی کھینچنے کی شناخت میں مدد کرتا ہے ، اور متعدد اشارے کے فیصلے پر مبنی تجارتی سگنل پیدا کرتا ہے۔ مناسب پیرامیٹرز کی اصلاح اور رسک مینجمنٹ کے ذریعہ ، اس حکمت عملی کے فوائد کو مؤثر طریقے سے استعمال کیا جاسکتا ہے۔ تاہم ، اس بات پر بھی توجہ دینے کی ضرورت ہے کہ الٹ کی تجارت میں ناقص ہے ، جس میں مضبوط رجحانات کے تحت مستقل نقصانات کا امکان ہے۔

حکمت عملی کا ماخذ کوڈ
/*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)