
এই কৌশলটি বুলিন ব্যান্ড এবং মুভিং এভারেজের সাথে একত্রিত করে ট্রেডিং সিস্টেম ডিজাইন করে যা ট্রেন্ড অনুসরণ করে। দামগুলি যখন বুলিন ব্যান্ডের উপরে উঠে যায় এবং এসএমএ 200 এর উপরে নেমে যায় তখন আরও বেশি করা হয়, দামগুলি যখন বুলিন ব্যান্ডের নীচে নেমে যায় তখন আংশিকভাবে প্যাড করা হয় এবং যখন দামগুলি এসএমএ 200 এর নীচে পড়ে তখন পুরো প্যাড করা হয়। এই কৌশলটি ট্রেন্ড অনুসরণ করে এবং ট্রেন্ড পরিবর্তনের সময় ক্ষতি বন্ধ করে দেয়।
এই কৌশলটি প্রবণতা নির্ধারণের পূর্বশর্তটি হল যে বুলিনের ব্যাপ্তিটি এসএমএ ২০০ এর উপরে পুরোপুরি অবস্থিত হওয়া দরকার, এবং কেবলমাত্র একটি স্পষ্ট উত্থান প্রবণতার মধ্যে একটি মাল্টি-ডাইরেক্টর প্রবেশের জন্য বেছে নেওয়া উচিত। যখন একটি পতনশীল প্রবণতা আসে, তখন সমালোচনামূলক পয়েন্ট শেয়ার ক্ষতি এবং পুরো পজিশন ক্ষতির মাধ্যমে ঝুঁকি নিয়ন্ত্রণ করা উচিত।
এই ঝুঁকিগুলি ব্রিন-ব্যান্ডের প্যারামিটারগুলি সাবধানে পরীক্ষা করে, আংশিক ক্ষতির কৌশলগুলি অপ্টিমাইজ করে, এসএমএ চক্রের প্যারামিটারগুলিকে সামঞ্জস্য করে এবং আরও বৈজ্ঞানিক ঝুঁকি ব্যবস্থাপনার পদ্ধতিগুলি প্রবর্তন করে হ্রাস করা যেতে পারে।
এই কৌশলটি বুলিন-ব্যান্ড চ্যানেল এবং এসএমএ গড় লাইন সূচককে একত্রিত করে একটি সম্পূর্ণ প্রবণতা ট্র্যাকিং কৌশল তৈরি করেছে। এটি প্রবণতার অস্তিত্বের বিচার করার ক্ষেত্রে নির্ভরযোগ্য এবং শক্তিশালী প্রবণতা ট্র্যাকিং ক্ষমতা রয়েছে। স্টপ লস কৌশলগুলি ক্রমাগত অপ্টিমাইজ করা, সংকেত ভুল বিচার হার হ্রাস করা এবং বৈজ্ঞানিক ঝুঁকি ব্যবস্থাপনার মাধ্যমগুলি প্রবর্তন করার মাধ্যমে এই কৌশলটি একটি দীর্ঘমেয়াদী ল্যান্ডস্কেপ ট্র্যাকিংয়ের জন্য একটি মূল্যবান প্রবণতা কৌশল হতে পারে। এটি একটি পরিমাণগত ট্রেডিং কৌশল ডিজাইনের জন্য একটি চিন্তাভাবনা প্রদান করে যা একাধিক সূচককে একত্রিত করে।
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee
//@version=4
strategy(title="BB9_MA200_Strategy", overlay=true, pyramiding=1, default_qty_type=strategy.cash, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed,
var stopLossVal=0.00
//variables BEGIN
smaLength=input(200,title="MA Length")
bbLength=input(21,title="BB Length")
bbsrc = input(close, title="BB Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
stopLoss = input(title="Stop Loss%", defval=5, minval=1)
riskCapital = input(title="Risk % of capital == Based on this trade size is claculated numberOfShares = (AvailableCapital*risk/100) / stopLossPoints", defval=10, minval=1)
sma200=ema(close,smaLength)
plot(sma200, title="SMA 200", color=color.orange)
//bollinger calculation
basis = sma(bbsrc, bbLength)
dev = mult * stdev(bbsrc, bbLength)
upperBand = basis + dev
lowerBand = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
//plot bb
plot(basis, "Basis", color=color.teal, style=plot.style_circles , offset = offset)
p1 = plot(upperBand, "Upper", color=color.teal, offset = offset)
p2 = plot(lowerBand, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=color.teal, transp=95)
strategy.initial_capital = 50000
//Entry---
strategy.entry(id="LE", comment="LE capital="+tostring(strategy.initial_capital + strategy.netprofit ,"######.##"), qty=( (strategy.initial_capital + strategy.netprofit ) * riskCapital / 100)/(close*stopLoss/100) , long=true, when=strategy.position_size<1 and upperBand>sma200 and lowerBand > sma200 and crossover(close, basis) ) // // aroonOsc<0 //(strategy.initial_capital * 0.10)/close
barcolor(color=strategy.position_size>=1? color.blue: na)
//partial Exit
tpVal=strategy.position_size>1 ? strategy.position_avg_price * (1+(stopLoss/100) ) : 0.00
strategy.close(id="LE", comment="Partial points="+tostring(close - strategy.position_avg_price, "####.##"), qty_percent=30 , when=abs(strategy.position_size)>=1 and close>tpVal and crossunder(lowerBand, sma200) ) //close<ema55 and rsi5Val<20 //ema34<ema55
//close All on stop loss
//stoploss
stopLossVal:= strategy.position_size>1 ? strategy.position_avg_price * (1-(stopLoss/100) ) : 0.00
strategy.close_all( comment="SL Exit points="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size)>=1 and close < stopLossVal ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89//
strategy.close_all( comment="BB9 X SMA200 points="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size)>=1 and crossunder(basis, sma200) ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89