
সূচকীয় চলমান গড় পতন বন্ধ ট্রেডিং কৌশল হল একটি পরিমাণগত ট্রেডিং সিস্টেম যা পতন মোড এবং চলমান গড় প্রবণতা উপর ভিত্তি করে তৈরি করা হয়। এই কৌশলটি মূলত একটি নির্দিষ্ট পতন মোড (অর্থাৎ “পতন বন্ধ” সংকেত) প্রবেশের পয়েন্ট হিসাবে চিহ্নিত করে এবং ইএমএ (ইন্ডেক্স চলমান গড়) এর সাথে মিলিত হয়ে সামগ্রিক বাজার প্রবণতাকে ক্রস-নিশ্চিত করে এবং বাজারের ব্রেকআপগুলি সনাক্ত করতে গতিশীল সমর্থন এবং প্রতিরোধের স্তর ব্যবহার করে। এই কৌশলটি কঠোর ঝুঁকি ব্যবস্থাপনার ব্যবস্থা গ্রহণ করে, যার মধ্যে রয়েছে একটি পূর্বনির্ধারিত ক্ষতির অবস্থান এবং ঝুঁকি-লাভ অনুপাতের উপর ভিত্তি করে একটি স্টপ স্টপ কৌশল যা প্রতিটি লেনদেনের ঝুঁকি নিয়ন্ত্রণে রাখে।
এই কৌশলটির মূল নীতি হল বাজারে নির্দিষ্ট পতনশীল রূপগুলি চিহ্নিত করা, যা সাধারণত বাজারের স্বল্পমেয়াদী বিপরীত হওয়ার সম্ভাবনাকে প্রতিনিধিত্ব করে। কৌশলটির কার্যকারিতা নিম্নরূপঃ
প্রবণতা বিচারঃ EMA20 এবং EMA90 এর তুলনামূলক অবস্থানের তুলনা করে বাজারের প্রবণতা বিচার করুন। EMA20 যখন EMA90 এর উপরে থাকে তখন এটি একটি উত্থান প্রবণতা হিসাবে বিচার করা হয়; যখন EMA20 EMA90 এর নীচে থাকে তখন এটি একটি পতন প্রবণতা হিসাবে বিচার করা হয়।
সিগন্যাল সনাক্তকরণ বন্ধঃ
ব্রেকআপ সনাক্তকরণঃ বর্তমান ক্লোজ-আপ মূল্যের সাথে সাপোর্ট/রেসট্যান্স লেভেলের তুলনা করে (৩০টি চক্রের উপর ভিত্তি করে সর্বনিম্ন/সর্বোচ্চ মূল্যের হিসাব) বাজারের ব্রেকআপ চিহ্নিত করা।
প্রবেশের শর্তঃ যখন বাজার একটি নির্দিষ্ট প্রবণতায় থাকে এবং একটি ব্রেকআউট অবস্থায় থাকে না, যদি একটি পতনশীল স্টপ সিগন্যাল থাকে তবে কৌশলটি পূর্ব নির্ধারিত ঝুঁকি পরামিতি অনুযায়ী প্রবেশ করবে ((২.৫% প্রতি লেনদেনের ঝুঁকি)) ।
স্টপ লস সেটিংঃ মাল্টি-হেড পজিশনের জন্য, স্টপ লস প্রবেশের মূল্যের নিচে ২.৫% সেট করুন; খালি হেড পজিশনের জন্য, স্টপ লস প্রবেশের মূল্যের উপরে ২.৫% সেট করুন।
স্টপ-অফ শর্তঃ মুনাফার শতাংশ এবং রিস্ক-রিটার্ন অনুপাতের উপর ভিত্তি করে সমন্বিত শর্ত। মাল্টি-হেডের জন্য কমপক্ষে 7% মুনাফা এবং কমপক্ষে 3 টি রিস্ক-রিটার্ন অনুপাত প্রয়োজন; খালি হেডের জন্য কমপক্ষে 6% মুনাফা এবং কমপক্ষে 3 টি রিস্ক-রিটার্ন অনুপাত প্রয়োজন।
স্পষ্ট প্রবেশ এবং প্রস্থান সংকেতঃ নির্দিষ্ট পতন এবং চলমান গড় প্রবণতা দ্বারা স্পষ্ট ট্রেডিং সংকেত সরবরাহ করে, যা বিষয়গত বিচারের দ্বারা আবেগগত প্রভাবকে হ্রাস করে।
ইন্টিগ্রেটেড ট্রেন্ড কনফার্মেশন মেকানিজমঃ একাধিক সময়কালের ইএমএ সূচক ব্যবহার করে বাজারের প্রবণতা নিশ্চিত করা, ট্রেডিং সিগন্যালের নির্ভরযোগ্যতা বাড়ানো।
গতিশীল সমর্থন এবং প্রতিরোধের সনাক্তকরণঃ রোলিং উইন্ডো ব্যবহার করে গতিশীল সমর্থন এবং প্রতিরোধের অবস্থানগুলি গণনা করা হয়, যাতে কৌশলগুলি বিভিন্ন বাজারের পর্যায়ে অভিযোজিত হতে পারে।
কঠোর ঝুঁকি ব্যবস্থাপনাঃ পূর্ব নির্ধারিত ঝুঁকি প্যারামিটার (২.৫% প্রতি লেনদেনের ঝুঁকি) এবং রিটার্ন-রিস্ক অনুপাতের উপর ভিত্তি করে স্টপ শর্তগুলি তহবিল পরিচালনার যুক্তিযুক্ততা নিশ্চিত করে।
বৈষম্যমূলক বহুভুজ ব্যবসায়ের মানদণ্ডঃ বাজারের অসম্পূর্ণতার বৈশিষ্ট্য অনুসারে বহুভুজ এবং শূন্যভুজ ব্যবসায়ের জন্য বিভিন্ন প্রবেশের শর্ত এবং লাভের লক্ষ্য নির্ধারণ করা হয়েছে।
ডায়নামিক পজিশন ক্যালকুলেশনঃ স্টপ লস দূরত্বের উপর ভিত্তি করে সঠিক পজিশন আকারের স্বয়ংক্রিয় গণনা, প্রতিটি লেনদেনের জন্য ঝুঁকির সামঞ্জস্যতা নিশ্চিত করে।
সূচক পিছিয়ে পড়াঃ ইএমএ একটি পিছিয়ে পড়া সূচক, যা দ্রুত পরিবর্তিত বাজারে বিলম্বিত সংকেত সরবরাহ করতে পারে, যার ফলে প্রবেশের সময় খারাপ হয়।
ভুয়া ব্রেকিংয়ের ঝুঁকিঃ বাজারে ভুয়া ব্রেকিংয়ের ঘটনা ঘটতে পারে, যার ফলে ভুল সংকেত তৈরি হয়। সমাধানটি হল লেনদেনের পরিমাণ নিশ্চিতকরণ বা ব্রেকিং নিশ্চিতকরণ চক্র বাড়ানো।
সংবেদনশীলতা সমন্বয় চ্যালেঞ্জঃ স্টপ সিগন্যালের প্যারামিটারগুলি (যেমন শ্যাডো লাইনের সাথে সত্তার অনুপাত) বিভিন্ন বাজার এবং চক্র অনুসারে সামঞ্জস্য করতে হবে, খুব সংবেদনশীলতা অত্যধিক লেনদেনের দিকে পরিচালিত করতে পারে, এবং খুব কঠোরতা একটি সুযোগ মিস করতে পারে।
ট্রেন্ড রূপান্তর ঝুঁকিঃ ট্রেন্ড রূপান্তর চলাকালীন কৌশলটি ক্ষতিগ্রস্থ ব্যবসায়ের একটি সিরিজ তৈরি করতে পারে। সমাধানটি হ’ল ট্রেন্ডের শক্তি ফিল্টার বাড়ানো বা ট্রেন্ড অস্পষ্ট হলে ট্রেডিং ফ্রিকোয়েন্সি হ্রাস করা।
ফিক্সড স্টপ স্পেসের অপ্রাসঙ্গিকতাঃ সমস্ত লেনদেনের জন্য একই শতাংশ স্টপ (২.৫%) ব্যবহার করা বিভিন্ন বাজারের ওঠানামার সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে। ওঠানামার উপর ভিত্তি করে গতিশীল স্টপ স্পেসের ব্যবহার বিবেচনা করা যেতে পারে।
আরএসআই ফিল্টারিং শর্তের সীমাবদ্ধতাঃ কেবলমাত্র ফাঁকা ট্রেডের জন্য আরএসআই ফিল্টারিং ব্যবহারের ফলে ভারসাম্যহীন ট্রেডিং ফ্রিকোয়েন্সি তৈরি হতে পারে। একই ধরণের ফিল্টারিং ব্যবস্থা প্রবর্তন করা বা বর্তমান আরএসআই প্যারামিটারগুলিকে অপ্টিমাইজ করাও বিবেচনা করা যেতে পারে।
ওঠানামার স্বনির্ধারিত প্যারামিটারঃ ওঠানামার সূচকগুলি (যেমন ATR) প্রবর্তন করা হয় যাতে ক্র্যাশ স্টপ সিগন্যালের ছায়া রেখার অনুপাতের প্রয়োজনীয়তা এবং স্টপ ডোজের দূরত্বকে গতিশীলভাবে সামঞ্জস্য করা যায়, যাতে কৌশলটি বিভিন্ন বাজারের অবস্থার সাথে আরও ভালভাবে মানিয়ে নিতে পারে।
মাল্টি টাইম ফ্রেম নিশ্চিতকরণঃ ট্রেডিং সিগন্যালের নির্ভরযোগ্যতা বাড়াতে এবং মিথ্যা সংকেতের প্রভাব হ্রাস করতে উচ্চতর টাইম ফ্রেম পুনরায় চালু করার প্রবণতা নিশ্চিতকরণ (যেমন 1 ঘন্টা চার্ট) ।
প্রবেশের সময় অপ্টিমাইজেশনঃ ট্রেডিং সাফল্যের হার বাড়ানোর জন্য প্রবেশের সময় অপ্টিমাইজ করার জন্য অতিরিক্ত ফিল্টারিং শর্তগুলি যুক্ত করুন (যেমন প্রবণতা শক্তির সূচক, লেনদেনের পরিমাণ নিশ্চিতকরণ) ।
আংশিক স্টপিং ব্যবস্থাঃ ঝুঁকি এবং রিটার্নের আরও ভাল ভারসাম্য বজায় রাখার জন্য একটি নির্দিষ্ট মুনাফা অর্জনের পরে ক্ষতির হারকে ব্যয় মূল্যে স্থানান্তরিত করতে বা আংশিক মুনাফা লক করার জন্য একটি পর্যায়ক্রমিক স্টপিং ব্যবস্থা চালু করা হয়েছে।
পুনর্বিবেচনার চক্রের সম্প্রসারণঃ বিভিন্ন বাজার চক্র এবং অবস্থার অধীনে আরও ব্যাপক পুনর্বিবেচনার মাধ্যমে কৌশলটির স্থায়িত্ব এবং অভিযোজনযোগ্যতা যাচাই করা যায়।
মেশিন লার্নিং অপ্টিমাইজেশানঃ মেশিন লার্নিং পদ্ধতি ব্যবহার করে কৌশলগত প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করুন, নির্দিষ্ট বাজারের জন্য সর্বোত্তম প্যারামিটার প্যাকেজটি সন্ধান করুন।
ট্রেডিং ফ্রিকোয়েন্সি কন্ট্রোলঃ ট্রেডিং ফ্রিকোয়েন্সি সীমাবদ্ধতা বা শীতল সময় ব্যবস্থা প্রবর্তন করুন, যাতে বাজার শর্তে অপ্রত্যাশিত ট্রেডিং এড়ানো যায়।
সূচকীয় চলমান সমান্তরাল পতন বন্ধ ট্রেডিং কৌশল একটি প্রযুক্তিগত বিশ্লেষণ এবং ঝুঁকি ব্যবস্থাপনার সমন্বিত একটি পরিমাণগত ট্রেডিং সিস্টেম যা নির্দিষ্ট পতন প্যাটার্ন সনাক্তকরণ এবং প্রবণতা নিশ্চিতকরণের সাথে ট্রেডিং সংকেত উত্পন্ন করে। এই কৌশলটির প্রধান সুবিধা হল সুস্পষ্ট ট্রেডিং নিয়ম এবং কঠোর ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা, যা ট্রেডিং সিদ্ধান্ত গ্রহণকে আরও সিস্টেমাইজড এবং শৃঙ্খলাবদ্ধ করে। যাইহোক, যে কোনও প্রযুক্তিগত বিশ্লেষণ কৌশল হিসাবে, এটি সূচক পিছিয়ে পড়া এবং বাজারের পরিবর্তনের সাথে অভিযোজনযোগ্যতার মতো চ্যালেঞ্জগুলির মুখোমুখি হয়।
এই কৌশলটি বিভিন্ন বাজার পরিবেশে আরও স্থিতিশীল পারফরম্যান্সের সম্ভাবনা রয়েছে, যেমন ওঠানামার স্ব-অনুকূলিতকরণ প্যারামিটার, একাধিক টাইমফ্রেম নিশ্চিতকরণ এবং প্রবেশের সময়কালের অপ্টিমাইজেশনের মতো দিকনির্দেশগুলিতে উন্নতি। বিশেষত, প্যারামিটার অপ্টিমাইজেশনে মেশিন লার্নিং পদ্ধতি প্রয়োগ করা কৌশলটির অভিযোজনযোগ্যতা এবং সামগ্রিক কার্যকারিতা ব্যাপকভাবে বাড়িয়ে তুলতে পারে। যাইহোক, এই কৌশলটি বাস্তবে প্রয়োগের আগে, এটির কার্যকারিতা যাচাই করার জন্য পর্যাপ্ত ব্যাক-টেস্টিং এবং ফরোয়ার্ড-টেস্টিংয়ের পরামর্শ দেওয়া হয়।
/*backtest
start: 2024-02-26 00:00:00
end: 2025-02-23 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=6
strategy("Advanced Candle Stop Strategy Backtest - Tuned v9 - Max Trades", overlay=true)
// --- EMA Variables ---
ema5_length = 5
ema20_length = 20
ema90_length = 90
ema5 = ta.ema(close, ema5_length)
ema20 = ta.ema(close, ema20_length)
ema90 = ta.ema(close, ema90_length)
// --- Support, Resistance, and Volume Calculation ---
lookback_support_resistance = 30
support_level = ta.lowest(low, lookback_support_resistance)
resistance_level = ta.highest(high, lookback_support_resistance)
// --- Volume Condition for Short (Removed) ---
avg_volume_lookback = 20
avg_volume = ta.sma(volume, avg_volume_lookback)
// --- RSI Condition for Short (Removed) ---
rsi_length = 14
rsi_overbought = 70
rsi = ta.rsi(close, rsi_length)
// --- Candle Stop Function ---
is_candle_stop(trend) =>
body = math.abs(close - open)
upper_shadow = high - math.max(open, close)
lower_shadow = math.min(open, close) - low
if trend == "up"
lower_shadow >= 0.8 * body and upper_shadow < body and close > open // Shadow ratio reduced to 0.8 for longs
else if trend == "down"
upper_shadow >= 0.8 * body and lower_shadow < body and close < open // Shadow ratio reduced to 0.8 for shorts - EMA5 and Volume conditions removed
else
false
// --- Trend Determination (only 15m, no 1H confirmation) ---
trend = ema20 > ema90 ? "up" : ema20 < ema90 ? "down" : "neutral"
final_trend = trend // حذف تأیید با تایمفریم 1H
// --- Breakout Detection ---
var bool breakout_detected = false
if final_trend == "up" and close > resistance_level
breakout_detected := true
alert("شکست صعودی تشخیص داده شد! منتظر پولبک 🚀", alert.freq_once_per_bar)
else if final_trend == "down" and close < support_level
breakout_detected := true
alert("شکست نزولی تشخیص داده شد! منتظر پولبک 📉", alert.freq_once_per_bar)
// --- Entry and Exit Conditions ---
var float position = 0.0
var float entry_price = 0.0
var float stop_loss_price = na
var bool take_profit_long = false // Declare take_profit_long
var bool stop_loss_hit_long = false // Declare stop_loss_hit_long
var bool take_profit_short = false // Declare take_profit_short
var bool stop_loss_hit_short = false // Declare stop_loss_hit_short
risk_per_trade_percent = 2.5 // افزایش ریسک به 2.5٪ برای موقعیتهای بیشتر
if not breakout_detected
if position == 0 and is_candle_stop(final_trend)
risk_amount_usd = strategy.initial_capital * (risk_per_trade_percent / 100)
if final_trend == "up"
stop_loss_price := close * 0.975 // Stop loss at 2.5% below entry for longs
if (close - stop_loss_price) != 0
position_size_usd = risk_amount_usd / (close - stop_loss_price)
amount = position_size_usd / close
strategy.entry("Long", strategy.long, qty=amount)
position := amount
entry_price := close
else if final_trend == "down"
stop_loss_price := close * 1.025 // Stop loss at 2.5% above entry for shorts
if (stop_loss_price - close) != 0
position_size_usd = risk_amount_usd / (stop_loss_price - close)
amount = position_size_usd / close
if rsi >= rsi_overbought // RSI condition for short entry - No Change, still using RSI but not enforcing it for now - Consider removing RSI condition as well for max trades
strategy.entry("Short", strategy.short, qty=amount)
position := amount
entry_price := close
if position > 0
profit_percent_long = (close - entry_price) / entry_price * 100
profit_percent_short = (entry_price - close) / entry_price * 100
loss_percent_long = (entry_price - close) / entry_price * 100
loss_percent_short = (close - entry_price) / entry_price * 100
risk_reward_long = loss_percent_long != 0 ? profit_percent_long / loss_percent_long : (profit_percent_long != 0 ? 99999 : 0)
risk_reward_short = loss_percent_short != 0 ? profit_percent_short / loss_percent_short : (profit_percent_short != 0 ? 99999 : 0)
take_profit_long := profit_percent_long >= 7 and risk_reward_long >= 3
stop_loss_hit_long := close <= stop_loss_price
take_profit_short := profit_percent_short >= 6 and risk_reward_short >= 3 // Reduced Take Profit for Shorts to 6% - No Change
stop_loss_hit_short := close >= stop_loss_price
if (final_trend == "up" and (take_profit_long or stop_loss_hit_long)) or (final_trend == "down" and (take_profit_short or stop_loss_hit_short))
if final_trend == "up"
strategy.close("Long")
else
strategy.close("Short")
position := 0
entry_price := 0.0
breakout_detected := false
// --- Plotting EMAs and Support/Resistance Levels ---
plot(ema5, color=color.blue, title="EMA5")
plot(ema20, color=color.red, title="EMA20")
plot(ema90, color=color.green, title="EMA90")
plot(resistance_level, color=color.orange, style=plot.style_line, title="Resistance")
plot(support_level, color=color.orange, style=plot.style_line, title="Support")