دوہری حرکت پذیر اوسط کی تبدیلی کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-24 10:56:08
ٹیگز:

img

جائزہ

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

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

اسٹریٹجی میں پہلے دو حرکت پذیر اوسط ، ایک قلیل مدتی 20 دن کا ایم اے اور ایک طویل مدتی 60 دن کا ایم اے طے ہوتا ہے۔ پھر یہ دو ایم اے کے مابین عبور کی صورتحال کا اندازہ کرتا ہے تاکہ اندراج کا تعین کیا جاسکے۔

خاص طور پر ، جب قلیل مدتی ایم اے طویل مدتی ایم اے سے اوپر جاتا ہے تو ، یہ ایک اپ ٹرینڈ کا اشارہ کرتا ہے ، لہذا طویل عرصے تک جانا۔ جب قلیل مدتی ایم اے طویل مدتی ایم اے سے نیچے جاتا ہے تو ، یہ ایک ڈاؤن ٹرینڈ کا اشارہ کرتا ہے ، لہذا مختصر جانا۔

طویل یا مختصر جانے کے بعد سٹاپ نقصان کا طریقہ زیادہ سے زیادہ منافع میں مقفل کرنے کے لئے سب سے زیادہ قیمت اور سب سے کم قیمت پر مبنی ٹریلنگ اسٹاپ ہے۔

کوڈ کا بنیادی منطق یہ ہے:

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

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

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

  1. سادہ منطق آسان عملدرآمد.
  2. ڈبل ایم اے مؤثر طریقے سے جھوٹے وقفے کو فلٹر کر سکتا ہے.
  3. زیادہ سے زیادہ منافع میں ٹریلنگ سٹاپ تالے.
  4. جب رجحان بدلتا ہے تو بروقت سگنل پکڑ سکتا ہے.
  5. مناسب ڈراپ ڈاؤن کنٹرول، نسبتا مستحکم.

خطرے کا تجزیہ

کچھ خطرات بھی ہیں:

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

خطرات سے نمٹنے کے لئے:

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

اصلاح کے خیالات

اسٹریٹیجی کو مندرجہ ذیل شعبوں میں مزید بہتر بنایا جاسکتا ہے:

  1. دیگر فلٹرز شامل کریں جیسے RSI کثیر حالت اندراج کے لئے، جھوٹے وقفے سے بچنے کے لئے.

  2. بہترین پیرامیٹر مکس تلاش کرنے کے لئے ایم اے ادوار کو بہتر بنائیں۔ اضافی قدم آگے بڑھ کر مختلف ادوار کی جانچ کرسکتے ہیں۔

  3. زیادہ سے زیادہ حد تلاش کرنے کے لئے بیک ٹیسٹ حساب کتاب کے ذریعہ اسٹاپ نقصان کی حد کو بہتر بنائیں۔ متحرک اسٹاپ نقصان کا بھی استعمال کرسکتا ہے۔

  4. تجارتی تعدد کو کم کرنے کے لئے سٹاپ نقصان سے باہر نکلنے کے بعد دوبارہ داخلہ منطق مقرر کریں.

  5. جب رجحان واضح نہ ہو تو تجارت کو روکنے کے لئے رجحان اشارے کے ساتھ مل کر.

  6. مارکیٹ کے حالات کی بنیاد پر پوزیشن سائزنگ اور متحرک سٹاپ نقصان شامل کریں.

خلاصہ

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


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Scalper Strategy v1.4", shorttitle = "Scalper str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needbe = input(true, defval = true, title = "Bands Entry")
needct = input(false, defval = false, title = "Counter-trend entry")
needdb = input(true, defval = true, title = "Double Body")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band 1")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band 1")
plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Body
body = abs(close - open)
smabody = needdb == false ? ema(body, 30) : ema(body, 30) * 2
candle = high - low

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and bar == -1)) ? 1 : 0
dn7 = trend == 1 and ((bar == 1 and bar[1] == 1) or (close > hd and needbe == true)) and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and ((bar == -1 and bar[1] == -1) or (close < ld2 and needbe == true)) and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and bar == 1)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)

مزید