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

مصنف:چاؤ ژانگ، تاریخ: 2023-11-22 15:50:07
ٹیگز:

img

جائزہ

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

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

اس حکمت عملی میں عام لکیری رجعت کا استعمال کرتے ہوئے گذشتہ 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)


مزید