قیمت کی خرابی اور اوسط الٹ پر مبنی رفتار توڑ ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-13 16:50:45
ٹیگز:

img

جائزہ

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

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

  1. قیمت کی رجحان کی سمت کا تعین کرنے کے لئے HMA کو بیس لائن کے طور پر استعمال کریں۔ HMA سے اوپر کی قیمت اوپر کی رجحان کی نشاندہی کرتی ہے ، HMA سے نیچے کی قیمت نیچے کی رجحان کی نشاندہی کرتی ہے۔

  2. ایس ایس ایل چینل چینل کی سمت کے ساتھ قیمت کے تعلقات پر مبنی رجحان کی تصدیق کرکے تصدیق کے اشارے کے طور پر کام کرتا ہے۔

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

  4. آر وی آئی اشارے کو باہر نکلنے کے اشارے کے طور پر کام کرتا ہے۔ جب آر وی آئی لائن کی شکل بدل جاتی ہے تو رجحان ختم ہوجاتا ہے۔

  5. اے ٹی آر سٹاپ نقصان اور منافع لینے کا حساب لگاتا ہے۔

  6. اندراج کی شرائط: قیمت بیس لائن سے ٹوٹ جاتی ہے ، ایس ایس ایل چینل کی سمت قیمت کے ساتھ سیدھ میں آتی ہے ، ٹی ڈی ایف آئی حد تک پہنچ جاتا ہے۔

  7. باہر نکلنے کی شرائط: آر وی آئی لائن کی شکل میں تبدیلی، قیمت کی خرابی بیس لائن اور ایس ایس ایل چینل کے ذریعے۔

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

  1. متعدد اشارے کو یکجا کرنے سے جھوٹے بریک آؤٹس کو مؤثر طریقے سے فلٹر کرنے میں مدد ملتی ہے۔

  2. سخت اندراج کے حالات اور سٹاپ نقصان کے باہر نکلنے کنٹرول سنگل نقصان.

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

  4. اشارے کے پیرامیٹرز کے لئے بہت زیادہ اصلاح کی جگہ، مختلف مصنوعات اور ٹائم فریموں کے مطابق.

خطرے کا تجزیہ

  1. رجحان کی تبدیلی کی نشاندہی کرنے میں ناکامی، اونچائیوں / نچلی سطحوں کا پیچھا کرکے زیادہ تجارت کا خطرہ.

  2. قلیل مدتی کارروائیوں، اوور ٹریڈنگ کے خطرات.

  3. سٹاپ نقصان کی سطح کی ترتیب میں ذہنی اثر، بہت لچکدار یا بہت تنگ ہو سکتا ہے.

  4. پیرامیٹرز کی غلط ترتیب سے بہت کثرت یا ناکافی تجارت ہوسکتی ہے۔

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

  1. رجحان کی سمت کا تعین کرنے میں درستگی کو یقینی بنانے کے لئے رجحان کی تشخیص کے اشارے شامل کریں.

  2. اعلی / نچلے درجے کی پیروی کرنے کے امکان کو کم کرنے کے لئے الٹ سگنل اشارے شامل کریں.

  3. زیادہ متحرک سٹاپ نقصان کے لئے اے ٹی آر کو اے ٹی آر ٹریلنگ اسٹاپ پر متحرک ایڈجسٹمنٹ پر غور کریں۔

  4. پیرامیٹر کی اصلاح کی ہدایات تلاش کرنے کے لئے مختلف ایم اے سسٹم کی جانچ کریں۔

  5. مخصوص تجارتی مصنوعات کے لئے پیرامیٹرز کو بہتر بنائیں.

نتیجہ

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


/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
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 1 candles of baseline + 1 x confirmation + volume
//// - Entry only if baseline is < 1 x ATR
// - Exit conditions
//// - Exit on exit indicator or when baseline or confirmation flip 

///////////////////////////////////////////////////
//Trades entries
///////////////////////////////////////////////////
// - First entry L1 or S1 with standard SL and TP
// - Second entry L2 or S2 with standard SL and exit upon the exit conditions

///////////////////////////////////////////////////
//Included Indicators and settings
///////////////////////////////////////////////////
// - Baseline = HMA 20
// - Confirmtion = SSL 10
// - Volume = TDFI 4
// - Exit = RVI 4

///////////////////////////////////////////////////
//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 | jh", overlay = true )

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

//Price
price = close

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

atrLength = input(14, "ATR Length")
slMultiplier = input(1.5, "SL")
tpMultiplier = input(1, "TP")
atr = atr(atrLength)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Baseline ****
///////////////////////////////////////////////////

///////////////////////////////////////////////////
//HMA 20
///////////////////////////////////////////////////

hmaslowlength = input(20, minval=1)
src = input(close, title="Source")
slowhullma = wma(2*wma(src, hmaslowlength/2)-wma(src, hmaslowlength), round(sqrt(hmaslowlength)))
plot(slowhullma, title = "baseline", color = yellow, linewidth=2, transp=0)

