মাল্টি টাইমফ্রেম মুভিং এভারেজ পুলব্যাক ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৪-০২-২৯ ১১ঃ২০ঃ২৮
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি মাল্টি-টাইমফ্রেম চলমান গড় পদ্ধতি গ্রহণ করে, দীর্ঘমেয়াদী চলমান গড় ব্যবহার করে প্রধান প্রবণতার দিক নির্ধারণ করে এবং স্বল্পমেয়াদী চলমান গড়টি স্বল্পমেয়াদী প্রবণতার দিক নির্ধারণ করে। যখন দীর্ঘমেয়াদী প্রবণতা স্বল্পমেয়াদী প্রবণতার সাথে সামঞ্জস্য করে, তখন সেই অনুযায়ী অবস্থান নেওয়া হয়। যখন স্বল্পমেয়াদী চলমান গড়টি দীর্ঘমেয়াদী চলমান গড়ের আশেপাশে ফিরে আসে, তখন এটি বিপরীত দিকের ব্যবসায়ের সুযোগ উপস্থাপন করে একটি স্বল্পমেয়াদী সংশোধন নির্দেশ করে। এই কৌশলটি মাঝারি থেকে দীর্ঘমেয়াদী সময়সীমার উপর ট্রেন্ডিং স্টকগুলির জন্য সর্বোত্তম কাজ করে।

কৌশলগত যুক্তি

কৌশলটি দীর্ঘমেয়াদী প্রবণতা দিক নির্ধারণের জন্য 200 দিনের সহজ চলমান গড় (এসএমএ) এবং স্বল্পমেয়াদী প্রবণতা দিকের জন্য 10 দিনের এসএমএ ব্যবহার করে। যখন মূল্য 200 দিনের এসএমএ এবং 10 দিনের এসএমএ এর নীচে বন্ধ হয়, তখন এটি একটি স্বল্পমেয়াদী pullback সহ একটি উচ্চতর দীর্ঘমেয়াদী প্রবণতা সংকেত করে, কেনার সুযোগ উপস্থাপন করে। যখন মূল্য 200 দিনের এসএমএ এর নীচে এবং 10 দিনের এসএমএ এর উপরে বন্ধ হয়, তখন এটি একটি স্বল্পমেয়াদী বাউন্স সহ একটি নিম্নমুখী দীর্ঘমেয়াদী প্রবণতা সংকেত করে, বিক্রয় সুযোগ উপস্থাপন করে।

বিশেষ করে, যখন নিম্নলিখিত শর্ত পূরণ করা হয়, তখন লং এন্ট্রি ট্রিগার করা হয়ঃ ক্লোজ > ২০০ দিনের এসএমএ এবং ক্লোজ < ১০ দিনের এসএমএ। যখন নিম্নলিখিত শর্ত পূরণ করা হয়, তখন লং এন্ট্রি ট্রিগার করা হয়ঃ ক্লোজ < ২০০ দিনের এসএমএ এবং ক্লোজ > ১০ দিনের এসএমএ।

প্রবেশের পরে, একটি 10% স্টপ লস প্রক্রিয়া বাস্তবায়িত হয়। যদি প্রবেশের মূল্য থেকে পুনরুদ্ধার 10% অতিক্রম করে তবে অবস্থানটি বন্ধ হয়ে যাবে। এছাড়াও, যদি i_lowerClose বিকল্পটি সক্ষম করা হয় তবে এটি বন্ধ হওয়ার আগে একটি নিম্ন বন্ধের জন্য অপেক্ষা করবে, স্টপ লসের অত্যধিক সংবেদনশীলতা এড়ানো হবে।

সুবিধা বিশ্লেষণ

এই কৌশলটি মাল্টি-টাইমফ্রেম চলমান গড়কে একত্রিত করে, মাঝারি থেকে দীর্ঘমেয়াদী প্রবণতা দিকটি ক্যাপচার করার উচ্চ সম্ভাবনা সক্ষম করে। এটি স্বল্পমেয়াদী এসএমএ দীর্ঘমেয়াদী এসএমএতে ফিরে আসার সময় উপযুক্ত প্রবেশের সময় সরবরাহ করে। একক চলমান গড় সিস্টেমের তুলনায়, স্বল্পমেয়াদী সংশোধনগুলিতে ধরা পড়ার সম্ভাবনা হ্রাস পায়।

