اس حکمت عملی کا بنیادی خیال ایک رجحان کی پیروی کرنے والی حکمت عملی کو نافذ کرنا ہے جو زیادہ سے زیادہ عین مطابق ہے۔ یہ ماضی کی بندش کی قیمتوں کی ایک خاص تعداد کے
اس حکمت عملی میں عام لکیری رجعت کا استعمال کرتے ہوئے گذشتہ N اختتامی قیمتوں کی لکیری فٹ کا حساب لگایا جاتا ہے ، جس میں اختتامی قیمتوں سے انحراف کا ڈھلوان k اور معیاری انحراف σ حاصل ہوتا ہے۔ پھر رجحان کا اعتماد k / σ کے طور پر بیان کیا جاتا ہے۔
جب ٹرینڈ کا اعتماد
اس طرح یہ ایک واضح لکیری رجحان کی پیروی نہیں ہے کہ جنگلی قیمت کی نقل و حرکت سے سگنل فلٹر کر سکتے ہیں.
حکمت عملی اعداد و شمار میں رجحان کی پیروی اور لکیری رجعت کے طریقوں کو یکجا کرتی ہے ، جو قلیل مدتی قیمتوں میں اتار چڑھاؤ کی پیروی کرنے سے گریز کرسکتی ہے اور صرف طویل مدتی رجحانات کی پیروی کرسکتی ہے ، اس طرح کم تجارتی تعدد اور زیادہ جیت کی شرح حاصل ہوتی ہے۔
اس حکمت عملی میں پیرامیٹرز کو ایڈجسٹ کرنے کی بڑی گنجائش ہے اور پیرامیٹرز کو ایڈجسٹ کرکے مختلف مصنوعات اور ٹائم فریموں کو ایڈجسٹ کیا جاسکتا ہے ، جس سے اچھی عمومی صلاحیت حاصل ہوتی ہے۔
اس حکمت عملی میں پھنس جانے کا خطرہ ہے۔ جب اہم رجحان کی تبدیلی واقع ہوتی ہے تو یہ بڑے نقصانات پیدا کرے گا۔ اس کے علاوہ ، پیرامیٹر کی غلط ترتیبات سے بھی تجارت میں اضافہ ہوسکتا ہے یا اچھے تجارتی مواقع سے محروم ہوسکتا ہے۔
اسٹاپ نقصان کو نیچے کے خطرے پر قابو پانے کے لئے ترتیب دیا جاسکتا ہے۔ اسی وقت ، پیرامیٹرز کے انتخاب کا احتیاط سے اندازہ لگانا چاہئے تاکہ زیادہ سے زیادہ فٹنگ سے بچ سکے۔
اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں مزید بہتر بنایا جاسکتا ہے:
منافع کو مقفل کرنے اور خطرات کو کنٹرول کرنے کے لئے سٹاپ نقصان / منافع حاصل کرنے کا منطق شامل کریں
متحرک پیرامیٹرز کی ایڈجسٹمنٹ کے لئے انکولی اصلاح ماڈیول شامل کریں
رجحان الٹ پوائنٹس کا تعین کرنے اور جیت کی شرح کو مزید بہتر بنانے کے لئے مشین لرننگ ماڈل شامل کریں
عام کاری کو بہتر بنانے کے لئے مختلف مصنوعات اور ٹائم فریم پر موافقت کی جانچ
عام طور پر ، یہ خطرہ کنٹرول کے ساتھ طویل مدتی رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ شور ٹریڈنگ سگنل کو فلٹر کرنے کے لئے رجحان کی پیروی اور لکیری رجعت کے طریقوں کو جوڑتا ہے۔ پیرامیٹر ٹوننگ کے ذریعے ، یہ مختلف مصنوعات اور ٹائم فریموں میں اچھی طرح سے موافقت کرسکتا ہے ، اور یہ ایک موثر حکمت عملی ہے جس کی گہرائی سے تحقیق اور بہتری کی ضرورت ہے۔
/*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)