///////////////////////////////////////////////////
// Base Signals
///////////////////////////////////////////////////

///////////////////////////////////////////////////
baseline = slowhullma

//Signals based on crossover
//baseShort = crossover(baseLine, price)
//baseLong = crossover(price, baseLine)

//Signals based on signal position
b_Short = baseline > price ? 1 : 0
l_Long = baseline < price ? 1 : 0

baseShort = b_Short
baseLong = l_Long

///////////////////////////////////////////////////
//ATR Check
///////////////////////////////////////////////////

distBasefromPrice = abs(baseline - price)
atrCheck = distBasefromPrice <= atr ? 1 : 0

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Confirmation ****
///////////////////////////////////////////////////

///////////////////////////////////////////////////
//SSL Channel
///////////////////////////////////////////////////

sslLen=input(title="SSL Period", defval=10)
smaHigh=sma(high, sslLen)
smaLow=sma(low, sslLen)
Hlv = na
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh: smaLow
sslUp   = Hlv < 0 ? smaLow : smaHigh

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

c_Up = sslUp
c_Down = sslDown

//Signals based on crossover
c_Long = crossover(c_Up, c_Down)
c_Short = crossover(c_Down, c_Up)

confirmLong = c_Long
confirmShort = c_Short

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

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

lookback = input(4, 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

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// **** Exit Indicator ****
///////////////////////////////////////////////////

///////////////////////////////////////////////////
//RVI 4
///////////////////////////////////////////////////

rgvlen = input(4, title="RVI Length", minval=1)
rvi = sum(swma(close-open), rgvlen)/sum(swma(high-low),rgvlen)
sig = swma(rvi)

///////////////////////////////////////////////////
//Exit Signals
///////////////////////////////////////////////////
e_Short = crossover(rvi, sig)
e_Long = crossover(sig, rvi)

exitOutofShort = e_Short
exitOutofLong = e_Long

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

//Checking for base and confirmation indication with 1 candle difference
baseandConfirmLong = ((baseLong[0] and confirmLong[0]) or (baseLong[1] and confirmLong[0]) or (baseLong[1] and confirmLong[1]) or (baseLong[0] and confirmLong[1])) ? 1 : 0
baseandConfirmShort = ((baseShort[0] and confirmShort[0]) or (baseShort[1] and confirmShort[0]) or (baseShort[1] and confirmShort[1]) or (baseShort[0] and confirmShort[1])) ? 1 : 0

//Combining with volume with 1 candle difference
enterLong = ((baseandConfirmLong[0] and volumeLong[0]) or (baseandConfirmLong[1] and volumeLong[0]) or (baseandConfirmLong[1] and volumeLong[1]) or (baseandConfirmLong[0] and volumeLong[1])) ? 1 : 0
enterShort = ((baseandConfirmShort[0] and volumeShort[0]) or (baseandConfirmShort[1] and volumeShort[0]) or (baseandConfirmShort[1] and volumeShort[1]) or (baseandConfirmShort[0] and volumeShort[1])) ? 1 : 0

//Exit on base or confirmation flip over
baseandConfirmFliptoShort = ((baseShort[0] or confirmShort[0]) or (baseShort[1] or confirmShort[0]) or (baseShort[1] or confirmShort[1]) or (baseShort[0] or confirmShort[1])) ? 1 : 0
baseandConfirmFliptoLong = ((baseLong[0] or confirmLong[0]) or (baseLong[1] or confirmLong[0]) or (baseLong[1] or confirmLong[1]) or (baseLong[0] or confirmLong[1])) ? 1 : 0

//Exit on base and confirmation flip or exit indicator 
exitLong = exitOutofLong or baseandConfirmFliptoShort ? 1 : 0 
exitShort = exitOutofShort or baseandConfirmFliptoLong ? 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
    strategy.entry("L1", strategy.long, when = enterLong and atrCheck)
    strategy.exit("L1 SL Exit", "L1", stop = long_sl, limit = long_tp)
    strategy.close("L1", when = exitLong)
    
    //Long entries with no TP
    strategy.entry("L2", strategy.long, when = enterLong and atrCheck)
    strategy.exit("L2 SL Exit", "L2", stop = long_sl)
    strategy.close("L2", when = exitLong)

    //Short entries with standard 1.5 ATR for SL, 1 ATR for TP
    short_sl = price + atr * slMultiplier
    short_tp = price - atr * tpMultiplier
    strategy.entry("S1", strategy.short, when = enterShort and atrCheck)
    strategy.exit("S1 SL Exit", "Short1", stop = short_sl, limit = short_tp)
    strategy.close("S1", when = exitShort)
    
    //Short entries with no TP
    strategy.entry("S2", strategy.short, when = enterShort and atrCheck)
    strategy.exit("S2 Exit", stop = short_sl)
    strategy.close("S2", when = exitShort)
    
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//End
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



    




مزید