رجحان کے اعتماد پر مبنی حکمت عملی کے بعد رجحان


تخلیق کی تاریخ: 2023-11-22 15:50:07 آخر میں ترمیم کریں: 2023-11-22 15:50:07
کاپی: 0 کلکس کی تعداد: 734
1
پر توجہ دیں
1617
پیروکار

رجحان کے اعتماد پر مبنی حکمت عملی کے بعد رجحان

جائزہ

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

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

اس حکمت عملی نے پچھلے N اختتامی قیمتوں کے لئے لکیری فٹنس کا حساب لگانے کے لئے عام لکیری رجعت کا استعمال کیا ، لکیری فٹنس کے لئے اسکیلپنگ k اور اختتامی قیمتوں کے ساتھ انحراف معیاری فرق σ ∈ اور پھر رجحان کی عدم اعتماد کی تعریف k / σ ∈ کے طور پر کی ہے۔

جب رجحان کا اعتماد زیادہ ہوتا ہے تو ، زیادہ سے زیادہ انٹری کی قیمت میں کمی ہوتی ہے۔ جب یہ کم ہوتا ہے تو ، اس کی قیمت میں کمی ہوتی ہے۔ اسی طرح ، جب رجحان کا اعتماد کم ہوتا ہے تو ، اس کی قیمت میں کمی ہوتی ہے۔ جب اس سے زیادہ ہوتا ہے تو ، اس کی قیمت میں کمی ہوتی ہے۔

اس طرح ، یہ قیمتوں میں تبدیلیوں سے پیدا ہونے والے سگنل کو فلٹر کرسکتا ہے جو واضح طور پر لکیری رجحانات پر عمل نہیں کرتے ہیں۔

طاقت کا تجزیہ

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

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

خطرے کا تجزیہ

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

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

اصلاح کی سمت

اس حکمت عملی کو مزید بہتر بنایا جاسکتا ہے:

  1. منافع کو لاک کرنے اور خطرے کو کنٹرول کرنے کے لئے اسٹاپ نقصان اور اسٹاپ لاجسٹکس شامل کریں

  2. پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرنے کے لئے ماڈیول کو بہتر بنانے کے لئے پیرامیٹرز شامل کریں

  3. ٹرینڈ ریورس پوائنٹس کا اندازہ لگانے کے لئے مشین لرننگ ماڈل شامل کریں ، حکمت عملی کی کامیابی کو مزید بہتر بنائیں

  4. مختلف اقسام اور وقت کے ساتھ مطابقت کو آزمانے اور عام کرنے کی صلاحیت کو بڑھانے کے لئے

خلاصہ کریں۔

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCamel61097

// ################################################################################################

// "This is a trend following strategy that performed very well on the past 5 years"
// "Intended to be used on BTC-USDT, 4hr timeframe"

// "A factor 2 Leverage can be added by changing Order Size to 200% of equity"
// "Higher leverage is not recommended due to big drawdowns"

// "Also seems to work on 1D timeframe, although ideal parameters may be different"
// "Also seems to work on ETH-USDT and some other altcoins, although ideal parameters are different"

// ################################################################################################

//@version=5
strategy("Trend Following based on Trend Confidence", overlay=false )

// Inputs

source      = input(close)

since       = input(timestamp('2000-01-01'), title='Start trading interval')
till        = input(timestamp('2030-01-01'), title='End trading interval')

length      = input(30, title='Length')

longs_on    = input.bool(true, title='Longs')
shorts_on   = input.bool(true, title='Shorts')

// Parameters for best performance 2018 - 2022
// long_entry  = input.float(0.26, step=0.01, title='Long entry threshold')
// long_exit   = input.float(-0.10, step=0.01, title='Long exit threshold')
// short_entry = input.float(-0.24, step=0.01, title='Short entry threshold')
// short_exit  = input.float(-0.04, step=0.01, title='Short exit threshold')

long_entry  = input.float(0.25, step=0.01, title='Long entry threshold')
long_exit   = input.float(-0.10, step=0.01, title='Long exit threshold')
short_entry = input.float(-0.25, step=0.01, title='Short entry threshold')
short_exit  = input.float(-0.05, step=0.01, title='Short exit threshold')

stop_loss   = input.float(10, step=1, title='Stop loss (percentage)') / 100

// Trend Confidence

linreg = ta.linreg(source, length, 0)
linreg_p = ta.linreg(source, length, 0+1)

x = bar_index
slope = linreg - linreg_p
intercept = linreg - x*slope
deviationSum = 0.0
for i = 0 to length-1
    deviationSum := deviationSum + math.pow(source[i]-(slope*(x-i)+intercept), 2)
deviation = math.sqrt(deviationSum/(length))

slope_perc = slope / source[0]
deviation_perc = deviation / source[0]
trend_confidence = slope_perc / deviation_perc

// Strategy

in_interval = true

sl_long = strategy.position_avg_price * (1 - stop_loss)
sl_short = strategy.position_avg_price * (1 + stop_loss)

if in_interval and longs_on and ta.crossover(trend_confidence, long_entry)
    strategy.entry("TC Long Entry", strategy.long)
    strategy.exit("TC Long Exit", stop=sl_long)
if in_interval and longs_on and ta.crossunder(trend_confidence, long_exit)
    strategy.close("TC Long Entry")

if in_interval and shorts_on and ta.crossunder(trend_confidence, short_entry)
    strategy.entry("TC Short Entry", strategy.short)
    strategy.exit("TC Short Exit", stop=sl_short)
if in_interval and shorts_on and ta.crossover(trend_confidence, short_exit)
    strategy.close("TC Short Entry")

// Plots 

plot(trend_confidence, "Trend Confidence", color.rgb(255, 255, 255))

plot(long_entry, "", color.rgb(0, 255, 0), linewidth=1)
plot(long_exit, "", color.rgb(255, 0, 0), linewidth=1)
plot(short_entry, "", color=bar_index % 10 == 0 ? color.rgb(0, 255, 0) : #00000000, linewidth=1)
plot(short_exit, "", color=bar_index % 10 == 0 ? color.rgb(255, 0, 0) : #00000000, linewidth=1)