مومنٹم بریک آؤٹ حکمت عملی کی نشاندہی کرتا ہے

مصنف:چاؤ ژانگ، تاریخ: 2023-11-02 14:39:22
ٹیگز:

img

جائزہ

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

اصول

یہ حکمت عملی بنیادی طور پر دو اشارے پر مبنی ہے:

  1. فاسٹ آر ایس آئی: یہ قیمت کی رفتار کا فیصلہ کرنے کے لئے حالیہ 3 باروں کے عروج اور زوال کا حساب لگاتا ہے۔ جب فاسٹ آر ایس آئی 10 سے نیچے ہوتا ہے تو اسے اوور سیلڈ اسٹیٹس سمجھا جاتا ہے۔

  2. جسم کا فلٹر: یہ حالیہ 20 بار کے اوسط جسم کے سائز کا حساب لگاتا ہے۔ جب جسم کا سائز اوسط جسم سے 2.5 گنا زیادہ ہوتا ہے تو ، اسے درست بریک آؤٹ سمجھا جاتا ہے۔

جب فاسٹ آر ایس آئی 10 سے کم ہے اور باڈی فلٹر درست ہے تو ، ایک لمبی پوزیشن کھولی جائے گی۔ اس کے بعد ، 20٪ کا فکسڈ ٹیک منافع مقرر کیا جاتا ہے۔ جب قیمت کھلی قیمت * (1 + ٹیک منافع کا فیصد) سے تجاوز کرتی ہے تو ، پوزیشن بند کردی جائے گی۔

اس حکمت عملی کا فائدہ یہ ہے کہ یہ رجحانات کے آغاز میں بریک آؤٹ کے مواقع کو پکڑ سکتا ہے۔ تیز رفتار آر ایس آئی oversold سطحوں کا فیصلہ کرتا ہے اور جسم فلٹر جھوٹے بریک آؤٹ سے بچتا ہے۔ مقررہ فیصد ہر تجارت کے منافع میں منافع حاصل کرتا ہے اور رجحان کو پکڑتا رہتا ہے۔

فوائد کا تجزیہ

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

  1. فاسٹ آر ایس آئی oversold سطحوں کی نشاندہی کرتا ہے اور انٹری کی درستگی میں اضافہ کرتا ہے۔

  2. جسم فلٹر اتار چڑھاؤ کی وجہ سے جھوٹے breakouts سے بچتا ہے.

  3. مقررہ فیصد منافع حاصل کریں مستحکم منافع حاصل کریں اور رجحانات کو پکڑیں.

  4. منطق سادہ اور واضح ہے، سمجھنے اور لاگو کرنے میں آسان ہے.

  5. خوبصورت کوڈ کی ساخت بڑی توسیع کے ساتھ، بہتر بنانے کے لئے آسان.

  6. مستحکم مثبت واپسی اور بیک ٹیسٹ میں اعلی جیت کی شرح.

خطرے کا تجزیہ

نوٹ کرنے کے لیے کچھ خطرات:

  1. سٹاپ نقصان کا کوئی طریقہ کار نہیں، نقصانات میں توسیع کا خطرہ ہے۔

  2. غیر مناسب منافع لینے کی سطح سے قبل یا بہت گہری باہر نکلنے کا سبب بن سکتا ہے۔

  3. متزلزل بازاروں میں لگاتار چھوٹے نقصانات ہو سکتے ہیں۔

  4. فنانسنگ کے اخراجات پر غور نہیں کیا جاتا، اصل منافع کم ہو سکتا ہے.

  5. مختلف مصنوعات میں ناکافی پیرامیٹر کی اصلاح.

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

کچھ پہلوؤں کو بہتر بنایا جا سکتا ہے:

  1. ایک تجارت کے نقصان کو کنٹرول کرنے کے لئے سٹاپ نقصان شامل کریں.

  2. رجحانات کی پیروی کرنے کے لئے متحرک منافع حاصل کریں.

  3. داخلہ کی درستگی کو بہتر بنانے کے لئے فرار منطق کو بہتر بنائیں.

  4. سرمایہ کے استعمال کو بہتر بنانے کے لئے پوزیشن سائزنگ ماڈیول شامل کریں.

  5. مختلف مصنوعات کے لئے پیرامیٹر اصلاح ماڈیول شامل کریں.

  6. فلٹرز شامل کریں تاکہ ہلکی مارکیٹوں میں نقصانات سے بچ سکیں۔

  7. اوسط لاگت کے انتظام کو شامل کرنے پر غور کریں.

