
এই কৌশলটি একটি ট্রেডিং সিগন্যাল তৈরি করতে অ্যালমা (ALMA) এবং ইন্ডেক্সাল মুভিং এভারেজ (EMA) এর সাথে দুটি ভিন্ন প্যারামিটার সেট ব্যবহার করে। একই সময়ে, কৌশলটি এলোমেলো ইন্ডেক্সাল মুভিং এভারেজ (Stochastic RSI) এর সাথে যুক্ত করে যাতে অতিরিক্ত ক্রয়-বিক্রয় এড়ানো যায়।
কৌশলটি ALMA ব্যবহার করে যা মূলত মূল্যের প্রবণতা নির্ধারণের জন্য একটি সূচক। ALMA-র মূল্যের তথ্যকে মসৃণ করার বৈশিষ্ট্য রয়েছে, যা মূল্যের এলোমেলো ওঠানামাকে ফিল্টার করতে পারে। ALMA-র চক্র, ওভারল্যাপ এবং সিগমা প্যারামিটারগুলি সামঞ্জস্য করে এটি আরও সংবেদনশীল বা স্থিতিশীল করা যেতে পারে। দাম বাড়ার সময় ALMA সবুজ এবং দাম কমার সময় লাল দেখায়।
কৌশলটি দুটি ভিন্ন দৈর্ঘ্যের ইএমএ লাইন ব্যবহার করে। যখন দ্রুত ইএমএ লাইনটি ধীর ইএমএ লাইনটি অতিক্রম করে, তখন এটি একটি কেনার সংকেত দেয়; যখন দ্রুত ইএমএ লাইনটি ধীর ইএমএ লাইনটি অতিক্রম করে, তখন এটি একটি বিক্রয় সংকেত দেয়। ইএমএ ক্রসগুলি তুলনামূলকভাবে ভাল প্রবণতা নির্ধারণের ক্ষমতা রাখে। দ্রুত ইএমএর সময়কালটি প্যারামিটার দ্বারা সামঞ্জস্য করা যেতে পারে যাতে এটি বিভিন্ন ট্রেডিং জাত এবং সময়কালের সাথে খাপ খায়।
Stochastic RSI সূচকটির কাজ হল ওভারবয় ওভারসেল অঞ্চলে ট্রেডিং সিগন্যাল এড়ানো। এটি RSI এবং Stochastic উভয় সূচকের সুবিধাগুলিকে একত্রিত করে, যা পিক এবং নিম্নভূমি অঞ্চলের আরও ভাল বিচার করতে পারে। যখন Stochastic RSI সূচকটি ওভারবয় বা ওভারসেল হয়, তখন এই কৌশলটি মূল ওভারহেড বা খালি অর্ডার বাতিল করে দেয়।
এই কৌশলটি ইএমএ ক্রস ট্রেন্ডিংয়ের দিকনির্দেশনাকে কাজে লাগায় এবং আলমা সূচকের সাথে মিলিত হয়, যা মূল ওভারহেড এবং ওভারহেড সুযোগগুলি চিহ্নিত করে।
EMA চক্র, ALMA প্যারামিটার ইত্যাদি সামঞ্জস্যযোগ্য স্থান সরবরাহ করে, ব্যবহারকারীরা তাদের প্রয়োজন অনুসারে প্যারামিটারগুলি অপ্টিমাইজ করতে পারেন, যাতে কৌশলগুলি বিভিন্ন বাজারের পরিবেশের সাথে আরও ভালভাবে খাপ খায়।
স্টপ লস স্টপ সেটিং রয়েছে। ফ্লোটিং স্টপ ব্যবহার করে স্টপ লস হত্যার সম্ভাবনা হ্রাস করা যায়। লাভের জন্য প্রাপ্তি সেটিংটি মুনাফা লক করতে পারে এবং মুনাফা বমি করা এড়াতে পারে।
জটিল পরিস্থিতিতে, ইএমএ এবং আলমা লাইনগুলি ভুল সংকেত দিতে পারে। এই ক্ষেত্রে ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস নির্ভর করা উচিত।
যদি প্যারামিটারগুলি ভুলভাবে সেট করা হয় তবে ইএমএ এবং আলমা লাইনগুলি সঠিকভাবে কাজ করতে পারে না, যা ব্যবসায়ের ঝুঁকি বাড়িয়ে তোলে। সর্বোত্তম প্যারামিটার সংমিশ্রণটি বেছে নেওয়ার জন্য পরীক্ষা এবং অপ্টিমাইজেশন প্রয়োজন।
EMA এবং ALMA এর পরামিতি সেটিং পরীক্ষা করে এবং সর্বোত্তম পরামিতি নির্বাচন করে।
অন্যান্য সূচকগুলির সাথে মিলিত, ভুল সংকেতগুলি এড়াতে ক্ষতির কারণ হতে পারে। যেমন MACD, KDJ ইত্যাদি।
স্টপ লস-এর অনুকূলিতকরণ, ঝুঁকি নিয়ন্ত্রণ এবং মুনাফা অর্জনের মধ্যে ভারসাম্য খুঁজে পাওয়া।
বিভিন্ন জাতের পরীক্ষা করা এবং বিভিন্ন বাজারের জন্য কৌশল প্রয়োগের জন্য বিভিন্ন প্যারামিটার ব্যবহার করা।
এই কৌশলটি সামগ্রিকভাবে একটি সহজ এবং ব্যবহারিক প্রবণতা ট্র্যাকিং কৌশল। এটি ইএমএ ক্রস ব্যবহার করে প্রবণতা দিকনির্দেশ, আলমা সূচক পজিশনিং পজিশনিং পয়েন্ট, স্টোক্যাস্টিক আরএসআই ওভারসোল্ডের ঝুঁকি এড়াতে, এবং ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস এবং স্টপস সেট করে। প্যারামিটার সামঞ্জস্য এবং সূচক অপ্টিমাইজেশনের মাধ্যমে এই কৌশলটি আরও ভাল ফলাফল অর্জন করতে পারে। এটি সহজেই বোঝা এবং ব্যবহার করা যায় এবং এটির কিছুটা স্ব-অনুশীলন ক্ষমতা রয়েছে।
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////Arranged by @ClassicScott
//Strategy Created by @CheatCode1
strategy('ALMA/EMA Strategy', shorttitle='ALMA/EMA Strategy', overlay=true )
////Source Selection & ALMA Variables
//Dominant Momentum ALMA
dsource = input.source(close, title='Source', group='Dominant ALMA')
dperiod = input.int(title='Period', defval=130, group='Dominant ALMA')
doffset = input.float(title='Offset', step=0.025, defval=0.775, group='Dominant ALMA')
dsigma = input.float(title='Sigma', step=0.5, defval=4.5, group='Dominant ALMA')
dalma = ta.alma(dsource, dperiod, doffset, dsigma)
dalma_up_color = input.color(#66bb6a, 'Going Up!', group='Dominant ALMA', inline = '1')
dalma_down_color = input.color(#ef5350, 'Going Down :(', group='Dominant ALMA', inline = '1')
dcolor = close[1] > dalma ? dalma_up_color : dalma_down_color
////ALMA Plots
plot(dalma, color=dcolor, style=plot.style_stepline, linewidth=2, title='Dominant Momentum MA')
//Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1
//Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1
cheatcode = input.bool(true, '-----------CHEATC0DE1------------', group = 'Strategy Inputs', confirm = true)
//Variable Declerations/Plot Assingments
inp1 = input.int(49, 'Slow Ema Length', 1, 100, group = 'Strategy Inputs', confirm = true)
inp2 = input.int(9, 'Fast Ema Length', 1, 200, group = 'Strategy Inputs', confirm = true)
inp3 = int(200)
sma1 = ta.sma(close, inp3)
ema1 = ta.ema(close, inp1)
ema2 = ta.ema(close, inp2)
eplot1 = plot(ema1, 'Slow Ema', color.aqua, 1, plot.style_linebr)
eplot2 = plot(ema2, 'Fast Ema', color.yellow, 1, plot.style_linebr)
splot1 = plot(sma1, 'Long MA', close[1] < sma1 ? color.red:color.green, 1, plot.style_line, display = display.none)
cross1 = ta.crossover(ema1, ema2)
cross2 = ta.crossunder(ema1, ema2)
plotchar(cross1, '', '↑', location.belowbar, close[1] > dalma and dalma > sma1 ? na:color.green, size = size.normal, editable = false)
plotchar(cross2, '', '↓', location.abovebar, close[1] < dalma and dalma < sma1 ? na:color.red, size = size.normal, editable = false)
bgcolor(cross1 and close[1] > dalma ? color.new(color.green, 80):cross2 and close[1] < dalma ? color.new(color.red, 80):na)
valueL = ta.valuewhen(cross1 and close[1] > dalma, close, 0)
valueS = ta.valuewhen(cross2 and close[1] < dalma, close, 0)
//Entries
if cross1 and close[2] > dalma[2] and close[1] > dalma[1]
strategy.entry('Long', strategy.long)
if cross2 and close[2] < dalma[2] and close[1] < dalma[1]
strategy.entry('Short', strategy.short)
//StochRsi
smoothK = input.int(3, "K", minval=1)
smoothD = input.int(15, "D", minval=1)
lengthRSI = input.int(14, "RSI Length", minval=1)
lengthStoch = input.int(8, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = ta.sma(k, smoothD)
//Cancellations
if k > 75
strategy.cancel('Long')
if k < 25
strategy.cancel('Short')
//Closures
if ta.crossunder(k, d) and k > 92
strategy.close('Long')
if ta.crossover(k,d) and k < 8
strategy.close('Short')
//Exit Percents
takeP = input.float(3, title='Take Profit', group = 'Take Profit and Stop Loss') / 100
stopL = input.float(5.49, title = 'Stop Loss', group = 'Take Profit and Stop Loss')/100
// Pre Directionality
Stop_L = strategy.position_avg_price * (1 - stopL)
Stop_S = strategy.position_avg_price * (1 + stopL)
Take_S= strategy.position_avg_price * (1 - takeP)
Take_L = strategy.position_avg_price * (1 + takeP)
//Post Excecution
if strategy.position_size > 0
strategy.exit("Flat", limit=Take_L, stop = Stop_L)
if strategy.position_size < 0
strategy.exit("Flat", limit=Take_S, stop = Stop_S)