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

کثیر مدتی سپر ٹرینڈ متحرک پرامڈائڈنگ ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2025-01-06 17:02:35
ٹیگز:اے ٹی آرایس ٹیSL

img

جائزہ

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

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

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

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

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

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

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

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

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

خلاصہ

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


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy('4Vietnamese 3x Supertrend', overlay=true, max_bars_back=1000, initial_capital = 10000000000, slippage = 2, commission_type = strategy.commission.percent, commission_value = 0.013, default_qty_type=strategy.percent_of_equity, default_qty_value = 33.33, pyramiding = 3, margin_long = 0, margin_short = 0)

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Inputs

// Supertrend Settings
STATRLENGTH1 = input.int(10, title='Fast Supertrend ATR Length', group='SUPERTREND SETTINGS')
STATRMULT1 = input.float(1, title='Fast Supertrend ATR Multiplier', group='SUPERTREND SETTINGS')
STATRLENGTH2 = input.int(11, title='Medium Supertrend ATR Length', group='SUPERTREND SETTINGS')
STATRMULT2 = input.float(2, title='Medium Supertrend ATR Multiplier', group='SUPERTREND SETTINGS')
STATRLENGTH3 = input.int(12, title='Slow Supertrend ATR Length', group='SUPERTREND SETTINGS')
STATRMULT3 = input.float(3, title='Slow Supertrend ATR Multiplier', group='SUPERTREND SETTINGS')

isUseHighestOf2RedCandleSetup = input.bool(false, group = "Setup Filters")


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Calculations 
[superTrend1, dir1] = ta.supertrend(STATRMULT1, STATRLENGTH1)
[superTrend2, dir2] = ta.supertrend(STATRMULT2, STATRLENGTH2)
[superTrend3, dir3] = ta.supertrend(STATRMULT3, STATRLENGTH3)

// directionST1 = dir1 == 1 and dir1[1] == 1 ? false : dir1 == -1 and dir1[1] == -1 ? true : false
// directionST2 = dir2 == 1 and dir2[1] == 1 ? false : dir2 == -1 and dir2[1] == -1 ? true : false
// directionST3 = dir3 == 1 and dir3[1] == 1 ? false : dir3 == -1 and dir3[1] == -1 ? true : false


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Calculate highest from supertrend1 uptrend
var float highestGreen = 0
if dir1 < 0 and highestGreen == 0 and (isUseHighestOf2RedCandleSetup ? close < open : true)
    highestGreen := high
if highestGreen > 0 and (isUseHighestOf2RedCandleSetup ? close < open : true)
    if high > highestGreen
        highestGreen := high
if dir1 >= 0
    highestGreen := 0


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Entry SL
var entrySL4Long1 = false
var entrySL4Long2 = false
var entrySL4Long3 = false

isUseEntrySL = input.bool(true, group = "Entry SL Option")
dataToCalculate = input.source(low, group = "Entry SL Option")

if isUseEntrySL and (dir1 > 0 and dir2 < 0 and dir3 < 0)
    if strategy.opentrades >= 1
        if dataToCalculate > strategy.opentrades.entry_price(0)
            entrySL4Long1 := true
        else 
            entrySL4Long1 := false

        if entrySL4Long1 and close > strategy.opentrades.entry_price(0)
            strategy.exit('exit1', from_entry = 'long1', stop = strategy.opentrades.entry_price(0))

    if strategy.opentrades >= 2 
        if dataToCalculate > strategy.opentrades.entry_price(1)
            entrySL4Long2 := true
        else 
            entrySL4Long2 := false
    
        if entrySL4Long2 and close > strategy.opentrades.entry_price(1)
            strategy.exit('exit2', from_entry = 'long2', stop = strategy.opentrades.entry_price(1))   

    if strategy.opentrades >= 3 
        if dataToCalculate > strategy.opentrades.entry_price(2) 
            entrySL4Long3 := true
        else 
            entrySL4Long3 := false
    
        if entrySL4Long3 and close >  strategy.opentrades.entry_price(2)
            strategy.exit('exit3', from_entry = 'long3', stop = strategy.opentrades.entry_price(2))

if strategy.closedtrades > strategy.closedtrades[1]
    if strategy.closedtrades.exit_id(strategy.closedtrades-1) == 'exit3'
        entrySL4Long3 := false
    if strategy.closedtrades.exit_id(strategy.closedtrades-1) == 'exit2'
        entrySL4Long2 := false
    if strategy.closedtrades.exit_id(strategy.closedtrades-1) == 'exit1'
        entrySL4Long1 := false

    
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Entry
if dir3 < 0
    if dir2 > 0 and dir1 < 0
        strategy.entry('long1', strategy.long)
    else if dir2 < 0
        strategy.entry('long2', strategy.long, stop=superTrend1)
else
    if dir1 < 0 and highestGreen > 0
        strategy.entry('long3', strategy.long, stop=highestGreen)


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Exit
isUseAllDowntrendExit = input.bool(true, group = "Exit Type")
if isUseAllDowntrendExit and dir3 > 0 and dir2 > 0 and dir1 > 0 and close < open
    strategy.close_all()

isUseAvgPriceInLoss = input.bool(true, group = "Exit Type")
if isUseAvgPriceInLoss and strategy.position_avg_price > close //and strategy.position_avg_price <= close[1]
    //  and (dir1 > 0 or dir2 > 0 or dir3 > 0)
    //  and strategy.opentrades >= 1  
    //  and strategy.opentrades >= 3  
    strategy.close_all()

isUseAllPositionsInLoss = input.bool(false, group = "Exit Type")
if isUseAllPositionsInLoss
      and (
       false
         or (strategy.opentrades == 1 and ((not na(strategy.opentrades.entry_price(0))) and strategy.opentrades.entry_price(0) > close))

         or (strategy.opentrades == 1 and ((not na(strategy.opentrades.entry_price(0))) and strategy.opentrades.entry_price(0) > close)
             and ((not na(strategy.opentrades.entry_price(1))) and strategy.opentrades.entry_price(1) > close))

         or (strategy.opentrades == 1 and ((not na(strategy.opentrades.entry_price(0))) and strategy.opentrades.entry_price(0) > close)
             and ((not na(strategy.opentrades.entry_price(1))) and strategy.opentrades.entry_price(1) > close)
             and ((not na(strategy.opentrades.entry_price(2))) and strategy.opentrades.entry_price(2) > close))
         )
    strategy.close_all()


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Plot
plot(superTrend1, title='Fast Supertrend',      color=dir1 == 1 and dir1[1] == 1 ? color.red : dir1 == -1 and dir1[1] == -1 ? color.green : na)
plot(superTrend2, title='Medium Supertrend',    color=dir2 == 1 and dir2[1] == 1 ? color.red : dir2 == -1 and dir2[1] == -1 ? color.green : na)
plot(superTrend3, title='Slow Supertrend',      color=dir3 == 1 and dir3[1] == 1 ? color.red : dir3 == -1 and dir3[1] == -1 ? color.green : na)


متعلقہ

مزید