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


تخلیق کی تاریخ: 2023-11-13 16:50:45 آخر میں ترمیم کریں: 2023-11-13 16:50:45
کاپی: 2 کلکس کی تعداد: 665
1
پر توجہ دیں
1617
پیروکار

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

جائزہ

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

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

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

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

  3. ٹی ڈی ایف آئی کو مقداری صلاحیت کے اشارے کے طور پر استعمال کیا جاتا ہے ، جس سے فیصلہ کرنے کی صلاحیت کا پتہ چلتا ہے۔ صرف مقداری سطح تک پہنچنے کے بعد ہی داخلہ لیا جاسکتا ہے۔

  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
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////