نتیجہ

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


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// this is based on https://www.tradingview.com/v/PbQW4mRn/
strategy(title = "ONLY LONG V4 v1", overlay = true, initial_capital = 1000, pyramiding = 1000,
   calc_on_order_fills = false, calc_on_every_tick = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 50, commission_value = 0.075)

//study(title = "ONLY LONG V4 v1", overlay = true)

//Fast RSI
src = close
fastup = rma(max(change(src), 0), 3)
fastdown = rma(-min(change(src), 0), 3)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Body Filter
body = abs(close - open)
abody = sma(body, 20)

mac = sma(close, 20)
len = abs(close - mac)
sma = sma(len, 100)
max = max(open, close)
min = min(open, close)
up = close < open and len > sma * 2 and min < min[1] and fastrsi < 10 and body > abody * 2.5

// Strategy
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

var bool longCondition = na

longCondition := up == 1 ? 1 : na

// Get the price of the last opened long

var float last_open_longCondition = na

last_open_longCondition := longCondition ? close : nz(last_open_longCondition[1])

// Get the bar time of the last opened long

var int last_longCondition = 0

last_longCondition := longCondition ? time : nz(last_longCondition[1])

// Take profit
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

tp = input(20, "TAKE PROFIT %", type = input.float, minval = 0, step = 0.5)

long_tp = crossover(high, (1+(tp/100))*last_open_longCondition) and not longCondition

// Get the time of the last tp close

var int last_long_tp = na

last_long_tp := long_tp ? time : nz(last_long_tp[1])

Final_Long_tp = long_tp and last_longCondition > nz(last_long_tp[1])

// Count your long conditions

var int sectionLongs = 0

sectionLongs := nz(sectionLongs[1])

var int sectionTPs = 0

sectionTPs := nz(sectionTPs[1])

// Longs Counter

if longCondition
    sectionLongs := sectionLongs + 1
    sectionTPs := 0

if Final_Long_tp
    sectionLongs := 0
    sectionTPs := sectionTPs + 1
    
// Signals
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

// Long

// label.new(
//    x = longCondition[1] ? time : na, 
//    y = na, 
//    text = 'LONG'+tostring(sectionLongs), 
//    color=color.lime, 
//    textcolor=color.black,  
//    style = label.style_labelup, 
//    xloc = xloc.bar_time, 
//    yloc = yloc.belowbar,
//    size = size.tiny)
   
// Tp

// label.new(
//    x = Final_Long_tp ? time : na, 
//    y = na, 
//    text = 'PROFIT '+tostring(tp)+'%', 
//    color=color.orange, 
//    textcolor=color.black,  
//    style = label.style_labeldown, 
//    xloc = xloc.bar_time, 
//    yloc = yloc.abovebar,
//    size = size.tiny) 

ltp = iff(Final_Long_tp, (last_open_longCondition*(1+(tp/100))), na), plot(ltp, style=plot.style_cross, linewidth=3, color = color.white, editable = false)

// Backtesting
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

testStartYear = input(2019, "BACKTEST START YEAR", minval = 1, maxval = 2222) 
testStartMonth = input(01, "BACKTEST START MONTH", minval = 1, maxval = 12)
testStartDay = input(01, "BACKTEST START DAY", minval = 1, maxval = 31)
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

strategy.entry("long", strategy.long, when = longCondition and (time >= testPeriodStart))
strategy.exit("TP", "long", limit = (last_open_longCondition*(1+(tp/100))))

// Alerts
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

alertcondition(longCondition[1], title="Long Alert", message = "LONG")
alertcondition(Final_Long_tp, title="Long TP Alert", message = "LONG TP")


مزید