رجحان کی پیروی کرنے والی بریک آؤٹ حکمت عملی پر مبنی


تخلیق کی تاریخ: 2024-01-22 17:21:10 آخر میں ترمیم کریں: 2024-01-22 17:21:10
کاپی: 0 کلکس کی تعداد: 545
1
پر توجہ دیں
1617
پیروکار

رجحان کی پیروی کرنے والی بریک آؤٹ حکمت عملی پر مبنی

جائزہ

یہ ایک ٹرینڈ ٹریکنگ پر مبنی بریک آؤٹ حکمت عملی ہے۔ یہ ایک ٹرینڈ ٹریکنگ کے لئے ایک بریک آؤٹ ہونے پر مضبوط ان پٹ اسٹاک خریدتا ہے اور ایک بریک آؤٹ ہونے پر کمزور اسٹاک فروخت کرتا ہے۔

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

یہ حکمت عملی بنیادی طور پر دو اشارے پر مبنی ہے جس میں داخلہ اور باہر نکلنے کے سگنل کا فیصلہ کیا جاتا ہے ، ایک اعلی ترین () فنکشن کے ذریعہ طے شدہ اعلی ترین قیمت ہے ، اور ایک کم ترین () فنکشن کے ذریعہ طے شدہ کم ترین قیمت ہے۔

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

اس حکمت عملی میں ایک ہی وقت میں موبائل اسٹاپ اور فکسڈ اسٹاپ کا تعین کیا گیا ہے۔ موبائل اسٹاپ اے ٹی آر اشارے پر مبنی ہے ، جو ایک مقررہ دورانیے میں اے ٹی آر کی قیمتوں کا حساب کتاب کرکے اور ایک ضرب کے ساتھ () ٹریلنگ اے ٹی آر ملٹیپلائر) کے طور پر موبائل اسٹاپ کی حیثیت سے ہے۔ فکسڈ اسٹاپ بھی اسی طرح ، اے ٹی آر اشارے پر مبنی ہے۔

پہلے روٹ K لائن پر فکسڈ سٹاپ کا اثر ہوتا ہے اور اس کے بعد اس کو منتقل کیا جاتا ہے۔ اس طرح کا مجموعہ منافع کے کچھ حصوں کو لاک کرسکتا ہے جبکہ رجحان کی پیروی کی جاسکتی ہے۔

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

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

طاقت کا تجزیہ

یہ ایک ایسی حکمت عملی ہے جس کی بنیادی خوبی یہ ہے کہ:

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

  2. پوزیشن اور اسٹاپ سائنس معقول 🌸 زیادہ سے زیادہ نقصان کا تناسب طے کرنا ، اکاؤنٹ کے حقوق و مفادات کا تعلق وغیرہ پوزیشن کو معقول بناتا ہے ، اور زیادہ مقدار یا غیر موثر تجارت سے بچتا ہے۔ 🌸 مجموعہ اسٹاپ کا طریقہ منافع کو مقفل کرتا ہے اور رجحان کی پیروی کرتا ہے۔

  3. سادہ عملی ، استعمال میں آسان۔ صرف بنیادی اشارے کی ضرورت ہے ، حکمت عملی کا منطق سادہ اور واضح ہے ، اور اس پر قابو پانا آسان ہے۔

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

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

خطرے کا تجزیہ

اس حکمت عملی کے اہم خطرات یہ ہیں:

  1. رجحان کے الٹ جانے کا خطرہ۔ توڑنے کی حکمت عملی رجحان کے فیصلے پر بہت زیادہ انحصار کرتی ہے ، اور اگر یہ غلط فیصلہ کیا جاتا ہے تو ، بہت زیادہ نقصانات کا سامنا کرنا پڑ سکتا ہے۔

  2. غلط پیرامیٹرز کا خطرہ۔ اعلی ترین قیمت کم سے کم قیمت کی مدت کے پیرامیٹرز کو غلط طریقے سے منتخب کرنے سے رجحان کو یاد کیا جاسکتا ہے ، اور پوزیشن کے پیرامیٹرز کو غلط طریقے سے ترتیب دینے سے زیادہ نقصان ہوسکتا ہے۔

  3. اسٹاپ نقصان کا خطرہ بہت زیادہ ہے۔ اگر اسٹاپ نقصان کا فاصلہ بہت چھوٹا ہے تو ، مارکیٹ کے شور سے باہر نکل سکتا ہے۔

