ڈبل ہموار موونگ ایوریج ٹریڈنگ کی حکمت عملی


تخلیق کی تاریخ: 2023-10-13 15:45:58 آخر میں ترمیم کریں: 2023-10-13 15:45:58
کاپی: 1 کلکس کی تعداد: 642
1
پر توجہ دیں
1617
پیروکار

جائزہ

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

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

اس حکمت عملی کا استعمال کرتے ہوئے دو سیٹ کے مختلف پیرامیٹرز کی ترتیب کے ہموار حرکت پذیر اوسط گروپ کے تعاون سے اہم ٹریڈنگ سگنل. سب سے پہلے استعمال کرتے ہوئے ایک تیز رفتار ترتیب کے 8 سیکنڈ ہموار حرکت پذیر اوسط گروپ کے تعاون سے پہلے کی تصدیق کے سگنل کے طور پر، اور پھر استعمال کرتے ہوئے ایک تھوڑا سا سست 16 سیکنڈ ہموار حرکت پذیر اوسط کے طور پر دوسری تصدیق کے سگنل. جب ایک تیز رفتار حرکت پذیر اوسط ایک خرید سگنل جاری کرتا ہے، اگر ایک تھوڑا سا سست حرکت پذیر اوسط بھی اسی سمت میں سگنل جاری کرتا ہے، اور حال ہی میں 1 سے 2 جڑ K لائنوں کے اندر اندر ہے، تو زیادہ پوزیشن کھولی جاتی ہے. جب ایک تیز رفتار حرکت پذیر اوسط ایک فروخت سگنل جاری کرتا ہے، اگر ایک تھوڑا سا سست حرکت پذیر اوسط بھی اسی سمت میں سگنل جاری کرتا ہے، اور حال ہی میں 1 سے 2 جڑ K لائنوں کے اندر ہے، تو پوزیشن خالی کردی جاتی ہے.

اسٹریٹجک فوائد

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

اسٹریٹجک رسک

  • ہموار منتقل اوسط نظام رجحان الٹ پوائنٹ پر دیر سے سگنل کی شناخت کرنے کے لئے آسان ہے ، جس سے کچھ نقصان ہوسکتا ہے
  • ڈبل چپچپا حرکت پذیری اوسط کے غیر اہم حالات میں ایک ہی وقت میں غلط سگنل جاری کرنے کا امکان
  • حجم اشارے کے محدود اثرات ، تمام گمراہ کن سگنلوں سے مکمل طور پر بچنے کے قابل نہیں

مندرجہ بالا خطرات کو کم کرنے کے لئے، مندرجہ ذیل اصلاحات پر غور کیا جا سکتا ہے:

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

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

  • MACD جیسے معاون اشارے شامل کرنے کے لئے رجحان کا رخ موڑنے کے لئے
  • مختلف نسلوں کی خصوصیات کے مطابق اے ٹی آر اسٹاپ نقصان روکنے والے پیرامیٹرز کو ایڈجسٹ کریں
  • اسٹریٹجک منافع میں اضافے کے لئے بڑے پیمانے پر اسٹاک کی تعمیر کی کوششیں
  • حکمت عملی کے استحکام کو بہتر بنانے کے لئے پیرامیٹرز کو دوبارہ جانچنے کے نتائج کے مطابق

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-10-06 00:00:00
end: 2023-10-12 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Designed per No Nonsense Forex VP rules
//Made to be as modular as possible, so we can swap the indicators in and out.
//Originated from causecelebre
//Tried to put in as much VP rules as possible

///////////////////////////////////////////////////
//Rules Implemented:
///////////////////////////////////////////////////
// - SL 1.5 x ATR
// - TP 1 x ATR
//
// - Entry conditions
//// - Entry within first confirmation cross over and 1 candle of second confirmation + volume
// - Exit conditions
//// - Exit on exit indicator or when baseline or confirmation flip 

///////////////////////////////////////////////////
//Trades entries
///////////////////////////////////////////////////
// - First entry L1 or S1 with standard SL and TP

///////////////////////////////////////////////////
//Included Indicators and settings
///////////////////////////////////////////////////
// - Confirmtion = SSL 8, 16
// - Volume = TDFI 6

///////////////////////////////////////////////////
//Credits
// Strategy causecelebre https://www.tradingview.com/u/causecelebre/
// TDFI causecelebre https://www.tradingview.com/u/causecelebre/
// SSL Channel ErwinBeckers https://www.tradingview.com/u/ErwinBeckers/
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// strategy(title="NNFX Strategy 3 Indicator Template | jh", overlay = true, pyramiding=0, initial_capital=20000, currency=currency.USD, calc_on_order_fills=0,default_qty_type=strategy.fixed, default_qty_value=10000)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Set the main stuff  ****
///////////////////////////////////////////////////

//Price
price = close

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ATR stuff
///////////////////////////////////////////////////

slMultiplier = input(1.5, "SL")
tpMultiplier = input(1, "TP")

atrlength = input(title="ATR Length", defval=14, minval=1)
atrsmoothing = input(title="Smoothing", defval="SMA", options=["RMA", "SMA", "EMA", "WMA"])

ma_function(source, atrlength) => 
    if atrsmoothing == "RMA"
        rma(source, atrlength)
    else
        if atrsmoothing == "SMA"
            sma(source, atrlength)
        else
            if atrsmoothing == "EMA"
                ema(source, atrlength)
            else
                wma(source, atrlength)

//plot(ma_function(tr(true), atrlength), title = "ATR", color=#991515, transp=0)

