এই নিবন্ধে একটি পরিমাণগত কৌশল সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে যা চ্যানেল ব্রেকিং ব্যবহার করে ট্রেডিং ট্রেডিং করে। এই কৌশলটি ইএমএ চ্যানেলের মাধ্যমে ট্রেন্ডের দিকনির্দেশনা এবং বিউরিন বন্ডের সিদ্ধান্তের বিপরীতে বিপরীত অপারেশন করে।
১, কৌশলগত নীতি
এই কৌশলটিতে নিম্নলিখিত উপাদানগুলি অন্তর্ভুক্ত রয়েছেঃ
মধ্যম লাইন EMA স্থাপন করুন এবং অনুপাত অনুসারে উপরের এবং নীচের চ্যানেলগুলি প্রসারিত করুন;
যখন দাম উপরের চ্যানেল লাইন অতিক্রম করে, তখন অতিরিক্ত ট্র্যাকিং; যখন দাম নীচের চ্যানেল লাইন অতিক্রম করে, তখন ফাঁকা ট্র্যাকিং;
যখন বুলিন ব্যালেন্স সংকীর্ণ হয়, তখন ট্রেন্ডের বিপরীত দিকটি চিহ্নিত করুন এবং বিপরীত দিকে কাজ করুন।
এটিআর স্টপ সেট করুন ক্ষতির ঝুঁকি সীমিত করতে।
কাস্টমাইজড চ্যানেল প্যারামিটারগুলি, সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে
এই কৌশলটি EMA চ্যানেলের মাধ্যমে মূলধারার প্রবণতার দিক নির্ণয় করে এবং একটি পূর্ণাঙ্গ প্রবণতা সিস্টেম গঠন করার জন্য বুলিন বন্ডের মাধ্যমে বিপরীত সুযোগগুলি চিহ্নিত করে।
দ্বিতীয়, কৌশলগত সুবিধা
এই কৌশলটির সবচেয়ে বড় সুবিধা হল ইন্ডিকেটরটি যুক্তিসঙ্গতভাবে ব্যবহার করা হয়েছে, EMA মূলধারার বিচার করে, এবং ব্রিন ব্যান্ডটি বিপরীত দিকে ধরা পড়ে।
আরেকটি সুবিধা হল স্টপ লস সেটিং সরাসরি কার্যকর, যা ঝুঁকি নিয়ন্ত্রণ করতে পারে।
অবশেষে, পরামিতিগুলি কাস্টমাইজ করা যায় এবং বিভিন্ন জাতের জন্য অপ্টিমাইজ করা যায়।
তৃতীয়, সম্ভাব্য ঝুঁকি
কিন্তু এই কৌশলটির সাথে নিম্নলিখিত সমস্যাগুলি রয়েছেঃ
প্রথমত, ইএমএ এবং বুলিং-ব্যান্ডের সূচকগুলো পিছিয়ে রয়েছে।
দ্বিতীয়ত, রিভার্স অপারেশনের ব্যর্থতার ঝুঁকি বিবেচনা করা প্রয়োজন।
পরিশেষে, প্যারামিটার অপ্টিমাইজেশনের জন্য অনেক কাজ করতে হবে যাতে ওভার অপ্টিমাইজেশন না হয়।
বিষয়বস্তুঃ
এই নিবন্ধে একটি কৌশল সম্পর্কে বিস্তারিতভাবে আলোচনা করা হয়েছে যা EMA চ্যানেলের মাধ্যমে ট্রেডিং ট্রেডিংয়ের জন্য ব্যবহার করা হয়। এটি মূলধারার প্রবণতা সনাক্ত করতে এবং বিপরীত দিকে বিপরীতভাবে কাজ করতে পারে। এই কৌশলটি প্যারামিটার অপ্টিমাইজেশনের মাধ্যমে স্থিতিশীল আয় অর্জন করতে পারে, তবে অপ্টিমাইজেশনের অসুবিধা এবং সূচক পিছিয়ে পড়া ইত্যাদি সমস্যাগুলি নিয়ন্ত্রণ করতে হবে।
/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="[mdeacey] EMA Percentage Channel + Bollinger Band Trending Strategy", shorttitle="[mdeacey] EMA% Channel + BB Trend Strategy", overlay=true)
//EMA 200
len = input(title="EMA Length", type=input.integer, defval=100)
srce = input(title="EMA Source", type=input.source, defval=close)
ema1= ema(srce,len)
percent = input(title="Inside Channel (%)", type=input.float, defval= 1)
valuee = (percent*ema1)/100
upperbande = ema1 + valuee
lowerbande = ema1 - valuee
///2
percent2 = input(title="Outside Channel (%)", type=input.float, defval= 2)
valuee2 = (percent2*ema1)/100
upperbande2 = ema1 + valuee2
lowerbande2 = ema1 - valuee2
plot(upperbande, title='Inside Channel Upperband', color=color.black, linewidth=1, style=plot.style_line )
plot(lowerbande, title='Inside Channel Lowerband', color=color.black, linewidth=1, style=plot.style_line )
plot(upperbande2, title='Outside Channel Upperband', color=color.black, linewidth=1, style=plot.style_line )
plot(lowerbande2, title='Outside Channel Lowerband', color=color.black, linewidth=1, style=plot.style_line )
length = input(20, minval=2)
src = input(close, title="Close price")
mult = input(2.0, title="Multiplier", minval=0.001, maxval=50)
MA2 = sma(src, length)
dev = mult * stdev(src, length)
upper = MA2 + dev
lower = MA2 - dev
signalColor = crossunder(close, upper) ? color.red : crossover(close, lower) ? color.green : color.white
barcolor(color=signalColor)
nopo= strategy.position_size==0
upperBand = plot(upper, title='Upper Bollinger Band', color=color.gray, linewidth=1)
lowerBand = plot(lower, title='Lower Bollinger Band', color=color.gray, linewidth=1)
fill(upperBand, lowerBand, title='Bollinger Band', color=color.black)
strategy.entry("Long",true,when = crossover(close,lower) and close <lowerbande and close>lowerbande2)
strategy.close("Long",when = crossunder(close,lowerbande2))//crossunder(close,lowerbande) or crossunder(close,lowerbande2))
strategy.entry("Short",false,when = crossunder(close,upper) and close >upperbande and close<upperbande2)
strategy.close("Short",when = crossover(close,upperbande2) )//crossover(close,upperbande) or crossover(close,upperbande2) )
//Inputs
atrPeriod = input(defval=14, title="ATR Period",group='ATR Stoploss', type=input.integer) // Adjust this to change the ATR calculation length
multiplierPeriod = input(defval=1.75, title="ATR Multiplier",group='ATR Stoploss', type=input.float)// Adjust this to change the distance between your candles and the line
//ATR Calculation
pine_rma(x, y) =>
alpha = y
sum = 0.0
sum := (x + (alpha - 1) * nz(sum[1])) / alpha
true_range() =>
max(high - low, max(abs(high - close[1]), abs(low - close[1])))
//Long SL
plot(low - pine_rma(true_range() * multiplierPeriod, atrPeriod), "Long Stop", color=color.red, offset = 1)
// Short SL
plot(high +pine_rma(true_range() * multiplierPeriod, atrPeriod), "Short Stop", color=color.red, offset = 1)
strategy.exit("Exit","Long",limit=upper ,stop = low - pine_rma(true_range() * multiplierPeriod, atrPeriod) )
strategy.exit("Exit","Short",limit=lower ,stop =high +pine_rma(true_range() * multiplierPeriod, atrPeriod) )
/////////////////////new strategy
strategy.entry("Long",true,stop =upperbande ,when = close <upperbande and close[1] <upperbande and nopo )
strategy.close("Long",when = crossunder(close,upper) )// and close <upperbande and close>lowerbande)
strategy.entry("Short",false,stop =lowerbande ,when = close >lowerbande and close[1] >lowerbande and nopo )
strategy.close("Short",when = crossover(close, lower) )
strategy.exit("Exit","Long",stop = low - pine_rma(true_range() * multiplierPeriod, atrPeriod) )
strategy.exit("Exit","Short",stop =high +pine_rma(true_range() * multiplierPeriod, atrPeriod) )