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

مصنف:چاؤ ژانگ، تاریخ: 2023-12-21 11:33:50
ٹیگز:

img

جائزہ

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

اصول

یہ حکمت عملی بنیادی طور پر تین ہول موونگ ایوریج (ایچ ایم اے) کے متغیرات پر مبنی ہے باقاعدہ ایچ ایم اے ، ویٹڈ ایچ ایم اے (WHMA) اور ایکسپونینشل ایچ ایم اے (EHMA) ۔ جیسا کہ کوڈ سے پتہ چلتا ہے ، یہ صارفین کو تین ہول ایم اے کے درمیان سوئچ کرنے کی اجازت دیتا ہے۔

HMA کا فارمولا یہ ہے:

HMA = WMA ((2*WMA ((تقریباً، n/2)-WMA ((تقریباً، n) ، مربع))

جہاں ڈبلیو ایم اے وزن شدہ چلتی اوسط ہے اور این مدت کا پیرامیٹر ہے۔ ایس ایم اے کے مقابلے میں ، ایچ ایم اے قیمتوں میں تبدیلیوں کا تیزی سے جواب دیتا ہے۔

WHMA اور EHMA کے فارمولے ایک جیسے ہیں۔ HMA کو ڈیفالٹ آپشن کے طور پر منتخب کیا گیا ہے۔

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

فوائد

روایتی ایم اے حکمت عملیوں کے مقابلے میں، اس حکمت عملی میں مندرجہ ذیل برتری ہے:

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

خطرات

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

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

حل:

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

بہتری

اسٹریٹیجی کو مندرجہ ذیل پہلوؤں سے بھی بہتر بنایا جاسکتا ہے:

  1. سگنل کی وشوسنییتا کو یقینی بنانے کے لئے حجم یا دیگر فلٹرز شامل کریں
  2. بہتر ٹائمنگ کے لئے MACD، KDJ کو یکجا کریں، جیت کی شرح کو بہتر بنائیں
  3. حقیقی تجارتی بیک ٹسٹ کی بنیاد پر HMA کی مدت کو ایڈجسٹ کریں
  4. WHMA یا EHMA پر سوئچ کریں جو مخصوص اسٹاک کے لئے بہترین کارکردگی کا مظاہرہ کرتا ہے
  5. ایک ہی تجارت کے نقصان کو کنٹرول کرنے کے لئے سٹاپ نقصان کے طریقہ کار کو شامل کریں

خلاصہ

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


/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Position Investing by SirSeff', overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0)
strat_dir_input = input.string(title='Strategy Direction', defval='long', options=['long', 'short', 'all'])
strat_dir_value = strat_dir_input == 'long' ? strategy.direction.long : strat_dir_input == 'short' ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
//////////////////////////////////////////////////////////////////////
// Testing Start dates
testStartYear = input(2000, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, 'Backtest Stop Year')
testStopMonth = input(12, 'Backtest Stop Month')
testStopDay = input(30, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)


testPeriod() => true
// Component Code Stop
//////////////////////////////////////////////////////////////////////
//INPUT
src = input(close, title='Source')
modeSwitch = input.string('Hma', title='Hull Variation', options=['Hma', 'Thma', 'Ehma'])
length = input(55, title='Length(180-200 for floating S/R , 55 for swing entry)')
switchColor = input(true, 'Color Hull according to trend?')
candleCol = input(false, title='Color candles based on Hull\'s Trend?')
visualSwitch = input(true, title='Show as a Band?')
thicknesSwitch = input(1, title='Line Thickness')
transpSwitch = input.int(40, title='Band Transparency', step=5)

//FUNCTIONS
//HMA
HMA(_src, _length) =>
    ta.wma(2 * ta.wma(_src, _length / 2) - ta.wma(_src, _length), math.round(math.sqrt(_length)))
//EHMA    
EHMA(_src, _length) =>
    ta.ema(2 * ta.ema(_src, _length / 2) - ta.ema(_src, _length), math.round(math.sqrt(_length)))
//THMA    
THMA(_src, _length) =>
    ta.wma(ta.wma(_src, _length / 3) * 3 - ta.wma(_src, _length / 2) - ta.wma(_src, _length), _length)

//SWITCH
Mode(modeSwitch, src, len) =>
    modeSwitch == 'Hma' ? HMA(src, len) : modeSwitch == 'Ehma' ? EHMA(src, len) : modeSwitch == 'Thma' ? THMA(src, len / 2) : na

//OUT
HULL = Mode(modeSwitch, src, length)
MHULL = HULL[0]
SHULL = HULL[2]

//COLOR
hullColor = switchColor ? HULL > HULL[2] ? #00ff00 : #ff0000 : #ff9800

//PLOT
///< Frame
Fi1 = plot(MHULL, title='MHULL', color=hullColor, linewidth=thicknesSwitch, transp=50)
Fi2 = plot(visualSwitch ? SHULL : na, title='SHULL', color=hullColor, linewidth=thicknesSwitch, transp=50)
///< Ending Filler
fill(Fi1, Fi2, title='Band Filler', color=hullColor, transp=transpSwitch)
///BARCOLOR
barcolor(color=candleCol ? switchColor ? hullColor : na : na)


if HULL[0] > HULL[2] and testPeriod()
    strategy.entry('Invest', strategy.long)
if HULL[0] < HULL[2] and testPeriod()
    strategy.entry('Pause', strategy.short)



مزید