
এই কৌশলটি ডাবল ইএমএ সমান্তরাল গঠনের জন্য ব্যবহার করা হয়, যা গোল্ড ফর্ক ওভার, ডেড ফর্ক ওভার এবং ক্লাসিক ট্রেন্ড অনুসরণ করে এবং এটিআর এবং এডিএক্স সূচকগুলি ব্যবহার করে অতিরিক্ত ফিল্টারিংয়ের জন্য, শক্তিশালী প্রবণতা থাকলে ট্র্যাকিং এবং ঝড়ের সময় ঝুঁকি নিয়ন্ত্রণের জন্য।
এই কৌশলটি মূলত নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করে তৈরি করা হয়েছেঃ
স্বল্পমেয়াদী 8 পিরিয়ডের ইএমএ গড় এবং দীর্ঘমেয়াদী 20 পিরিয়ডের ইএমএ গড় ব্যবহার করে গোল্ডফোর্ক এবং ডেডফোর্ক সিগন্যাল তৈরি করা হয়। ইএমএ গড় নিজেই প্রবণতা অনুসরণ করে।
এটিআর সূচকটি সাম্প্রতিক ওঠানামার মাত্রা প্রতিফলিত করে। এটিআর সূচকটির ধনাত্মককরণের মাধ্যমে, ইএমএ সমান্তরাল ক্রসিংয়ের ফিল্টারিং শর্তগুলিকে গতিশীলভাবে সামঞ্জস্য করা যায়, শক্তিশালী প্রবণতা অনুসরণ করার সময় প্রয়োজনীয়তা হ্রাস করা হয়, ঝড়ের সময় ফিল্টারিং প্রয়োজনীয়তা বাড়ানো হয় এবং ঝুঁকি নিয়ন্ত্রণ করা হয়।
ADX সূচকটি প্রবণতার শক্তি নির্ধারণ করে। ADX মান 30 এর চেয়ে বড় হলে, এটি একটি শক্তিশালী প্রবণতা বলে মনে করা হয়। এই সময়ে ক্ষতির প্রতিরক্ষা বন্ধ করা হয়।
বিপরীতমুখী প্রবণতার সাথে মিলিত হয়ে আরও খালি সময় নির্ধারণ করুন।
লেনদেনের পরিমাণ ফিল্টার করা হয়, যখন লেনদেনের পরিমাণ বেশি হয় তখন প্রবেশ করা হয়।
ডলার সূচকটি সহজেই ডলারকে শক্তিশালী বা দুর্বল বলে গণনা করে এবং ডলার শক্তিশালী হলে স্টপ লস এবং স্টপ ম্যানিপুলেশন প্রসারিত করে।
সুপার ট্রেন্ডিং সূচকগুলির সাথে একত্রিত হয়ে, সামগ্রিক প্রবণতাটি মূল্যায়ন করুন এবং অতিরিক্ত সময় দেওয়ার সময় নির্ধারণ করুন।
এই কৌশলটি প্রবণতা নির্দেশক এবং কম্পন নির্দেশককে পুরোপুরি একত্রিত করে, গতিশীলভাবে প্যারামিটারগুলি সামঞ্জস্য করতে এবং প্রবণতা অনুসরণ করার সময় ঝুঁকি নিয়ন্ত্রণ করতে সক্ষম।
ডাবল ইএমএ সমান্তরাল সিস্টেম ব্যবহার করে প্রবণতা বিচার করা হয়, ইএমএ মসৃণতা আছে, যা কার্যকরভাবে ছদ্মবেশী বিরতি ফিল্টার করতে পারে।
এটিআর সূচকগুলি গতিশীলভাবে ইএমএ সমান্তরাল ক্রস ফিল্টারিংয়ের শর্তগুলিকে সামঞ্জস্য করে, যাতে কৌশলগুলি বিভিন্ন বাজারের পরিস্থিতিতে নমনীয় হতে পারে।
ADX সূচক এবং লেনদেনের পরিমাণ একটি সহায়ক বিচারক সূচক হিসাবে ব্যবহার করা হয়, যাতে অস্থিরতার সময় এটি ব্যবহার করা যায় না।
ডলার ইন্ডেক্স এবং সুপার ট্রেন্ডস ইন্ডেক্সের উপর ভিত্তি করে বড় প্রবণতা নির্ণয় করা, সিদ্ধান্ত গ্রহণের সঠিকতা বাড়ানো।
রিস্ক ম্যানেজমেন্ট প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে ডলার শক্তিশালী হওয়ার সাথে সামঞ্জস্যপূর্ণ, যখন ডলার শক্তিশালী হয় তখন স্টপ লস এবং স্টপ লস বৃদ্ধি পায়।
সহজ এবং স্বজ্ঞাত গোল্ডেন ফর্ক ডাই ফর্ক ট্রেডিং সিগন্যাল এবং স্টপ-ডাউন-স্টপ কৌশল ব্যবহার করে, সহজেই বাস্তবায়ন এবং পুনরাবৃত্তি করা যায়।
ডাবল ইএমএ সমান্তরাল সিস্টেমটি ট্রেন্ডের সমান্তরাল পয়েন্টগুলিকে বাদ দেয় এবং সিদ্ধান্ত দেয় যে এটি পিছিয়ে রয়েছে।
এটিআর প্যারামিটারগুলি ভুলভাবে নির্বাচন করা হয়েছে, যার ফলে এটির সংরক্ষণশীলতা বা উগ্রতা দেখা দিতে পারে।
ADX সূচক প্যারামিটার অপ্টিমাইজ করা প্রয়োজন, ADX উচ্চতা ভুলভাবে নির্বাচন করা প্রবণতা মিস করতে পারে।
ডলার সূচক এবং সুপার ট্রেন্ডস সূচকের ক্ষেত্রেও ভুল হতে পারে।
স্টপ ল্যাম্প খুব ছোট হলে ক্ষতি বাড়তে পারে; স্টপ ল্যাম্প খুব বড় হলে ক্ষতির সম্ভাবনা থাকে।
প্রবণতা সমালোচনামূলক পয়েন্টগুলি বিবেচনা করার জন্য অন্যান্য সূচক যেমন MACD এর সাথে একত্রে বিবেচনা করা যেতে পারে।
এটিআর প্যারামিটার স্পেস প্রশিক্ষণের জন্য আরও ঐতিহাসিক ডেটা ব্যবহার করুন এবং সর্বোত্তম প্যারামিটার ব্যাপ্তি খুঁজুন।
বিভিন্ন ADX প্যারামিটার পরীক্ষা করা, ADX উচ্চতা নির্ণয়কে অপ্টিমাইজ করা।
ডলার ইন্ডেক্স এবং বাজারের সামগ্রিক গতিবিধি সম্পর্কে আরও তথ্য যোগ করুন।
রিটার্ন ডেটার উপর ভিত্তি করে সর্বোত্তম স্টপ লস গণনা করা হয়েছে।
স্টপ লসকে চলমান স্টপ লস বা ওসিল্যান্ট স্টপ লস হিসেবে বিবেচনা করা যেতে পারে।
এই প্রকল্পের আকার এবং ধারাবাহিকতা অনুকূলিতকরণ অব্যাহত থাকবে।
এই কৌশলটি ক্লাসিক ডাবল ইএমএ সমান্তরাল সিস্টেমকে একাধিক সহায়ক সূচকের সাথে সংহত করে, প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে অনুকূলিতকরণের মাধ্যমে একটি সম্পূর্ণ প্রবণতা অনুসরণ কৌশল অর্জন করে। এটি বাজারের পরিবেশের পরিবর্তনের সাথে নমনীয়ভাবে খাপ খাইয়ে নিতে পারে এবং প্রবণতা অনুসরণ করার সময় ঝুঁকি নিয়ন্ত্রণ করতে পারে। তবে স্টপ লস এবং সূচক প্যারামিটারগুলির জন্য আরও পরীক্ষার এবং অপ্টিমাইজেশনের প্রয়োজন রয়েছে, যাতে আরও ভাল স্থিতিশীল উপার্জন পাওয়া যায়। এই কৌশলটির ধারণাটি অনুকরণ এবং উন্নতির জন্য মূল্যবান।
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Refactored Advanced EMA Cross with Normalized ATR Filter, Controlling ADX", shorttitle="ALP V5", overlay=true)
// Initialize variables to track if a buy order has been placed and number of periods since the last buy
var bool hasBought = false
var int barCountSinceBuy = 0
// Define EMA periods
emaShort = ta.ema(close, 8)
emaLong = ta.ema(close, 20)
// Define ATR period and normalization
atrLength = 14
atrValue = ta.atr(atrLength)
maxHistoricalATR = ta.highest(atrValue, 20)
minHistoricalATR = ta.lowest(atrValue, 20)
normalizedATR = (atrValue - minHistoricalATR) / (maxHistoricalATR - minHistoricalATR)
// Define ADX parameters
adxValue = ta.rma(close, 14)
adxHighLevel = 30
isADXHigh = adxValue > adxHighLevel
// Initialize risk management variables
var float stopLossPercent = na
var float takeProfitPercent = na
var float trailingStop = na
// Calculate USD strength (simplified)
usd_strength = close / ta.ema(close, 50) - 1
// Adjust risk parameters based on USD strength
if (usd_strength > 0)
stopLossPercent := 3
takeProfitPercent := 6
else
stopLossPercent := 4
takeProfitPercent := 8
// Initialize position variable
var float positionPrice = na
// Volume filter
minVolume = ta.sma(volume, 14) * 1.5
isVolumeHigh = volume > minVolume
// Piyasa yönü için süper trend göstergesi
[supertrendValue, supertrendDirection] = ta.supertrend(4, 14) // Use a factor of 3 and ATR period of 10
bool isBullMarket = supertrendDirection < 0
bool isBearMarket = supertrendDirection > 0
// Yükselen piyasa için alım koşulu
buyConditionBull = isBullMarket and ta.crossover(emaShort, emaLong) and normalizedATR > 0.2
// Düşen piyasa için alım koşulu
buyConditionBear = isBearMarket and ta.crossover(emaShort, emaLong) and normalizedATR > 0.5
// Genel alım koşulu
buyCondition = buyConditionBull or buyConditionBear
// Yükselen ve düşen piyasalar için farklı satış koşulları
sellConditionBull = isBullMarket and (ta.crossunder(emaShort, emaLong) or isADXHigh)
sellConditionBear = isBearMarket and (ta.crossunder(emaShort, emaLong) or isADXHigh)
// Genel satış koşulu
sellCondition = sellConditionBull or sellConditionBear
// Buy condition
if (buyCondition)
strategy.entry("Buy", strategy.long)
positionPrice := close
hasBought := true // Set the flag to true when a buy order is placed
barCountSinceBuy := 0 // Reset the bar counter when a buy order is placed
// Increase the bar counter if a buy has been executed
if (hasBought)
barCountSinceBuy := barCountSinceBuy + 1
// Calculate stop-loss and take-profit levels
longStopLoss = positionPrice * (1 - stopLossPercent / 100)
longTakeProfit = positionPrice * (1 + takeProfitPercent / 100)
// Final Sell condition, now also checks if a buy has occurred before and if at least 5 periods have passed
finalSellCondition = sellCondition and hasBought and barCountSinceBuy >= 3 and isVolumeHigh
if (finalSellCondition)
strategy.close("Buy")
positionPrice := na
hasBought := false // Reset the flag when a sell order is placed
barCountSinceBuy := 0 // Reset the bar counter when a buy order is closed
// Implement stop-loss, take-profit, and trailing stop
strategy.exit("Stop Loss", "Buy", stop=longStopLoss)
strategy.exit("Take Profit", "Buy", limit=longTakeProfit)
//strategy.exit("Trailing Stop", "Buy", trail_price=close, trail_offset=trailingStop * close / 100)
var label l = na
if (buyCondition)
l := label.new(bar_index, high, text="buy triggered " + str.tostring(usd_strength))
label.delete(l[1])
if (finalSellCondition)
l := label.new(bar_index, high, text="sell triggered " + str.tostring(usd_strength))
label.delete(l[1])
// Plot signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=finalSellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")