اعلی تعدد متحرک اوپننگ رینج پیش رفت تجارتی حکمت عملی

ORB RANGE BREAKOUT HFT EST OHLC SL TP
تخلیق کی تاریخ: 2025-02-21 14:02:59 آخر میں ترمیم کریں: 2025-02-21 14:02:59
کاپی: 2 کلکس کی تعداد: 519
2
پر توجہ دیں
319
پیروکار

اعلی تعدد متحرک اوپننگ رینج پیش رفت تجارتی حکمت عملی اعلی تعدد متحرک اوپننگ رینج پیش رفت تجارتی حکمت عملی

جائزہ

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

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

اس حکمت عملی کا بنیادی منطق یہ ہے کہ ہر ٹریڈنگ دن کے آغاز کے بعد 15 منٹ کے اندر اندر (9:30-9:45 EST) ایک قیمت کا فاصلہ قائم کیا جائے اور اس عرصے کے دوران اعلی ترین اور کم ترین قیمتوں کو ریکارڈ کیا جائے۔ ایک بار جب یہ فاصلہ بن جاتا ہے تو ، حکمت عملی اس دن کے 12 بجے تک قیمتوں کی نگرانی کرے گی:

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

اسٹریٹجک فوائد

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

اسٹریٹجک رسک

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2025-01-21 00:00:00
end: 2025-01-24 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
args: [["MaxCacheLen",580,358374]]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © UKFLIPS69

//@version=6
strategy("ORB", overlay=true, fill_orders_on_standard_ohlc = true)

trade_on_monday = input(false, "Trade on Monday") 
trade_on_tuesday = input(true, "Trade on Tuesday") 
trade_on_wednesday = input(true, "Trade on Wednesday")
trade_on_thursday = input(false, "Trade on Thursday")
trade_on_friday = input(true, "Trade on Friday")
// Get the current day of the week (1=Monday, ..., 6=Saturday, 0=Sunday)
current_day = dayofweek(time) 
current_price = request.security(syminfo.tickerid, "1", close)
// Define trading condition based on the day of the week
is_trading_day = (trade_on_monday and current_day == dayofweek.monday) or
                 (trade_on_tuesday and current_day == dayofweek.tuesday) or
                 (trade_on_wednesday and current_day == dayofweek.wednesday) or
                 (trade_on_thursday and current_day == dayofweek.thursday) or
                 (trade_on_friday and current_day == dayofweek.friday)
// ─── Persistent variables ─────────────────────────
var line  orHighLine       = na   // reference to the drawn line for the OR high
var line  orLowLine        = na   // reference to the drawn line for the OR low
var float orHigh           = na   // stores the open-range high
var float orLow            = na   // stores the open-range low
var int   barIndex930      = na   // remember the bar_index at 9:30
var bool  rangeEstablished = false
var bool  tradeTakenToday  = false  // track if we've opened a trade for the day

// ─── Detect times ────────────────────────────────
is930  = (hour(time, "America/New_York") == 9 and minute(time, "America/New_York") == 30)
is945  = (hour(time, "America/New_York") == 9 and minute(time, "America/New_York") == 45)

// Between 9:30 and 9:44 (inclusive of 9:30 bar, exclusive of 9:45)?
inSession = (hour(time, "America/New_York") == 9 and minute(time, "America/New_York") >= 30 and minute(time, "America/New_York") < 45)

// ─── Reset each day at 9:30 ─────────────────────
if is930
    // Reset orHigh / orLow
    orHigh := na
    orLow  := na
    rangeEstablished := false
    tradeTakenToday  := false
    // Record the bar_index for 9:30
    barIndex930 := bar_index
// ─── ONLY FORM OR / TRADE IF TODAY IS ALLOWED ─────────────────────
if is_trading_day
// ─── Accumulate the OR high/low from 9:30 to 9:44 ─
    if inSession
        orHigh := na(orHigh) ? high : math.max(orHigh, high)
        orLow  := na(orLow)  ? low  : math.min(orLow, low)

// ─── Exactly at 9:45, draw the lines & lock range ─
    if is945 and not na(orHigh) and not na(orLow)

    // Mark that the OR is established
        rangeEstablished := true

// ─── TRADING LOGIC AFTER 9:45, but BEFORE NOON, and if NO trade taken ─
    if rangeEstablished and not na(orHigh) and not na(orLow) 
    // Only trade if it's still BEFORE 12:00 (noon) EST and we haven't taken a trade today
        if hour(time, "America/New_York") < 12 and (not tradeTakenToday)
        // 1) Compute distances for stops & targets
            float stopSize   = 0.5 * (orHigh - orLow)      // half the OR size
            float targetSize = 3 * stopSize      // 3x the stop => 1.5x the entire OR
    
        // 2) Check if price breaks above OR => go long
            if close > orHigh 
            // Only enter a new long if not already in a long position (optional)
                if strategy.position_size <= 0
                    strategy.entry("ORB Long", strategy.long)
                    strategy.exit("Long Exit", from_entry = "ORB Long", stop = orHigh - stopSize, limit  = strategy.position_avg_price + targetSize)
                // Flag that we've taken a trade today
                    tradeTakenToday := true
    
        // 3) Check if price breaks below OR => go short
            if close < orLow 
            // Only enter a new short if not already in a short position (optional)
                if strategy.position_size >= 0
                    strategy.entry("ORB Short", strategy.short)
                    strategy.exit("Short Exit", from_entry = "ORB Short", stop = orLow + stopSize, limit  = strategy.position_avg_price - targetSize)
                // Flag that we've taken a trade today
                    tradeTakenToday := true
if hour(time, "America/New_York") == 16 and minute(time, "America/New_York") == 0
    strategy.close_all()