
এই কৌশলটি একটি দ্বি-সময় স্কেল গতিশীলতা কৌশল। এটি উচ্চ স্তরের সময়কালের উপর একটি সরল চলমান গড় ব্যবহার করে প্রবণতা দিক নির্ধারণ করে (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)