ADX اشارے پر مبنی رجحان ٹریکنگ اور قلیل مدتی تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-22 17:10:55
ٹیگز:

img

جائزہ

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

اصول

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

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

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

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

اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:

  1. سپر رجحان اشارے کا استعمال کریں تاکہ رجحان کی سمت کو ٹریک کیا جاسکے تاکہ مارکیٹوں کے اتار چڑھاؤ سے منافع میں تالا لگانے سے بچ سکے۔

  2. رجحان کی طاقت کا اندازہ کرنے کے لئے ADX اشارے کی مدد سے ، استحکام کے دوران تجارت میں غلطیوں سے بچیں۔

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

  4. زیادہ خریدنے اور زیادہ فروخت سے بچنے کے لئے RSI کو یکجا کریں.

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

خطرے کا تجزیہ

اس حکمت عملی میں کچھ خطرات بھی ہیں:

  1. سپر ٹرینڈ اور ایم اے اشارے متضاد سگنل جاری کر سکتے ہیں۔

  2. ADX اشارے کو 14 سائیکل پر مقرر کیا گیا ہے، جو اچانک واقعات کے لئے کافی حساس نہیں ہے.

  3. آر ایس آئی پیرامیٹر ڈیفالٹ پر سیٹ ہے، جو مکمل طور پر overbought اور oversold سے بچنے میں ناکام ہو سکتا ہے.

  4. اچانک ہونے والے واقعات جیسے بڑی بری / اچھی خبروں کے اثرات پر غور نہیں کیا گیا ہے۔

متعلقہ حل:

  1. ایم اے سائیکل کو سپر ٹرینڈ اشارے کے مطابق ایڈجسٹ کریں۔

  2. اچانک واقعات پر حساسیت بڑھانے کے لیے ADX سائیکل کو مختصر کرنے کی کوشش کریں۔

  3. بہترین اقدار تلاش کرنے کے لئے RSI پیرامیٹرز کو بہتر بنائیں.

  4. اہم نیوز ریلیز سے بچنے کے لیے نیوز فلٹر ماڈیول شامل کریں۔

اصلاح

اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں بھی بہتر بنایا جاسکتا ہے:

  1. رجحان کا اندازہ کرنے کے لئے مشین لرننگ ماڈل شامل کریں، تجارتی فیصلوں کو زیادہ ذہین بنائیں.

  2. رجحان کی طاقت کا اندازہ کرنے کے لئے ADX کے بجائے متبادل جذباتی اشارے متعارف کرانے کی کوشش کریں۔

  3. سٹاپ نقصان کو زیادہ متحرک اور درست بنانے کے لئے انکولی سٹاپ نقصان ماڈیول کو بڑھانا۔

  4. مجموعی حکمت عملی کو بہتر بنانے کے لئے گہری سیکھنے کی ٹیکنالوجی کے ساتھ مزید خصوصیات نکالیں.

  5. حکمت عملی کی توسیع کو بڑھانے کے لئے حکمت عملی کی ترقی کے لئے پائیتھون جیسی اعلی درجے کی زبانوں کا استعمال کریں۔

خلاصہ

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


/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bendre ADX STrend", overlay = true)

///////////////////////////
// SuperTrend + Pivot Point
//////////////////////////

src =  input(close, title="EMA Source")
PPprd = input(defval = 2, title="Pivot Point Period")
AtrFactor=input(defval = 2, title = "ATR Factor")
AtrPd=input(defval = 21, title = "ATR Period")

StartDate = input(timestamp("1 Dec 2023"), title="Start Date")
EndDate = input(timestamp("12 Jan 2024"), title="End Date")
window()  => true

var float ph = na
var float pl = na
ph := ta.pivothigh(PPprd, PPprd)
pl :=ta.pivotlow(PPprd, PPprd)

float center = na
center := center[1]
// float lastpp = ph ? ph : pl ? pl : 0.0
float lastpp = na(ph) ? na(pl) ? na : pl : ph

if lastpp > 0
    if na(center)
        center := lastpp
    else
        center := (center * 2 + lastpp) / 3

Up = center - (AtrFactor * ta.atr(AtrPd))
Dn = center + (AtrFactor * ta.atr(AtrPd))

var float TUp = na
var float TDown = na
Trend = 0
TUp := close[1] > TUp[1] ? math.max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown

// Lines
linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na
plot(Trailingsl, color = linecolor ,  linewidth = 2, title = "PP SuperTrend")

bsignalSSPP = close > Trailingsl
ssignalSSPP = close < Trailingsl


///////
// ADX
//////

lenADX = 14
th = 14
TrueRange = math.max(math.max(high-low, math.abs(high-nz(close[1]))), math.abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? math.max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? math.max(nz(low[1])-low, 0): 0
SmoothedTrueRange = 0.0
SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/lenADX) + TrueRange
SmoothedDirectionalMovementPlus = 0.0
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/lenADX) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = 0.0
SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/lenADX) + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = math.abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = ta.sma(DX, lenADX)


//////
// MA
/////

lenMA = 21
srcMA = input(close, title="Source")
// offsetMA = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
offsetMA = input(0, title="Offset")
outMA = ta.sma(srcMA, lenMA)

//
// RSI
//
length = input( 14 )
overSold = input( 30 )
overBought = input( 65 )
price = close
vrsi = ta.rsi(price, length)

//
// DMI - Direction Movement Index
// 
[diplus1, diminus1, adx] = ta.dmi(14, 14)

// Buy - Sell Entries
buy = bsignalSSPP and outMA < close and ADX > th
sell = ssignalSSPP 


if (buy and vrsi > overBought and adx > 19)
    // .order // Tuned version
    strategy.entry("Buy", strategy.long, when = window())
    // strategy.close("Sell", "close Sell")

if (sell) and (strategy.position_size > 0)
    // strategy.entry("Sell", strategy.short)
    strategy.close("Buy", "Close Buy")

if(sell and vrsi < overSold and adx > 25)
    strategy.entry("Sell", strategy.short, when = window())

if ( ta.crossover( diminus1, diplus1) or ((buy) and (strategy.position_size > 0)) )
    strategy.close("Sell", "close Sell")

// if(sell) and (diminus1 > diplus1) and adx > 23 and adx > adx[1] and (vrsi < overSold)
//     strategy.entry("Sell", strategy.short, when = window())

// if (strategy.position_size > 0 and ta.crossunder(diminus1, adx)) or (strategy.position_size > 0  and (buy))
//     strategy.close("Sell", "close Sell")





مزید