ملٹی ٹائم فریم متحرک بیک ٹسٹنگ کی حکمت عملی

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

img

جائزہ

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

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

حکمت عملی اپنی مرضی کے مطابق فنکشن f_get_htfHighLow کو کال کرکے مختلف ٹائم فریموں میں سب سے زیادہ قیمت (nhigh) اور سب سے کم قیمت (nlow) بازیافت کرتی ہے۔ خاص طور پر ، صارف کے ذریعہ متعین کردہ ان پٹ جیسے ٹائم پیریڈ ریزولوشن ، ٹائم پیریڈ ضرب HTFMultiplier ، بیک ٹیسٹنگ پیرامیٹرز لوک ہیڈ اور گیپس ، اور آفسیٹ کی بنیاد پر ، یہ مختلف ٹائم فریموں میں سب سے زیادہ اور سب سے کم قیمتوں کو حاصل کرنے کے لئے سیکیورٹی فنکشن کو بلاتا ہے۔

مثال کے طور پر ، 0 کا آفسیٹ موجودہ بار کی سب سے زیادہ اور سب سے کم قیمتوں کو بازیافت کرتا ہے ، جبکہ 1 کا آفسیٹ ان قیمتوں کو پچھلی بار سے بازیافت کرتا ہے۔ سلاخوں کے مابین قیمت کی تبدیلیوں کا موازنہ کرکے ، رجحان کی سمت کا تعین کیا جاتا ہے۔

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

فوائد

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

خطرات

  1. متعدد وقت کے فریم کے غلط اندازے
  2. غلط بیک ٹسٹنگ پیرامیٹرز سے دوبارہ پینٹنگ
  3. اعلی اخراجات اور حد سے زیادہ تجارت کی وجہ سے سلائڈنگ

حل:

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

بہتر مواقع

  1. رجحانات کے لئے اے آئی کا فائدہ اٹھانے کے لئے ایم ایل شامل کریں
  2. متحرک پوزیشن سائزنگ کے لئے اتار چڑھاؤ فلٹرز کو شامل کریں
  3. نقصانات کو مؤثر طریقے سے محدود کرنے کے لئے رکاوٹیں متعارف کروانا

نتیجہ

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


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HeWhoMustNotBeNamed

//@version=4
strategy("HTF High/Low Repaint Strategy", overlay=true, initial_capital = 20000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, pyramiding = 1, commission_value = 0.01)

i_startTime = input(defval = timestamp("01 Jan 2010 00:00 +0000"), title = "Start Time", type = input.time)
i_endTime = input(defval = timestamp("01 Jan 2099 00:00 +0000"), title = "End Time", type = input.time)
inDateRange = true

resolution = input("3M", type=input.resolution)
HTFMultiplier = input(22, minval=1, step=1)
offset = input(0, minval=0, step=1)
lookahead = input(true)
gaps = false

f_secureSecurity_on_on(_symbol, _res, _src, _offset) => security(_symbol, _res, _src[_offset], lookahead = barmerge.lookahead_on, gaps=barmerge.gaps_on)
f_secureSecurity_on_off(_symbol, _res, _src, _offset) => security(_symbol, _res, _src[_offset], lookahead = barmerge.lookahead_on, gaps=barmerge.gaps_off)
f_secureSecurity_off_on(_symbol, _res, _src, _offset) => security(_symbol, _res, _src[_offset], lookahead = barmerge.lookahead_off, gaps=barmerge.gaps_on)
f_secureSecurity_off_off(_symbol, _res, _src, _offset) => security(_symbol, _res, _src[_offset], lookahead = barmerge.lookahead_off, gaps=barmerge.gaps_off)

f_multiple_resolution(HTFMultiplier) => 
    target_Res_In_Min = timeframe.multiplier * HTFMultiplier * (
      timeframe.isseconds   ? 1. / 60. :
      timeframe.isminutes   ? 1. :
      timeframe.isdaily     ? 1440. :
      timeframe.isweekly    ? 7. * 24. * 60. :
      timeframe.ismonthly   ? 30.417 * 24. * 60. : na)

    target_Res_In_Min     <= 0.0417       ? "1S"  :
      target_Res_In_Min   <= 0.167        ? "5S"  :
      target_Res_In_Min   <= 0.376        ? "15S" :
      target_Res_In_Min   <= 0.751        ? "30S" :
      target_Res_In_Min   <= 1440         ? tostring(round(target_Res_In_Min)) :
      tostring(round(min(target_Res_In_Min / 1440, 365))) + "D"

f_get_htfHighLow(resolution, HTFMultiplier, lookahead, gaps, offset)=>
    derivedResolution = resolution == ""?f_multiple_resolution(HTFMultiplier):resolution
    nhigh_on_on = f_secureSecurity_on_on(syminfo.tickerid, derivedResolution, high, offset) 
    nlow_on_on = f_secureSecurity_on_on(syminfo.tickerid, derivedResolution, low, offset)
    
    nhigh_on_off = f_secureSecurity_on_off(syminfo.tickerid, derivedResolution, high, offset) 
    nlow_on_off = f_secureSecurity_on_off(syminfo.tickerid, derivedResolution, low, offset)
    
    nhigh_off_on = f_secureSecurity_off_on(syminfo.tickerid, derivedResolution, high, offset) 
    nlow_off_on = f_secureSecurity_off_on(syminfo.tickerid, derivedResolution, low, offset)
    
    nhigh_off_off = f_secureSecurity_off_off(syminfo.tickerid, derivedResolution, high, offset) 
    nlow_off_off = f_secureSecurity_off_off(syminfo.tickerid, derivedResolution, low, offset)
    
    nhigh = lookahead and gaps ? nhigh_on_on :
             lookahead and not gaps ? nhigh_on_off :
             not lookahead and gaps ? nhigh_off_on :
             not lookahead and not gaps ? nhigh_off_off : na
    nlow = lookahead and gaps ? nlow_on_on :
             lookahead and not gaps ? nlow_on_off :
             not lookahead and gaps ? nlow_off_on :
             not lookahead and not gaps ? nlow_off_off : na
    [nhigh, nlow]
    
[nhigh, nlow] = f_get_htfHighLow(resolution, HTFMultiplier, lookahead, gaps, offset)
[nhighlast, nlowlast] = f_get_htfHighLow(resolution, HTFMultiplier, lookahead, gaps, offset+1)
plot(nhigh , title="HTF High",style=plot.style_circles, color=color.green, linewidth=1) 
plot(nlow , title="HTF Low",style=plot.style_circles, color=color.red, linewidth=1)

buyCondition = nhigh > nhighlast and nlow > nlowlast
sellCondition = nhigh < nhighlast and nlow < nlowlast

strategy.entry("Buy", strategy.long, when= buyCondition and inDateRange, oca_name="oca_buy")
strategy.entry("Sell", strategy.short, when= sellCondition and inDateRange, oca_name="oca_sell")


مزید