دوہری ہموار چلتی اوسط ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-13 15:45:58
ٹیگز:

جائزہ

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

حکمت عملی منطق

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

فوائد

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

خطرات

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

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

  • رجحان کی طاقت کے اشارے کو رجحان کی تبدیلی کی نشاندہی میں مدد کے لئے شامل کریں
  • زیادہ موثر تیز رفتار / سست ترتیب کے لئے ہموار ایم اے پیرامیٹرز کو بہتر بنائیں
  • مختلف حجم اشارے کی جانچ کریں تاکہ کم حجم کے گمراہ کن سگنل کو بہتر طریقے سے فلٹر کیا جاسکے

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

  • رجحان کی تبدیلیوں کی نشاندہی کرنے میں مدد کے لئے 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
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



    




مزید