বোলিংজার ব্যান্ড মোমেন্টাম ব্রেকআউট ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-02-05 10:53:46
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি বোলিংজার ব্যান্ড সূচক এবং ভলিউম সূচককে একত্রিত করে যখন ট্রেডিং ভলিউম উচ্চ হয় এবং লম্বা পজিশনে প্রবেশ করে তখন বোলিংজার উপরের ব্যান্ডের উপরে শক্তিশালী গতির ব্রেকআউট সুযোগগুলি সনাক্ত করতে। এটি প্রবণতার দিকনির্দেশ নির্ধারণ এবং মৃত পজিশন ধরে রাখার ঝুঁকি হ্রাস করার জন্য চলমান গড় সূচকগুলিও ব্যবহার করে।

কৌশলগত যুক্তি

  1. দাম উপরের ব্যান্ডের উপরে ভেঙে যায় কিনা তা নির্ধারণ করতে বোলিংজার ব্যান্ড সূচক ব্যবহার করুন।
  2. ট্রেডিং ভলিউম সূচক ব্যবহার করে বর্তমান ভলিউম গত সময়ের গড়ের তুলনায় উল্লেখযোগ্যভাবে বেশি কিনা তা নির্ধারণ করুন।
  3. যখন ট্রেডিং ভলিউম বেশি হয় এবং দাম বোলিংগারের উপরের ব্যান্ডের উপরে ভেঙে যায় তখন লং পজিশনে প্রবেশ করুন।
  4. সময়মতো ক্ষতি কমাতে স্বল্প ও মধ্যমেয়াদী প্রবণতা নির্ধারণের জন্য চলমান গড় সূচক ব্যবহার করুন।

এই কৌশলটি মূলত তিনটি কারণ বিবেচনা করেঃ মূল্যের স্তর, গতি এবং প্রবণতা। যখন দাম বোলিংজার উপরের ব্যান্ডটি ক্রয়ের অঞ্চলে ভেঙে যায়, তখন ট্রেডিং ভলিউমের উত্থান শক্তিশালী গতি এবং মূলধন প্রবাহের ইঙ্গিত দেয়। এটি দীর্ঘ অবস্থানে প্রবেশের সঠিক সময়। তারপরে এটি মৃত অবস্থানগুলি এড়ানোর জন্য বাজারের প্রবণতা নির্ধারণের জন্য চলমান গড় ব্যবহার করে। দামের ক্রিয়াকলাপ, গতি এবং ঝুঁকি নিয়ন্ত্রণকে একত্রিত করে, এটি শক্তিশালী প্রবণতা থেকে মুনাফা অর্জনের লক্ষ্য রাখে।

সুবিধা

  1. ভলিউম ফিল্টারকে একত্রিত করে, এটি শুধুমাত্র বাস্তব শক্তিশালী গতিতে কিনে, ঝুঁকি হ্রাস করে।

  2. চলমান গড় প্রবণতা নির্ধারণের মাধ্যমে সময়মতো ক্ষতি কমাতে সক্ষম, যা হোল্ডিং ক্ষতি হ্রাস করে।

  3. সিদ্ধান্ত গ্রহণের জন্য একাধিক সূচককে একত্রিত করে বাস্তবায়িত পরিমাণগত কৌশল। বিভিন্ন পণ্য এবং সময়সীমার জন্য নমনীয় পরামিতি সামঞ্জস্য।

  4. স্পষ্ট কোড কাঠামো, সহজেই পড়া এবং বজায় রাখা। সূচক গণনা, সংকেত উত্পাদন এবং অবস্থান পরিচালনার মডিউলার নকশা।

ঝুঁকি

  1. বিলেঞ্জার ব্যান্ডগুলি চরম দামের ওঠানামা, অনুপস্থিত সংকেত বা মিথ্যা সংকেত তৈরির সময় ব্যর্থ হতে পারে।

  2. যখন সামগ্রিক ট্রেডিং ভলিউম কম থাকে তখন কোনও লাভ হয় না। পর্যাপ্ত ট্রেডিং ভলিউম ছাড়া কিনতে সংকেত লাভজনক নাও হতে পারে।

  3. চলমান গড়ের প্রবণতা নির্ধারণও ব্যর্থ হতে পারে, কার্যকর স্টপ লস সম্পূর্ণরূপে নিশ্চিত করতে অক্ষম।

  4. অনুপযুক্ত পরামিতি টিউনিং কৌশল লাভজনকতা প্রভাবিত করে। উদাহরণস্বরূপ, ট্রেডিং সময় উইন্ডো খুব সংক্ষিপ্ত সেট প্রবণতা বিপরীত মিস করতে পারে।

