
এই কৌশলটি সূচকীয় মুভিং এভারেজ এবং MACD সূচকের ব্রেকডাউন সংকেতকে সংযুক্ত করে, দীর্ঘ এবং ছোট দুটি পজিশনিং পিরিয়ড সেট করে এবং ট্রেন্ড ট্র্যাকিং এবং বিপরীত ট্রেডিংয়ের মাধ্যমে মুনাফা অর্জন করে।
এই কৌশলটি মূলত নিম্নলিখিত নীতির উপর ভিত্তি করে তৈরি করা হয়েছেঃ
200-দিনের সূচকীয় চলমান গড় গণনা করুন, বড় প্রবণতার দিক নির্ণয় করুন।
সর্বোচ্চ, সর্বনিম্ন এবং সর্বনিম্ন মূল্যের উপর ভিত্তি করে গড় মূল্যের উপর ভিত্তি করে একটি সূচকীয় চলমান গড় আঁকুন, গড়টি সর্বোচ্চ এবং সর্বনিম্ন মূল্যের পার্থক্যের সাথে গণনা করুন এবং একটি এমএসিডি কলামযুক্ত গ্রাফ তৈরি করুন।
MACD কলামের 9 দিনের চলমান গড় গণনা করুন এবং MACD সংকেত লাইন তৈরি করুন।
যখন MACD নীচে থেকে উপরে সিগন্যাল লাইন ভেঙে যায় তখন এটি একটি কেনার সংকেত দেয়; যখন এটি নীচে থেকে নীচে সিগন্যাল লাইন ভেঙে যায় তখন এটি একটি বিক্রয় সংকেত দেয়।
বড় প্রবণতার দিকের সাথে মিলিত করে, এটি একটি দীর্ঘ প্রবণতা বা একটি সংক্ষিপ্ত রেখার বিপরীতের দিকে যেতে পারে।
এই কৌশলটি ট্রেন্ডিং এবং বিপরীত ট্রেডিংয়ের সমন্বয় করে, যা দীর্ঘ সময়ের ট্রেন্ড অনুসরণ করতে পারে এবং বিভিন্ন বাজারের অবস্থার সাথে নমনীয়তার সাথে সংক্ষিপ্ত লাইনের বিপরীত সুযোগগুলি ধরতে পারে।
এর মধ্যে রয়েছেঃ
২০০ দিনের চলমান গড়ের সাহায্যে মূল প্রবণতার দিক নির্ণয় করুন, বিপরীতমুখী অপারেশন এড়িয়ে চলুন।
MACD সূচকগুলি স্বল্পমেয়াদী মূল্য পরিবর্তনের প্রতি সংবেদনশীল, যা বিপরীতমুখী সুযোগগুলিকে আরও কার্যকরভাবে ধরতে পারে।
বিভিন্ন প্যারামিটার সেটিং এর MACD সমন্বয়, একাধিক সময় ফ্রেম ট্রেডিং সংকেত উপলব্ধ করা যায়।
স্টপ লস স্ট্র্যাটেজির সাথে একক লোকসানকে কার্যকরভাবে নিয়ন্ত্রণ করা যায়।
এই কৌশলটি নিম্নলিখিত ঝুঁকির সাথে জড়িতঃ
একটি দীর্ঘ এবং সংক্ষিপ্ত সময়ের সূচক একটি ট্রেডিং সিগন্যাল প্রেরণ করার সময়, একটি নির্দিষ্ট সময়ের ব্যবধান থাকতে পারে, যার জন্য একটি বড় প্রবণতা সমন্বিতভাবে বিচার করা প্রয়োজন।
MACD হল একটি বিপরীতমুখী সূচক, যখন তীব্র বাজার পরিস্থিতি দেখা দেয়, তার সূচক ব্যাখ্যা শক্তি হ্রাস পায়।
স্টপ পয়েন্টটি ভুলভাবে সেট করা হয়েছে, যা খুব তাড়াতাড়ি বা খুব বেশি ক্ষতি করতে পারে।
তবে, এই বার্তায় বলা হয়েছে যে, “এটি অনেক বেশি ঘন ঘন, এবং এর ফলে আরও ভুয়া সংকেত তৈরি হতে পারে”।
সমাধানঃ
MACD প্যারামিটার অপ্টিমাইজ করুন, সূচকের সংবেদনশীলতা সামঞ্জস্য করুন।
অন্যান্য সূচকগুলির সাথে মিলিতভাবে, ম্যাকড সংকেতগুলিকে অন্ধভাবে অনুসরণ করা এড়িয়ে চলুন।
স্টপ লস কৌশল পরামিতি পরীক্ষা এবং অপ্টিমাইজ করুন।
ফিল্টারিংয়ের শর্ত বাড়ানো হয়েছে, যাতে বেশি সংখ্যক ভুয়া সংকেত না থাকে।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
চলমান গড় এবং MACD এর প্যারামিটারগুলিকে অপ্টিমাইজ করুন যাতে আরও কার্যকর ট্রেডিং সিগন্যাল পাওয়া যায়।
কিছু অন্যান্য সূচক যুক্ত করুন যাতে কৌশলটির কার্যকারিতা বাড়ানো যায়।
Set up a position sizing strategy rather than fixed lots for each trade. প্রতিটি ব্যবসায়ের জন্য একটি পজিশন সাইজিং কৌশল সেট আপ করুন, নির্দিষ্ট পরিমাণের পরিবর্তে।
Add more advanced exit rules rather than just stop loss. Such as profit target, trailing stops etc. কেবলমাত্র স্টপ লসের পরিবর্তে আরও উন্নত প্রস্থান নিয়ম যুক্ত করুন যেমন লাভের লক্ষ্য, ট্রেইলিং স্টপ ইত্যাদি।
Backtest with more complex fee settings to better simulate real trading environoment. রিয়েল ট্রেডিং পরিবেশকে আরও ভালভাবে অনুকরণ করার জন্য আরও জটিল ফি সেটিংসের সাথে ব্যাকটেস্ট করুন।
Walk forward analysis, robustness test among multiple products to enhance reliability. নির্ভরযোগ্যতা বাড়ানোর জন্য একাধিক পণ্যের মধ্যে ওয়াক ফরওয়ার্ড অ্যানালিসিস, রবস্টনেস টেস্ট
এই কৌশলটি একই সাথে প্রবণতা এবং বিপরীত ট্রেডিং উভয়ই বিবেচনা করে, মূল বিষয় হ’ল সূচক প্যারামিটারগুলির সেটিং এবং বৃহত্তর প্রবণতা বোঝার সঠিকতা। প্যারামিটার সেটিংটি ক্রমাগত অনুকূলিতকরণ, ঘূর্ণিঝড়ের শর্তগুলি বাড়ানোর মতো উপায়গুলি দ্বারা কৌশলটি বাজারের সংকেতগুলি সম্পর্কে আরও নির্ভুল বিচার করতে পারে এবং লাভের স্থিতিশীলতা বাড়িয়ে তুলতে পারে। সামগ্রিকভাবে, কৌশলটি উচ্চতর সংহতকরণ এবং ভাল প্রয়োগের সম্ভাবনা রয়েছে।
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Strategia EMA + Impulse MACD", shorttitle="EMA+IMACD", overlay=true)
// Impostazioni
ema_length = input(200, title="Periodo EMA a 200", type=input.integer)
lengthMA = input(34, title="Periodo EMA", type=input.integer)
lengthSignal = input(9, title="Periodo Signal", type=input.integer)
lengthImpulseMACD = input(12, title="Periodo Impulse MACD", type=input.integer)
lengthImpulseMACDSignal = input(9, title="Periodo Impulse MACD Signal", type=input.integer)
stopLossPeriod = input(20, title="Periodo Stop Loss", type=input.integer)
var float ema200 = na
if bar_index >= ema_length
ema200 := ema(close, ema_length)
// Impulse MACD
var float hi = na
var float lo = na
var float mi = na
var float impulseMACD = na
var float impulseMACDSignal = na
calc_smma(src, len) =>
var float smma = na
if na(smma)
smma := sma(src, len)
else
smma := (smma[1] * (len - 1) + src) / len
smma
calc_zlema(src, length) =>
ema1 = ema(src, length)
ema2 = ema(ema1, length)
d = ema1 - ema2
ema1 + d
if bar_index >= lengthMA
src = hlc3
hi := calc_smma(high, lengthMA)
lo := calc_smma(low, lengthMA)
mi := calc_zlema(src, lengthMA)
impulseMACD := (mi > hi) ? (mi - hi) : (mi < lo) ? (mi - lo) : 0
impulseMACDSignal := sma(impulseMACD, lengthSignal)
// Calcolo dello stop loss
var float stopLossLong = na
var float stopLossShort = na
stopLossLong := lowest(low, stopLossPeriod)
stopLossShort := highest(high, stopLossPeriod)
// Calcolo del take profit
var float takeProfitLong = na
var float takeProfitShort = na
if not na(stopLossLong)
takeProfitLong := close + (close - stopLossLong) * 1.5
if not na(stopLossShort)
takeProfitShort := close - (stopLossShort - close) * 1.5
// Condizioni per aprire una posizione long
longCondition = not na(ema200) and not na(impulseMACD) and not na(impulseMACDSignal) and close > ema200 and impulseMACD < 0 and impulseMACDSignal < 0 and crossover(impulseMACD, impulseMACDSignal)
// Condizioni per aprire una posizione short
shortCondition = not na(ema200) and not na(impulseMACD) and not na(impulseMACDSignal) and close < ema200 and impulseMACD > 0 and impulseMACDSignal > 0 and crossunder(impulseMACD, impulseMACDSignal)
// Disegna l'EMA 200 sul grafico
plot(ema200, color=color.blue, title="EMA 200")
// Imposta lo stop loss e il take profit
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.exit("Take Profit/Stop Loss Long", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)
strategy.exit("Take Profit/Stop Loss Short", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)
// Impulse MACD
plot(0, color=color.gray, linewidth=1, title="MidLine")
plot(impulseMACD, color=color.red, linewidth=2, title="ImpulseMACD", style=plot.style_histogram)
plot(impulseMACDSignal, color=color.blue, linewidth=2, title="ImpulseMACDSignal", style=plot.style_histogram)
// Disegna le operazioni long e short sul grafico
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Long Entry")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.triangledown, title="Short Entry")