وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ذہین ٹائم بیسڈ لانگ شارٹ روٹیشن متوازن ٹریڈنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-11-12 16:33:43
ٹیگز:اے ٹی آرایس ایم اےآر ایس آئیبی بیایم اے

img

جائزہ

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

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

حکمت عملی بنیادی طور پر وقت کی مدت اور پوزیشن کی حیثیت کے ذریعے تجارت کو کنٹرول کرتی ہے۔ سب سے پہلے ، فعال مدت (() فنکشن اس بات کا تعین کرتا ہے کہ آیا تجارت آخری 500 باروں کے موثر تجارتی وقفے کے اندر ہے۔ مؤثر وقفے کے اندر ، حکمت عملی پوزیشن کی حیثیت (positionHeld) ، ہولڈنگ ٹائم (barsHeld) ، اور وقفے کا وقت (barsPaused) جیسے متغیرات کی بنیاد پر تجارتی اقدامات کا فیصلہ کرتی ہے۔ جب سوئنگ ٹریڈنگ موڈ فعال ہوتا ہے تو ، حکمت عملی طویل اور مختصر سمتوں کے درمیان تیزی سے گھومتی ہے۔ جب غیر فعال ہوجاتی ہے تو ، پوزیشن 3 ادوار کے بعد بند ہوجاتی ہیں اور نئے تجارتی مواقع کا انتظار کرتی ہیں۔

حکمت عملی کے فوائد

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

حکمت عملی کے خطرات

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

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

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

خلاصہ

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


/*backtest
start: 2024-10-12 00:00:00
end: 2024-11-11 00:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Tickerly Test Strategy", overlay=true)

// Inputs
longEnabled = input.bool(true, "Enable Long Trades")
shortEnabled = input.bool(true, "Enable Short Trades")
swingEnabled = input.bool(false, "Enable Swing Trading")

// Variables
var positionHeld = 0
var barsHeld = 0
var barsPaused = 0
var lastAction = "none"

// Function to determine if we're in the last 500 bars
inActivePeriod() => 
    barIndex = bar_index
    lastBarIndex = last_bar_index
    barIndex >= (lastBarIndex - 499)

// Main strategy logic
if inActivePeriod()
    if swingEnabled
        if positionHeld == 0 and barstate.isconfirmed
            if lastAction != "long"
                strategy.entry("Long", strategy.long)
                positionHeld := 1
                barsHeld := 0
                lastAction := "long"
            else
                strategy.entry("Short", strategy.short)
                positionHeld := -1
                barsHeld := 0
                lastAction := "short"
        
        if positionHeld != 0
            barsHeld += 1
            if barsHeld >= 2
                if positionHeld == 1
                    strategy.entry("Short", strategy.short)
                    positionHeld := -1
                    barsHeld := 0
                    lastAction := "short"
                else
                    strategy.entry("Long", strategy.long)
                    positionHeld := 1
                    barsHeld := 0
                    lastAction := "long"
    else
        if positionHeld == 0 and barsPaused >= 1 and barstate.isconfirmed
            if longEnabled and shortEnabled
                if lastAction != "long"
                    strategy.entry("Long", strategy.long)
                    positionHeld := 1
                    barsHeld := 0
                    barsPaused := 0
                    lastAction := "long"
                else
                    strategy.entry("Short", strategy.short)
                    positionHeld := -1
                    barsHeld := 0
                    barsPaused := 0
                    lastAction := "short"
            else if longEnabled
                strategy.entry("Long", strategy.long)
                positionHeld := 1
                barsHeld := 0
                barsPaused := 0
                lastAction := "long"
            else if shortEnabled
                strategy.entry("Short", strategy.short)
                positionHeld := -1
                barsHeld := 0
                barsPaused := 0
                lastAction := "short"
        
        if positionHeld != 0
            barsHeld += 1
            if barsHeld >= 3
                strategy.close_all()
                positionHeld := 0
                barsHeld := 0
                barsPaused := 0  // Reset pause counter when exiting a position
        else
            barsPaused += 1

// Plotting active period for visual confirmation
plot(inActivePeriod() ? 1 : 0, "Active Period", color=color.new(color.blue, 80), style=plot.style_areabr)

متعلقہ

مزید