atr = ma_function(tr(true), atrlength)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Confirmation 1 Fast ****
///////////////////////////////////////////////////

///////////////////////////////////////////////////
//SSL 6
///////////////////////////////////////////////////

ssllen1=input(title="SSL 1 Length Period", defval=8)
smaHigh1=sma(high, ssllen1)
smaLow1=sma(low, ssllen1)
Hlv1 = na
Hlv1 := close > smaHigh1 ? 1 : close < smaLow1 ? -1 : Hlv1[1]
sslDown1 = Hlv1 < 0 ? smaHigh1: smaLow1
sslUp1   = Hlv1 < 0 ? smaLow1 : smaHigh1

plot(sslDown1, "SSL Down", linewidth=1, color=red)
plot(sslUp1, "SSL Up", linewidth=1, color=lime)

///////////////////////////////////////////////////
//Confirm Signals
///////////////////////////////////////////////////

c_Up = sslUp1
c_Down =sslDown1

//Signals based on crossover
c_cross_Long = crossover(c_Up, c_Down)
c_cross_Short = crossover(c_Down, c_Up)

//Signals based on signal position
c_trend_Long = c_Up > c_Down ? 1 : 0
c_trend_Short = c_Down > c_Up ? 1 : 0

confirm_Long = c_cross_Long
confirm_Short = c_cross_Short

plotshape(c_cross_Long, color = green, style=shape.triangleup, location=location.top)
plotshape(c_cross_Short, color = red, style=shape.triangledown, location=location.top)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Confirmation 2 Slow ****
///////////////////////////////////////////////////

///////////////////////////////////////////////////
//SSL 30
///////////////////////////////////////////////////

///////////////////////////////////////////////////
//SSL
///////////////////////////////////////////////////

ssllen2=input(title="SSL 2 Length Period", defval=16)
smaHigh2=sma(high, ssllen2)
smaLow2=sma(low, ssllen2)
Hlv2 = na
Hlv2 := close > smaHigh2 ? 1 : close < smaLow2 ? -1 : Hlv2[1]
sslDown2 = Hlv2 < 0 ? smaHigh2: smaLow2
sslUp2   = Hlv2 < 0 ? smaLow2 : smaHigh2

plot(sslDown2, "SSL Down", linewidth=1, color=orange)
plot(sslUp2, "SSL Up", linewidth=1, color=blue)

///////////////////////////////////////////////////
//Confirm Signals
///////////////////////////////////////////////////
c2_Up = sslUp2
c2_Down = sslDown2

//Signals based on crossover
c2_cross_Long = crossover(c2_Up, c2_Down)
c2_cross_Short = crossover(c2_Down, c2_Up)

//Signals based on signal position
c2_trend_Long = c2_Up > c2_Down ? 1 : 0
c2_trend_Short = c2_Down > c2_Up ? 1 : 0

confirm2_Long = c2_trend_Long
confirm2_Short = c2_trend_Short

plotshape(c2_cross_Long, color = green, style=shape.triangleup, location=location.bottom)
plotshape(c2_cross_Short, color = red, style=shape.triangledown, location=location.bottom)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Volume Indicator Start ****
///////////////////////////////////////////////////

///////////////////////////////////////////////////
//TDFI
///////////////////////////////////////////////////

lookback = input(6, title = "TDFI Lookback") 
filterHigh = input(0.05, title = "Filter High") 
filterLow = input(-0.05, title = "Filter Low") 

mma = ema(price * 1000, lookback)
smma = ema(mma, lookback)

impetmma = mma - mma[1]
impetsmma= smma - smma[1]
divma = abs(mma - smma)
averimpet = (impetmma + impetsmma) / 2

number = averimpet
pow = 3
result = na

for i = 1 to pow - 1
    if i == 1
        result := number
    result := result * number

tdf = divma * result
ntdf = tdf / highest(abs(tdf), lookback * 3)

///////////////////////////////////////////////////
//Volume Signals
///////////////////////////////////////////////////
v_Long = ntdf > filterHigh ? 1 : 0
v_Short = filterLow > ntdf ? 1 : 0

volumeLong = v_Long
volumeShort = v_Short

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// **************************** Logic to handle NNFX rules ****************************
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//Checking for confirmation indication with 1 candle difference for second confirmtion and volume
enterLong   = confirm_Long and (confirm2_Long[0] or confirm2_Long[1])      and (volumeLong[0] or volumeLong[1]) ? 1 : 0
enterShort  = confirm_Short and (confirm2_Short[0] or confirm2_Short[1])   and (volumeShort[0] or volumeShort[1]) ? 1 : 0

exitLong = c_cross_Short or c2_cross_Short ? 1 : 0 
exitShort = c_cross_Long or c2_cross_Long ? 1 : 0 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Entries and Exits
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (year>2009)

    //Long entries with standard 1.5 ATR for SL, 1 ATR for TP
    long_sl = price - (atr * slMultiplier)
    long_tp = price + (atr * tpMultiplier)

    //Short entries with standard 1.5 ATR for SL, 1 ATR for TP
    short_sl = price + (atr * slMultiplier)
    short_tp = price - (atr * tpMultiplier)

    strategy.close("L1", when = exitLong)
    strategy.close("S1", when = exitShort)

    strategy.exit("L Limit Exit", "L1", stop = long_sl, limit = long_tp)
    strategy.exit("S Limit Exit", "S1", stop = short_sl, limit = short_tp)

    strategy.order("L1", strategy.long, when = enterLong)
    strategy.order("S1", strategy.short, when = enterShort)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//End
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////