
یہ حکمت عملی حرکت پذیر اوسط پر مبنی ایک سادہ حکمت عملی ہے جو مختلف کرنسی کے جوڑوں پر اچھا اثر ڈال سکتی ہے۔ یہ اوپننگ اوسط اور کلوزنگ اوسط کا نقشہ بناتی ہے اور جب دونوں لائنیں کراس ہوتی ہیں تو ایک کثیر درجے کی پوزیشن قائم کرنے یا اس سے باہر نکلنے کا فیصلہ کرتی ہے۔ اس کا اصول یہ ہے کہ جب اوسط بند ہونے کی قیمت بڑھتی ہے تو پوزیشن قائم کی جاتی ہے ، جو مستقبل کی قیمتوں میں اضافے کی پیش گوئی کر سکتی ہے۔ جب اوسط بند ہونے کی قیمت کم ہوتی ہے تو پوزیشن کو فلیٹ کردیں ، جو مستقبل کی قیمتوں میں کمی کی پیش گوئی کر سکتی ہے۔ یہ صرف ایک اندازہ ہے ، لیکن بعض اوقات یہ مستقبل کی قیمتوں کی بہت درست پیش گوئی کرسکتا ہے۔
یہ حکمت عملی سب سے پہلے ترتیب کے مطابق چلتی اوسط کی اقسام کا انتخاب کرتی ہے ، جس میں ای ایم اے ، ایس ایم اے ، آر ایم اے ، ڈبلیو ایم اے اور وی ڈبلیو ایم اے شامل ہیں۔ پھر اوسط اوسط حساب کتاب کی مدت کا تعین کیا جاتا ہے ، جو عام طور پر 10 سے 250 K لائنوں تک ہوتا ہے۔ مختلف کرنسی کے جوڑوں کے مطابق ، مختلف قسم کے اوسط اور دورانیے کی تعداد کا انتخاب کرنا بالکل مختلف اثر حاصل کرسکتا ہے۔
اس حکمت عملی کے تحت تجارت کی منطق یہ ہے:
جب پوزیشن قائم کی جاتی ہے تو یہ قیمت میں اضافے کا اشارہ سمجھا جاتا ہے ، جب پوزیشن ختم کی جاتی ہے تو یہ قیمت میں کمی کا اشارہ سمجھا جاتا ہے۔
اس حکمت عملی کے کچھ اہم فوائد یہ ہیں:
اس حکمت عملی کے کچھ خطرات بھی ہیں:
اس کا جواب اور اصلاحات:
یہ حکمت عملی مجموعی طور پر منطقی طور پر آسان ہے ، قیمت کے رجحانات اور ٹرن آؤٹ پوائنٹس کا اندازہ لگانے کے لئے متحرک اوسط کے اشارے کا استعمال کرتی ہے۔ یہ پیرامیٹرز کو ایڈجسٹ کرکے بہت اچھا اثر ڈال سکتا ہے ، یہ ایک موثر رجحان سے باخبر رہنے کی حکمت عملی ہے ، جو مزید بہتر اور قابل اطلاق ہے۔ تاہم ، خطرے پر قابو پانے ، مناسب کرنسی کے جوڑے اور پیرامیٹرز کو منتخب کرنے پر بھی توجہ دی جانی چاہئے ، تاکہ اس سے زیادہ سے زیادہ فائدہ اٹھایا جاسکے۔
/*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)