ڈبل ایم اے سپرپوزیشن کی بنیاد پر اڈاپٹیو بیک ٹیسٹنگ ٹائم رینج سلیکشن کی حکمت عملی


تخلیق کی تاریخ: 2024-01-05 12:12:10 آخر میں ترمیم کریں: 2024-01-05 12:12:10
کاپی: 0 کلکس کی تعداد: 589
1
پر توجہ دیں
1621
پیروکار

ڈبل ایم اے سپرپوزیشن کی بنیاد پر اڈاپٹیو بیک ٹیسٹنگ ٹائم رینج سلیکشن کی حکمت عملی

جائزہ

اس حکمت عملی کا بنیادی خیال ایک ایسا فریم ورک لانا ہے جس میں وقت کی حد کو لچکدار طریقے سے منتخب کیا جاسکتا ہے ، جس سے صارفین کو مختلف ضروریات کے مطابق خود بخود یا دستی طور پر وقت کی حد مقرر کی جاسکتی ہے۔

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

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

اس حکمت عملی میں ریٹرننگ ڈیٹ رینج سلیکشن ماڈیول اور ڈبل ایم اے ٹریڈنگ حکمت عملی ماڈیول شامل ہیں۔

ماڈیول منتخب کریں

  1. چار تاریخ کی حد کے اختیارات دستیاب ہیں: تمام تاریخی اعداد و شمار (ALL) ، حالیہ دن (DAYS) ، حالیہ ہفتہ (WEEKS) ، اور دستی طور پر تاریخ کی حد (MANUAL) ۔
  2. منتخب کردہ دائرہ کار کے مطابق ، ٹائم کالم میں تبدیل ہونے والے متحرک ترتیبات کے ذریعہ اسٹارٹ اپ اور اسٹاپ ٹائم کی پیمائش کریں۔
  3. وقت کی شرائط کا استعمال کرتے ہوئےwindow() فنکشن فلٹر K لائن ، صرف منتخب کردہ تاریخ کی حد میں ریٹرننگ کے لئے۔

ڈبل ایم اے ٹریڈنگ حکمت عملی ماڈیول

  1. فاسٹ ایم اے کے دوران فاسٹ ایم اے ، ڈیفالٹ 14؛ سست ایم اے کے دوران سست ایم اے ، ڈیفالٹ 28
  2. جب فاسٹ ایم اے پر سست ایم اے ہو تو زیادہ کام کریں۔ جب فاسٹ ایم اے کے نیچے سست ایم اے ہو تو برابر پوزیشن۔
  3. ایم اے کی منحنی خطوط کو آہستہ آہستہ ڈرائنگ کریں۔

حکمت عملی کا تجزیہ

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

خطرے اور حل کا تجزیہ

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title = "How To Auto Set Date Range", shorttitle = " ", overlay = true)

// Revision:        1
// Author:          @allanster 

// === INPUT MA ===
fastMA = input(defval = 14, title = "FastMA", type = input.integer, minval = 1, step = 1)
slowMA = input(defval = 28, title = "SlowMA", type = input.integer, minval = 1, step = 1)

// === INPUT BACKTEST RANGE ===
useRange     = input(defval = "WEEKS", title = "Date Range", type = input.string, confirm = false, options = ["ALL", "DAYS", "WEEKS", "MANUAL"])
nDaysOrWeeks = input(defval = 52, title = "# Days or Weeks", type = input.integer, minval = 1)
FromMonth    = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay      = input(defval = 15, title = "From Day", minval = 1, maxval = 31)
FromYear     = input(defval = 2019, title = "From Year", minval = 2014)
ToMonth      = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay        = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
ToYear       = input(defval = 9999, title = "To Year", minval = 2014)

// === FUNCTION EXAMPLE ===
window() => true

// === LOGIC ===
buy  = crossover(sma(close, fastMA), sma(close, slowMA))         // buy when fastMA crosses over slowMA
sell = crossunder(sma(close, fastMA), sma(close, slowMA))        // sell when fastMA crosses under slowMA

// === EXECUTION ===
strategy.entry("L", strategy.long, when=window() and buy)        // buy long when "within window of time" AND crossover
strategy.close("L", when=window() and sell)                      // sell long when "within window of time" AND crossunder         

// === PLOTTING ===
plot(sma(close, fastMA), title = 'FastMA', color = color.aqua, linewidth = 2, style = plot.style_line)    // plot FastMA
plot(sma(close, slowMA), title = 'SlowMA', color = color.yellow, linewidth = 2, style = plot.style_line)  // plot SlowMA