اس مسئلے کا حل یہ ہے کہ:

  1. ٹرینڈ فلٹر شامل کریں۔ مثال کے طور پر ، دوسرے اشارے کے فیصلوں کو شامل کریں ، تاکہ غلطی سے بچنے سے بچ سکیں۔

  2. پیرامیٹرز کو بہتر بنانے کا انتخاب کریں۔ پیرامیٹرز کو جانچنے کے لئے اور ان کی استحکام کو یقینی بنانے کے لئے ان کی ترجیحات کا انتخاب کریں۔

  3. سٹاپ نقصان کی فاصلہ مناسب طریقے سے نرمی کی جاسکتی ہے۔ تاکہ اسٹاپ نقصان کی فاصلہ کو یقینی طور پر ریڈیکٹ کرنے کی اجازت دی جاسکے۔

اصلاح کی سمت

اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:

  1. رجحانات کا تعین کرنے کے لئے مزید اشارے شامل کریں۔ اعلی ترین کم سے کم قیمت کے علاوہ ، حرکت پذیر اوسط اور اسی طرح کے فیصلے شامل کیے جاسکتے ہیں ، تاکہ رجحانات کا تعین زیادہ درست ہو۔

  2. پیرامیٹرز کی ترتیب کو بہتر بنائیں۔ اعلی ترین کم سے کم قیمت کی مدت کے پیرامیٹرز ، اسٹاپ نقصان کے ضارب پیرامیٹرز وغیرہ کی جانچ کریں ، اور بہترین پیرامیٹرز کا مجموعہ منتخب کریں۔

  3. مارکیٹ ایڈجسٹ پوزیشن الگورتھم کے مطابق۔ پوزیشنوں کو مارکیٹ میں اتار چڑھاؤ سے منسلک کیا جاسکتا ہے ، جیسے کہ جب VIX بڑھتا ہے تو پوزیشنوں کو کم کیا جاسکتا ہے۔

  4. مقدار میں اضافے کی نشاندہی کرنے والا فلٹر۔ صرف مقدار میں اضافے کی توسیع کے دوران داخل ہوں ، جھوٹے توسیع سے بچیں۔

  5. بیس رینج اور ربط پر غور کریں ترجیحی تجارت کی اقسام۔ کم بیس رینج اتار چڑھاو اور کم ربط والی اقسام کے مجموعے کا انتخاب ، مجموعہ کے خطرے کو کم کرسکتا ہے۔

  6. نقصانات کو روکنے کے طریقہ کار کو بہتر بنانے اور ایڈجسٹ کرنے کے لئے۔ متحرک اور مقررہ نقصانات کے تناسب کے مجموعے کی جانچ کی جاسکتی ہے ، جس سے نقصانات کو روکنے کے انتہائی خطرہ کو کم کیا جاسکتا ہے۔

خلاصہ کریں۔

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

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

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle="Trend Surfers - Breakout", title="Trend Surfers - Premium Breakout",
     overlay=true)

// Risk for position and pyramid
maxriskval = input(2, "Max % risk", type = input.float,
     tooltip="Risk % over total equity / Position", group = "Risk Management")
pairnumber = input(title = "How many pairs",type = input.integer, defval= 1,
     tooltip="How many pairs are you trading with the strategy?", group = "Risk Management")

// Emtry Exit
highPeriod = input(title="Highest High Period", type=input.integer, defval=168
     , tooltip="Highest High of X bars - This will trigger a Long Entry when close is above. (Thin Green Line)"
     , group = "Entry Condition")
lowPeriod = input(title="Lowest Low Period", type=input.integer, defval=168,
     tooltip="Lowest low of X bars - This will trigger a Short Entry when close is under. (Thin Red Line)"
     , group = "Entry Condition")
// Stoploss
trailingAtrPeriod = input(title="Trailing ATR Pediod", type=input.integer, defval=10,
     tooltip="Average True Range for the Trailing Stop. (Thick Green Line) "
     , group = "Exit Condition")
trailingAtrMultiplier = input(title="Trailing ATR Multiplier", type=input.float, defval=8
     , group = "Exit Condition")
fixAtrPeriod = input(title="Fix ATR Pediod", type=input.integer, defval=10,
     tooltip="Average True Range for the Fix Stoloss. (Thick Yellow Line)"
     , group = "Exit Condition")
fixAtrMultiplier = input(title="Fix ATR Multiplier", type=input.float, defval=2
     , group = "Exit Condition")
// Pair info 
pair = syminfo.basecurrency + syminfo.currency

// High Low Variable
highestHigh = highest(high, highPeriod)[1]
lowestLow = lowest(low, lowPeriod)[1]
trailingAtr = atr(trailingAtrPeriod) * trailingAtrMultiplier

// Trade Condition
longCondition = crossover(close, highestHigh) 
shortCondition = crossunder(close, lowestLow)

// Risk Variable
fixAtr = atr(fixAtrPeriod) * fixAtrMultiplier
stopvaluelong = close[1] - fixAtr[1]
stopvalueshort = close[1] + fixAtr[1]

