رفتار دوہری حرکت پذیر اوسط ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-01 18:13:21
ٹیگز:

img

جائزہ

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

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

حکمت عملی بنیادی طور پر مندرجہ ذیل فیصلے کے اشارے پر مبنی تجارتی فیصلے کرتی ہے:

  1. قیمت چینل: چینل کی حد کا تعین کرنے کے لئے پچھلے 30 موم بتیوں کی سب سے زیادہ اور کم قیمتوں کا حساب لگائیں۔ چینل کے وسط نقطہ سے اوپر کی بندش کی قیمت کو بائیش سمجھا جاتا ہے۔ چینل کے وسط نقطہ سے نیچے کی بندش کی قیمت کو bearish سمجھا جاتا ہے۔

  2. فاسٹ آر ایس آئی: تازہ ترین 2 موم بتیوں کی آر ایس آئی کی قیمت کا حساب لگائیں۔ 25 سے کم آر ایس آئی کو زیادہ فروخت اور 75 سے زیادہ آر ایس آئی کو زیادہ خریدا سمجھا جاتا ہے۔

  3. ین یانگ لائن: تازہ ترین 2 شمعدانوں کے ادارے کے سائز کا حساب لگائیں۔ دو سرخ موم بتیاں bearish سگنل کی تجویز کرتی ہیں جبکہ دو سبز موم بتیاں bullish سگنل کی تجویز کرتی ہیں۔

  4. نقصانات کو روکنے کی شرط: جب نقصانات نقصانات کو محدود کرنے کے لئے ایک مخصوص فیصد تک پہنچ جاتے ہیں تو معاوضہ لگانے پر مجبور کریں.

رجحان، رفتار اور oversold/overbought اشارے سے مجموعی سگنل کے ساتھ، یہ قلیل مدتی حکمت عملی مؤثر طریقے سے واپسی کی شناخت اور بروقت ٹریڈنگ سگنل پیدا کر سکتی ہے.

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

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

  1. متعدد اشارے کو ملا کر سگنل کی درستگی میں بہتری، جو غلط سگنلز کو فلٹر کرنے میں مدد کرتی ہے۔

  2. فاسٹ آر ایس آئی کے استعمال کی وجہ سے موڑ کے مقامات پر تیز ردعمل ، جو باقاعدہ آر ایس آئی سے زیادہ حساس ہے۔

  3. مختلف مصنوعات اور ٹائم فریموں میں اعلی وشوسنییتا ، بیک ٹیسٹ کے دوران سخت پیرامیٹر اصلاح کی بدولت۔

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

خطرے کا تجزیہ

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

  1. قیمت چینل پیرامیٹر کی غلط ترتیب جھٹکے کا سبب بن سکتی ہے۔ بہت تنگ چینلز جھوٹے بریکآؤٹس کا سبب بن سکتے ہیں۔

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

  3. سٹاپ نقصان نقطہ کی غلط ترتیب سے نقصانات میں اضافہ ہوسکتا ہے۔ اس پیرامیٹر کو محتاط ترتیب کی ضرورت ہے - بہت زیادہ یا بہت کم نقصان دہ ہوسکتا ہے۔

ہم چینل پیرامیٹرز کو ایڈجسٹ کرکے، انٹری ٹائمنگ کو بہتر بنا کر، سٹاپ نقصان پوائنٹس کو متحرک طور پر ایڈجسٹ کرکے ان خطرات کو کم اور کم کر سکتے ہیں۔

اصلاح کی ہدایات

کچھ سمتیں جن میں حکمت عملی کو مزید بہتر بنایا جاسکتا ہے:

  1. خودکار پیرامیٹر اصلاحات حاصل کرنے کے لئے مشین لرننگ الگورتھم کو شامل کریں ، موافقت کو بڑھانا۔

  2. تجارتی فیصلوں اور سگنل کی درستگی کو بہتر بنانے کے لئے خبروں جیسے مزید اعداد و شمار کے ذرائع کو یکجا کریں۔

  3. مارکیٹ کے حالات پر مبنی متحرک پوزیشن سائزنگ میکانزم تیار کریں تاکہ خطرات کو بہتر طریقے سے کنٹرول کیا جا سکے۔

  4. مستقبل کے معاہدے کی تجارت میں اطلاق کو بڑھانا تاکہ مطلق منافع کو مزید بڑھا سکے۔

نتیجہ

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


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

//Noro
//2018

//@version=2
strategy(title = "Noro's Price Channel Strategy v1.2", shorttitle = "Price Channel str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 100000, title = "capital, %")
uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")
usersi = input(true, defval = true, title = "Use RSI strategy")
pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel Period")
showcl = input(true, defval = true, title = "Price Channel")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
src = close

//Price channel
lasthigh = highest(src, pch)
lastlow = lowest(src, pch)
center = (lasthigh + lastlow) / 2
trend = low > center ? 1 : high < center ? -1 : trend[1]
col = showcl ? blue : na
col2 = showcl ? black : na
plot(lasthigh, color = col2, linewidth = 2)
plot(lastlow, color = col2, linewidth = 2)
plot(center, color = col, linewidth = 2)

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
rbars = sma(bar, 2) == -1
gbars = sma(bar, 2) == 1

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Signals
body = abs(close - open)
abody = sma(body, 10)
up1 = rbars and close > center and uset
dn1 = gbars and close < center and uset
up2 = close <= lastlow and close < open and usect
dn2 = close >= lasthigh and close > open and usect
up3 = fastrsi < 25 and close > center and usersi
dn3 = fastrsi > 75 and close < center and usersi
exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2)
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

//Trading
if up1 or up2 or up3
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2 or dn3
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

مزید