অপ্টিমাইজেশান নির্দেশাবলী

  1. আরও বেশি প্রবণতা এবং সমর্থন/প্রতিরোধ বিশ্লেষণের জন্য আরও প্রযুক্তিগত সূচক যুক্ত করুন, স্টপ লস উন্নত করুন, যেমন ক্যান্ডেলস্টিক প্যাটার্ন, চ্যানেল, মূল সমর্থন স্তর।

  2. মেশিন লার্নিং মডেল যোগ করুন বাস্তব ব্রেকআউট সম্ভাবনা বিচার করতে, মিথ্যা সংকেত হ্রাস। উদাহরণস্বরূপ LSTM গভীর শেখার মডেল।

  3. একক বাণিজ্য ক্ষতির প্রভাব হ্রাস করার জন্য গতিশীল অবস্থান আকারের মতো মূলধন পরিচালনার কৌশলগুলি অপ্টিমাইজ করুন।

  4. আরো পণ্য এবং সময়সীমা পরীক্ষা করুন, বোলিংজার ব্যান্ড, ভলিউম উইন্ডো এর মত প্যারামিটারগুলি সামঞ্জস্য করুন কৌশল দৃঢ়তা উন্নত করতে।

সিদ্ধান্ত

এই কৌশলটি শক্তিশালী গতির কেনার সুযোগগুলি সনাক্ত করতে বোলিংজার ব্যান্ড এবং ট্রেডিং ভলিউম সূচকগুলিকে সংহত করে, চলমান গড়গুলি কার্যকর স্টপ লস নিশ্চিত করে। একক সূচক কৌশলগুলির তুলনায় এটির উচ্চতর নির্ভুলতা এবং ঝুঁকি নিয়ন্ত্রণ ক্ষমতা রয়েছে। মডুলার ডিজাইন, ট্রেন্ড ফিল্টার এবং স্টপ লস প্রক্রিয়াগুলির সাথে এটি একটি সহজ-অপ্টিমাইজযোগ্য গতির ব্রেকআউট ট্রেডিং কৌশল গঠন করে।


/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 1h
basePeriod: 15m
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/
// © KAIST291

//@version=4
initial_capital=1000
strategy("prototype", overlay=true)
length1=input(1)
length3=input(3)
length7=input(7)
length9=input(9)
length14=input(14)
length20=input(20)
length60=input(60)
length120=input(120)
ma1= sma(close,length1)
ma3= sma(close,length3)
ma7= sma(close,length7)
ma9= sma(close,length9)
ma14=sma(close,length14)
ma20=sma(close,length20)
ma60=sma(close,length60)
ma120=sma(close,length120)
rsi=rsi(close,14)
// BUYING VOLUME AND SELLING VOLUME //
BV = iff( (high==low), 0, volume*(close-low)/(high-low))
SV = iff( (high==low), 0, volume*(high-close)/(high-low))
vol = iff(volume > 0, volume, 1)
dailyLength = input(title = "Daily MA length", type = input.integer, defval = 50, minval = 1, maxval = 100)
weeklyLength = input(title = "Weekly MA length", type = input.integer, defval = 10, minval = 1, maxval = 100)
//-----------------------------------------------------------
Davgvol = sma(volume, dailyLength)
Wavgvol = sma(volume, weeklyLength)
//-----------------------------------------------------------
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
mult2= input(1.5, minval=0.001, maxval=50, title="exp")
mult3= input(1.0, minval=0.001, maxval=50, title="exp1")
mult4= input(2.5, minval=0.001, maxval=50, title="exp2")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
dev2= mult2 * stdev(src, length)
Supper= basis + dev2
Slower= basis - dev2
dev3= mult3 * stdev(src, length)
upper1= basis + dev3
lower1= basis - dev3
dev4= mult4 * stdev(src, length)
upper2=basis + dev4
lower2=basis - dev4
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
//----------------------------------------------------
exit=(close-strategy.position_avg_price / strategy.position_avg_price*100)
bull=( BV>SV and BV>Davgvol)
bull2=(BV>SV and BV>Davgvol)
bux =(close>Supper and close>Slower and volume<Davgvol)
bear=(SV>BV and SV>Davgvol)
con=(BV>Wavgvol and rsi>80)
imInATrade = strategy.position_size != 0
highestPriceAfterEntry = valuewhen(imInATrade, high, 0)
// STRATEGY LONG //
if (bull and close>upper1 and close>Supper and high>upper and rsi<80)
    strategy.entry("Long",strategy.long)

if (strategy.position_avg_price*1.02<close)
    strategy.close("Long")
else if (low<ma9 and strategy.position_avg_price<close)
    strategy.close("Long")
else if (ma20>close and strategy.position_avg_price<close )
    strategy.close("Long")
else if (rsi>80 and strategy.position_avg_price<close)
    strategy.close("Long")
else if (strategy.openprofit < strategy.position_avg_price*0.9-close)
    strategy.close("Long")
else if (high<upper and strategy.position_avg_price<close)
    strategy.close("Long")
//////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////
strategy.entry("Short",strategy.short,when=low<ma20 and low<lower1 and close<Slower and crossunder(ma60,ma120))

if (close<strategy.position_avg_price*0.98)
    strategy.close("Short")

else if (rsi<20)
    strategy.close("Short")



আরো