// Position size Long
maxpossize = strategy.equity / close 
positionsizelong = ( ( ( (maxriskval/100) * strategy.equity) / (close - stopvaluelong))) 
stopperclong = ((close - stopvaluelong) / close) * 100
leveragelong = max(1, ceil(positionsizelong / maxpossize)) * 2
posperclong =  (((positionsizelong * close) / strategy.equity) *100 / leveragelong) / pairnumber
realposlong = (((posperclong / 100) * strategy.equity) * leveragelong) / close

// Position size Short
positionsizeshort = ( ( ( (maxriskval/100) * strategy.equity) / (stopvalueshort - close))) 
stoppercshort = ((close - stopvalueshort) / close) * 100
leverageshort = max(1, ceil(positionsizeshort / maxpossize)) * 2
pospercshort =  (((positionsizeshort * close) / strategy.equity) *100 / leverageshort) / pairnumber
realposshort = (((pospercshort / 100) * strategy.equity) * leverageshort) / close

// Alert Message
entry_long_message = '\nGo Long for ' + pair + 'NOW!' +
                     '\nPosition Size % =' + tostring(posperclong) +
                     '\nLeverage' + tostring(leveragelong) +
                     '\nStoploss Price =' + tostring(stopvaluelong) +
                     '\nClose any Short position that are open for ' + pair + '!' +
                     '\n\nVisit TrendSurfersSignals.com' +
                     '\nFor automated premium signals (FREE)'

entry_short_message ='\nGo Short for ' + pair + 'NOW!' +
                     '\nPosition Size % =' + tostring(pospercshort) +
                     '\nLeverage' + tostring(leverageshort) +
                     '\nStoploss Price =' + tostring(stopvalueshort) +
                     '\nClose any Long position that are open for ' + pair + '!' +
                     '\n\nVisit TrendSurfersSignals.com' +
                     '\nFor automated premium signals (FREE)'

exit_short_message = '\nExit Short for ' + pair + 'NOW!' +
                     '\n\nVisit TrendSurfersSignals.com' +
                     '\nFor automated premium signals (FREE)'

exit_long_message = '\nExit Long for ' + pair + 'NOW!' +
                     '\n\nVisit TrendSurfersSignals.com' +
                     '\nFor automated premium signals (FREE)'
// Order
if longCondition 
    strategy.entry("Long", strategy.long, stop=highestHigh, comment="Long", qty=realposlong
     , alert_message = entry_long_message)
if shortCondition
    strategy.entry("Short", strategy.short, stop=lowestLow, comment="Short", qty=realposshort
     , alert_message = entry_short_message)

// Stoploss Trailing
longTrailing = close - trailingAtr
shortTrailing = close + trailingAtr

var longTrailingStop = 0.0
var shortTrailingStop = 999999.9

trailingStopLine = 0.0
trailingStopLine := na
fixedStopLine = 0.0
fixedStopLine := na
var inTrade = 0
if longCondition or shortCondition
    if 0 == inTrade
        if longCondition
            inTrade := 1
        else
            inTrade := -1
if 1 == inTrade and (shortCondition or low <= max(fixedStopLine[1], longTrailingStop))
    inTrade := 0
if -1 == inTrade and (longCondition or high >= min(fixedStopLine[1], shortTrailingStop))
    inTrade := 0

longTrailingStop := if (1 == inTrade)
    stopValue = longTrailing
    max(stopValue, longTrailingStop[1])
else
    0

shortTrailingStop := if (-1 == inTrade)
    stopValue = shortTrailing
    min(stopValue, shortTrailingStop[1])
else
    999999

// Fix Stoploss
firstPrice = 0.0
firstFixAtr = 0.0
firstPrice := na
firstFixAtr := na
if 0 != inTrade
    firstPrice := valuewhen(inTrade != inTrade[1] and 0 != inTrade, close, 0)
    firstFixAtr := valuewhen(inTrade != inTrade[1] and 0 != inTrade, fixAtr, 0)
    if 1 == inTrade
        fixedStopLine := firstPrice - firstFixAtr
        trailingStopLine := longTrailingStop
    else
        fixedStopLine := firstPrice + firstFixAtr
        trailingStopLine := shortTrailingStop

if (strategy.position_size > 0)
    strategy.exit(id="L Stop", stop=max(fixedStopLine, longTrailingStop)
     , alert_message = exit_long_message)

if (strategy.position_size < 0)
    strategy.exit(id="S Stop", stop=min(fixedStopLine, shortTrailingStop)
     , alert_message = exit_long_message)
    

// Plot
plot(highestHigh, color=color.green, linewidth=1, transp=0, title='Highest High')
plot(lowestLow, color=color.red, linewidth=1, transp=0, title='Lowest Low')
plot(trailingStopLine, color=color.lime, linewidth=2, transp=0, offset=1, title='Trailing Stop')
plot(fixedStopLine, color=color.orange, linewidth=2, transp=0, offset=1, title='Fixed Stop')