
یہ حکمت عملی ایک ڈبل ٹائم اسکیل متحرک حکمت عملی ہے۔ یہ اعلی درجے کی ٹائم پیریڈ پر سادہ منتقل اوسط ((SMA) کا استعمال کرتے ہوئے رجحان کی سمت کا فیصلہ کرتا ہے ، اور نچلے درجے کے ٹائم پیریڈ پر محور پوائنٹس ((PivotLow اور PivotHigh) کا استعمال کرتے ہوئے الٹ پوائنٹس کی شناخت کرتا ہے۔ جب اعلی درجے کی ٹائم پیریڈ میں اضافہ ہوتا ہے اور نچلے درجے کی ٹائم پیریڈ میں منفی محور ہوتا ہے تو زیادہ کھل جاتا ہے ، اور جب اعلی درجے کی ٹائم پیریڈ میں کمی ہوتی ہے اور نچلے درجے کی ٹائم پیریڈ میں منفی محور ہوتا ہے تو خالی ہوتا ہے۔
اس حکمت عملی کا بنیادی اصول یہ ہے کہ اعلی درجے کے ٹائم سائیکل کی رجحان کی سمت نچلے درجے کے ٹائم سائیکل کی حرکت کو متاثر کرتی ہے۔ جب اعلی درجے کے ٹائم سائیکل کا رجحان بڑھتا ہے تو ، نچلے درجے کے ٹائم سائیکل کی واپسی خریدنے کا زیادہ امکان ہوتا ہے۔ جب اعلی درجے کے ٹائم سائیکل کا رجحان کم ہوتا ہے تو ، نچلے درجے کے ٹائم سائیکل کا الٹ ہونا زیادہ امکان ہوتا ہے۔ حکمت عملی اعلی درجے کے ٹائم سائیکل کی رجحان کی سمت کا فیصلہ کرنے کے لئے سادہ حرکت پذیری اوسط (ایس ایم اے) کا استعمال کرتی ہے ، اور محور (پائیوٹ لو اور پائیوٹ ہائی) کا استعمال کرتے ہوئے اعلی درجے کے ٹائم سائیکل کے الٹ نقطہ کی نشاندہی کرتی ہے۔
یہ دو ٹائم اسکیل متحرک حکمت عملی اعلی اور کم سطح کے ٹائم پیکیج کے مابین رابطوں کا استعمال کرتی ہے ، اعلی سطح کے ٹائم پیکیج میں رجحان کی سمت کا فیصلہ کرکے ، نچلے سطح کے ٹائم پیکیج میں الٹ پوائنٹس کو پکڑنے کے لئے ، اس طرح رجحان کی پیروی اور الٹ کی تجارت کو حاصل کریں۔ حکمت عملی کی منطق واضح ہے ، فوائد واضح ہیں ، لیکن اس کے ساتھ ساتھ کچھ خطرات بھی موجود ہیں۔ مستقبل میں اس حکمت عملی کو اس کی موافقت اور استحکام کو بہتر بنانے کے لئے رجحان کی تبدیلی ، پیرامیٹرز کی اصلاح ، رسک کنٹرول ، کثیر عنصر کے امتزاج وغیرہ کے لحاظ سے بہتر بنایا جاسکتا ہے۔
/*backtest
start: 2023-04-19 00:00:00
end: 2024-04-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Riester
//@version=5
strategy("Dual Timeframe Momentum", overlay=true, precision=6, pyramiding=0, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=25.0, commission_value=0.05)
n = input.int(20, "Moving Average Period", minval=1)
src = input.source(close, "Source")
high_tf = input.timeframe("240", "Resolution")
pivot_l = input.int(5, "Pivot Let Bars")
pivot_r = input.int(2, "Pivot Right Bars")
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
// Calculations
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
// 1. Define low and high timeframe prices
low_src = src
high_src = request.security(syminfo.tickerid, high_tf, src)
// 2. Use simple moving average to determine trend of higher timeframe (up or down)
high_tf_ma = ta.sma(high_src, n)
plot(high_tf_ma, color=color.yellow)
high_tf_trend = high_tf_ma > high_tf_ma[1] ? 1 : -1
// 3. Use pivots to identify reversals on the low timeframe
low_tf_pl = ta.pivotlow(high_src, pivot_l, pivot_r)
plot(low_tf_pl, style=plot.style_line, linewidth=3, color= color.green, offset=-pivot_r)
low_tf_ph = ta.pivothigh(high_src, pivot_l, pivot_r)
plot(low_tf_ph, style=plot.style_line, linewidth=3, color= color.red, offset=-pivot_r)
bool long = low_tf_pl and high_tf_trend == 1
bool short = low_tf_ph and high_tf_trend == -1
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
// Plots
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
// this message is an alert that can be sent to a webhook, which allows for simple automation if you have a server that listens to alerts and trades programmatically.
enter_long_alert = '{"side": "Long", "order": "Enter", "price": ' + str.tostring(open) + ', "timestamp": ' + str.tostring(timenow) + '}'
exit_long_alert = '{"side": "Long", "order": "Exit", "price": ' + str.tostring(open) + ', "timestamp": ' + str.tostring(timenow) + '}'
if long
strategy.entry(id="Long", direction=strategy.long, limit=open, alert_message=enter_long_alert)
if short
strategy.close(id="Long", comment="Close Long", alert_message=exit_long_alert)