وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ٹرینڈ ٹریکنگ چلتی اوسط کراس اوور حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-29 16:52:46
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

یہ حکمت عملی پہلے حرکت پذیر اوسط کی قسم کا انتخاب کرتی ہے ، جس میں ای ایم اے ، ایس ایم اے ، آر ایم اے ، ڈبلیو ایم اے اور وی ڈبلیو ایم اے شامل ہیں۔ پھر یہ حرکت پذیر اوسط کے لئے بیک بیک مدت طے کرتا ہے ، عام طور پر 10 سے 250 بار کے درمیان۔ مختلف کرنسی کے جوڑوں کے لئے مختلف قسم کی حرکت پذیر اوسط اور بیک بیک مدت کے مختلف مجموعے بہت مختلف نتائج پیدا کرسکتے ہیں۔

تجارتی منطق مندرجہ ذیل ہے:

  1. کھولنے کی قیمت اور بند ہونے کی قیمت کا چلتا ہوا اوسط حساب لگائیں۔
  2. بند اور کھلی قیمت کے درمیان چلتی اوسط اقدار کا موازنہ کریں۔
  3. ایک طویل پوزیشن درج کریں اگر بند ہونے والی قیمت کا چلتا ہوا اوسط کھلی قیمت کے چلتے ہوئے اوسط سے تجاوز کرتا ہے۔
  4. طویل پوزیشن بند کریں اگر بند ہونے والی قیمت کی حرکت پذیر اوسط کھلی قیمت کی حرکت پذیر اوسط سے نیچے ہو جائے۔

پوزیشن میں داخل ہونے سے اسے قیمت کی بڑھتی ہوئی نقل و حرکت کی علامت سمجھا جاتا ہے ، جبکہ باہر نکلنے سے قیمت کی نیچے کی نقل و حرکت پر غور کیا جاتا ہے۔

فوائد کا تجزیہ

اس حکمت عملی کے اہم فوائد یہ ہیں:

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

خطرے کا تجزیہ

اس حکمت عملی کے ساتھ کچھ خطرات بھی ہیں:

  1. کچھ سکے کے جوڑوں اور پیرامیٹرز کے لئے، واپسی اور استحکام کم ہو سکتا ہے؛
  2. قلیل مدتی قیمتوں میں اتار چڑھاؤ کا جواب نہیں دے سکتا، اعلی اتار چڑھاؤ کے سکے کے لئے خراب کارکردگی؛
  3. چلتی اوسط نظرثانی کی مدت کا انتخاب کافی سائنسی نہیں، کسی حد تک ذہنی ہے.

حل اور اصلاح:

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

نتیجہ

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Author @divonn1994

initial_balance = 100
strategy(title='Close v Open Moving Averages Strategy', shorttitle = 'Close v Open', overlay=true, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=initial_balance)

//Input for number of bars for moving average, Switch to choose moving average type, Display Options and Time Frame of trading----------------------------------------------------------------

bars = input.int(66, "Moving average length (number of bars)", minval=1, group='Strategy') //66 bars and VWMA for BTCUSD on 12 Hours.. 35 bars and VWMA for BTCUSD on 1 Day
strategy = input.string("VWMA", "Moving Average type", options = ["EMA", "SMA", "RMA", "WMA", "VWMA"], group='Strategy')

redOn = input.string("On", "Red Background Color On/Off", options = ["On", "Off"], group='Display')
greenOn = input.string("On", "Green Background Color On/Off", options = ["On", "Off"], group='Display')
maOn = input.string("On", "Moving Average Plot On/Off", options = ["On", "Off"], group='Display')

startMonth = input.int(title='Start Month 1-12 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=12, group='Beginning of Strategy')
startDate = input.int(title='Start Date 1-31 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=31, group='Beginning of Strategy')
startYear = input.int(title='Start Year 2000-2100 (set any start time to 0 for furthest date)', defval=2011, minval=2000, maxval=2100, group='Beginning of Strategy')

endMonth = input.int(title='End Month 1-12 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=12, group='End of Strategy')
endDate = input.int(title='End Date 1-31 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=31, group='End of Strategy')
endYear = input.int(title='End Year 2000-2100 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=2100, group='End of Strategy')

//Strategy Calculations-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

inDateRange = true

maMomentum = switch strategy
    "EMA" => (ta.ema(close, bars) > ta.ema(open, bars)) ? 1 : -1
    "SMA" => (ta.sma(close, bars) > ta.sma(open, bars)) ? 1 : -1
    "RMA" => (ta.rma(close, bars) > ta.rma(open, bars)) ? 1 : -1
    "WMA" => (ta.wma(close, bars) > ta.wma(open, bars)) ? 1 : -1
    "VWMA" => (ta.vwma(close, bars) > ta.vwma(open, bars)) ? 1 : -1
    =>
        runtime.error("No matching MA type found.")
        float(na)

openMA = switch strategy
    "EMA" => ta.ema(open, bars)
    "SMA" => ta.sma(open, bars)
    "RMA" => ta.rma(open, bars)
    "WMA" => ta.wma(open, bars)
    "VWMA" => ta.vwma(open, bars)
    =>
        runtime.error("No matching MA type found.")
        float(na)
        
closeMA = switch strategy
    "EMA" => ta.ema(close, bars)
    "SMA" => ta.sma(close, bars)
    "RMA" => ta.rma(close, bars)
    "WMA" => ta.wma(close, bars)
    "VWMA" => ta.vwma(close, bars)
    =>
        runtime.error("No matching MA type found.")
        float(na)

//Enter or Exit Positions--------------------------------------------------------------------------------------------------------------------------------------------------------------------

if ta.crossover(maMomentum, 0)
    if inDateRange
        strategy.entry('long', strategy.long, comment='long')
if ta.crossunder(maMomentum, 0)
    if inDateRange
        strategy.close('long')

//Plot Strategy Behavior---------------------------------------------------------------------------------------------------------------------------------------------------------------------

plot(series = maOn == "On" ? openMA : na, title = "Open moving Average", color = color.new(color.purple,0), linewidth=3, offset=1)
plot(series = maOn == "On" ? closeMA : na, title = "Close Moving Average", color = color.new(color.white,0), linewidth=2, offset=1)
bgcolor(color = inDateRange and (greenOn == "On") and maMomentum > 0 ? color.new(color.green,75) : inDateRange and (redOn == "On") and maMomentum <= 0 ? color.new(color.red,75) : na, offset=1)

مزید