
এই কৌশলটি বাজারের প্রবণতার দিকটি নির্ধারণের জন্য দুটি ভিন্ন সময়ের সূচকীয় চলমান গড় (ইএমএ) গণনা করে এবং প্রবণতার দিকটি নির্ধারণের সাথে সাথে ব্রিনের সাথে স্ব-অনুকূলিতকরণের মাধ্যমে ওভারবয় ওভারসেলের সুযোগগুলি সনাক্ত করে ট্রেন্ড-ট্র্যাকিং লেনদেনের জন্য।
২০০-পিরিয়ড এবং ৩০-পিরিয়ডের ইএমএ গণনা করুন। ২০০ ইএমএ ৩০ ইএমএর চেয়ে বড় হলে তা লম্বা লাইনের প্রবণতা হিসাবে বিচার করা হবে, অন্যথায় লম্বা লাইনের প্রবণতা হিসাবে বিচার করা হবে।
ট্রেন্ডের দিকনির্দেশনা নির্ধারণের পরে, বুলেন ব্যান্ডের বেসলাইন, উপরের এবং নীচের রেলগুলি গণনা করুন। বেসলাইনটি কনফিগারযোগ্য সময়কালের এসএমএ (যেমন 8 টি সময়কাল) ব্যবহার করে, এবং ব্যান্ডউইথটি একই সময়ের সর্বোচ্চ এবং সর্বনিম্ন দামের খুব খারাপ কনফিগারযোগ্য গুণিতক (যেমন 1.3 এবং 1.1) ।
লম্বা লাইনের ঊর্ধ্বমুখী হলে, যখন দাম নিচের দিক থেকে ঊর্ধ্বমুখী হয়ে নিম্নমুখী হয়, তখন এটিকে কেনা হিসেবে বিবেচনা করা হয়; লম্বা লাইনের ঊর্ধ্বমুখী হলে, যখন দাম ঊর্ধ্বমুখী হয়ে নিম্নমুখী হয়ে ঊর্ধ্বমুখী হয়, তখন এটিকে বিক্রি হিসেবে বিবেচনা করা হয়।
ভুয়া ব্রেকিংয়ের জন্য, ব্রেকিংয়ের সময় পূর্ববর্তী কে লাইনের পরিবর্তনশীলতা কনফিগারযোগ্য মানের চেয়ে কম কিনা তা পরীক্ষা করুন (যেমন 3%) এবং ব্রিনের উপরে এবং নীচে রেলের দূরত্বটি কনফিগারযোগ্য দূরত্বের চেয়ে বেশি কিনা তা পরীক্ষা করুন (যেমন 2.2%) ।
পজিশন খোলার পর কনফিগারযোগ্য স্টপ লস (যেমন 3%) এবং স্টপ স্টপ (যেমন 10%) সেট করুন, যাতে মুনাফা লক করা যায়।
ডাবল ইএমএ মূল প্রবণতা নির্ণয় করে, মূল প্রবণতা অজানা অবস্থায় অবাধে পজিশন খোলার এড়াতে।
স্বনির্ধারিত বুলিং বন্ডে পজিশন খোলার পয়েন্ট সেট করুন, প্রবণতা অনুসারে স্বয়ংক্রিয়ভাবে ব্যান্ডউইথ প্যারামিটারগুলি সামঞ্জস্য করুন এবং প্রবণতা আরও লক করুন।
পরিবর্তনশীলতা এবং ন্যূনতম ব্যান্ডউইথ চেকিং প্রক্রিয়া কার্যকরভাবে জাল ভাঙ্গন ফিল্টার করে।
স্টপ লস স্টপ সেটআপ যুক্তিসঙ্গত, লাভের ঝুঁকি নিয়ন্ত্রণযোগ্য।
ডাবল ইএমএ সঠিকভাবে টার্নিং পয়েন্ট নির্ধারণ করতে পারে না এবং ট্রেন্ড পাল্টানোর সুযোগ মিস করতে পারে।
ভুলভাবে ব্রিন-ব্যান্ড প্যারামিটার সেট করা হলে ভুয়া সংকেত হতে পারে।
ফিক্সড স্টপ লস স্টপ বাজার ওঠানামার সাথে সামঞ্জস্যপূর্ণ নয়।
অন্যান্য সূচকগুলির সাথে মিলিত হয়ে প্রবণতা নির্ধারণ করুন এবং প্রধান প্রবণতা রূপান্তর পয়েন্টগুলি নির্ধারণ করুন।
ব্রিনের বেন্ড প্যারামিটারগুলিকে গতিশীলভাবে সামঞ্জস্য করার পদ্ধতি ব্যবহার করে।
একক স্টপ স্টপ ক্ষতি সেট করুন এবং নির্দিষ্ট অবস্থার উপর নির্ভর করে স্টপ লাইনটি সামঞ্জস্য করুন।
এই কৌশলটি ডাবল ইএমএ বিচার প্রধান প্রবণতা এবং বুলিন ব্যান্ডের সুযোগ আবিষ্কারের পদ্ধতির সমন্বিত ব্যবহার করে ট্রেন্ড ট্র্যাকিং ট্রেডিংকে বাস্তবায়ন করে। কৌশলটির সুবিধা হ’ল যুক্তিসঙ্গতভাবে খোলা এবং ক্ষতির শর্তগুলি কার্যকরভাবে লক করার জন্য প্রবণতা লাভের জন্য। তবে কিছু ঝুঁকিও রয়েছে, যেমন বিপরীত দিকটি নির্ধারণের অক্ষমতা এবং বুলিন ব্যান্ডের প্যারামিটারটি ভুলভাবে সেট করা। এই সমস্যাগুলির আরও অপ্টিমাইজেশনের জায়গা রয়েছে যাতে কৌশলটি প্রবণতা লাভের জন্য আরও ভালভাবে ধরে রাখতে পারে।
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//////////////////////////////////////////////////////////////////////
// Component Code Start
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2039, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
// Component Code Stop
strategy("Custom Band Strategy", overlay=true)
source = close //종가 기준
//추세 조건 설정
emaLong = ema(source, input(200, minval=0))
emaShort = ema(source, input(30, minval=0))
trend = if emaShort>=emaLong
1
else
-1
plot(emaLong, color=red, transp=0)
plot(emaShort, color=blue, transp=0)
//BB 계산(default 14/3.2)
length = input(8, minval=1)
basis = sma(source, length)
plot(basis, color=green, transp=0)
max=highest(abs(source-basis), length)
factor1 = input(1.3, minval=0.5)
factor2 = input(1.1, minval=0.5)
upper = if trend==1
basis + max*factor1
else
basis + max*factor2
lower = if trend==-1
basis - max*factor1
else
basis - max*factor2
plot1 = plot(upper)
plot2 = plot(lower)
fill(plot1, plot2, transp=80, color=green)
//밴드 이탈 후 재진입 조건 설정
cross_over = (low<=lower and close>=lower) or crossover(close,lower)
cross_under = (high>=upper and close<=upper) or crossunder(close,upper)
//변동율 계산
maxCandle=highest(abs(open-close), length)
roc = abs(open-close)/open*100
changerate = input(3, minval=0.0)
//수익률 계산
value = abs(strategy.position_size)*strategy.position_avg_price
roe = strategy.openprofit/value * 100
expRoeL = (upper-lower)/lower*100
expRoeS = (upper-lower)/upper*100
exp = input(2.2, minval=0.0)
target = input(10, minval=0.0)
stop = input(-3, minval=-10.0)
strategy.close_all(when=roc>=changerate and testPeriod())
strategy.close_all(when=roe>=target and testPeriod())
strategy.close_all(when=roe<=stop and testPeriod())
plotchar(crossover(close,lower) and crossunder(close,upper),color=blue, transp=0, text="cross")
plotchar(roc>=changerate,color=red, transp=0, text="roc")
plotchar(roe>=target,color=blue, transp=0, text="target")
plotchar(roe<=stop,color=green, transp=0, text="stop")
minroe = input(2, minval=0.0)
strategy.close_all(when=cross_under and roe>minroe and testPeriod())
strategy.entry("BBandLE", strategy.long, stop=source, oca_name="BollingerBands", comment="BBandLE", when=(cross_over) and trend==1 and roc<changerate and expRoeL>exp and source>emaLong and strategy.position_size==0 and testPeriod()) //trend==1 and
//else
strategy.close_all(when=cross_over and roe>minroe and testPeriod())
strategy.entry("BBandSE", strategy.short, stop=source, oca_name="BollingerBands", comment="BBandSE", when=(cross_under) and trend==-1 and roc<changerate and expRoeS>exp and source<emaLong and strategy.position_size==0 and testPeriod()) //trend==-1 and