এই কৌশল জড়িত ঝুঁকি ভাল সংজ্ঞায়িত এবং capped হয়। একটি 10% স্টপ লস অনুপাত সর্বাধিক ক্ষতি আকার সীমাবদ্ধ। এছাড়াও সময় পরিসীমা ফিল্টার নির্দিষ্ট সময়সীমার মধ্যে ট্রেডিং এড়ায়।

ঝুঁকি বিশ্লেষণ

এই কৌশলটিতে ধরা পড়ার ঝুঁকি এখনও রয়েছে। যদি স্বল্পমেয়াদী সংশোধনটি খুব বেশি সময় ধরে চলে বা প্রত্যাহারের প্রস্থ খুব বড় হয় তবে স্টপ লসটি ট্রিগার হতে পারে যার ফলে অনুপযুক্ত সময়ে জোরপূর্বক প্রস্থান হতে পারে। এটি ক্ষতির ঝুঁকি প্রবর্তন করে।

এই কৌশলটি ট্রেডিং সরঞ্জামগুলির মধ্যে অভিযোজনযোগ্যতা সীমিত। উচ্চ অস্থিরতা এবং দীর্ঘস্থায়ী সংশোধন সময়কালের সাথে স্টকগুলির জন্য, এই কৌশলটি অকাল স্টপ লসকে আঘাত করে যা দুর্বল পারফরম্যান্স দেয়।

বাজারে বড় ধরনের সংশোধন যেমন আর্থিক সংকটের সময় এই কৌশলটি বড় ধরনের ক্ষতির সম্মুখীন হতে পারে। এই সময়ে লাভজনকতা অসম্ভব।

অপ্টিমাইজেশান নির্দেশাবলী

একাধিক ফিল্টারিং প্রক্রিয়া গঠনের জন্য আরও চলমান গড় সিস্টেম চালু করা যেতে পারে। উদাহরণস্বরূপ, 50-দিনের এসএমএ যুক্ত করে, যখন দাম 50-দিনের এসএমএ এবং 200-দিনের এসএমএ এর মধ্যে থাকে তখনই এন্ট্রি পজিশনগুলি বিবেচনা করা হয়। এই অতিরিক্ত ফিল্টারগুলি নিম্ন প্রবণতা বৈশিষ্ট্যযুক্ত স্টকগুলিকে বাদ দেয়।

একটি গতিশীল স্টপ লস প্রক্রিয়া বাস্তবায়ন করা যেতে পারে। বিশেষত, প্রবেশের পরে, স্টপ লস অনুপাতটি 10% এর পরিবর্তে পর্যবেক্ষণ করা অস্থিরতার ভিত্তিতে সামঞ্জস্য করা হয়। এটি হার্ড স্টপ লসের অকাল ট্রিগার এড়ায়।

অন্যান্য সূচক বাজারের অবস্থা পরিমাপ অন্তর্ভুক্ত করা যেতে পারে। উদাহরণস্বরূপ MACD, যখন MACD বাজারের বিচ্যুতি দেখায়, এই কৌশলটি ক্ষতি এড়াতে সাময়িকভাবে নিষ্ক্রিয় করা যেতে পারে। এটি কৌশলটি চালু এবং বন্ধ করার জন্য একটি বাজার টাইমিং প্রক্রিয়া যুক্ত করে।

সিদ্ধান্ত

উপসংহারে, এটি একটি সাধারণ মাল্টি-টাইমফ্রেম চলমান গড় কৌশল। এটি স্বল্পমেয়াদী চলমান গড় দ্বারা প্রকাশিত স্বল্পমেয়াদী পলব্যাক সুযোগগুলির সুবিধা গ্রহণের সময় দীর্ঘমেয়াদী চলমান গড় দ্বারা নির্দেশিত মাঝারি-দীর্ঘমেয়াদী প্রবণতা দিকের মূলধন অর্জন করে। ঝুঁকি কারণগুলি সংজ্ঞায়িত এবং ভালভাবে সীমাবদ্ধ। অতিরিক্ত ফিল্টার, অভিযোজিত স্টপ লস এবং বাজার টাইমিং প্রক্রিয়াগুলির মতো আরও উন্নতিগুলি এর স্থিতিশীলতা উন্নত করতে পারে।


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
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/
// © irfanp056
// @version=5

strategy("Simple Pullback Strategy", 
     overlay=true) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)

// Check filter(s)
f_dateFilter = true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)

আরো