লেখক:চাওঝাং, তারিখঃ ২০২৪-০১-২৫ ১২ঃ৪৩ঃ৪৩
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি ট্রেন্ড অনুসরণকারী পরিমাপকারী ভিএফআই এবং চলমান গড়কে বিপরীতমুখী সূচক বোলিংজার ব্যান্ডের সাথে একত্রিত করে বাজারের প্রবণতা এবং বিপরীতমুখীতাকে অভিযোজিতভাবে ধরতে পারে।

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

এই কৌশলটির প্রধান উপাদানগুলি হল:

  1. প্রবণতা নির্ধারণের জন্য ভিএফআই সূচক। এটি মূল্য এবং ভলিউমকে যুক্তিসঙ্গতভাবে মেলে তা নির্ধারণের জন্য সাধারণ মূল্য এবং ট্রেডিং ভলিউমের পরিবর্তনের লোগারিদমিক হার ব্যবহার করে।

  2. প্রবণতা নির্ধারণের জন্য ইএমএ পার্থক্য সূচক। এটি মাঝারি দীর্ঘমেয়াদী প্রবণতা দিক বিচার করতে 20 দিনের ইএমএ এবং 50 দিনের ইএমএ মধ্যে শতাংশ পার্থক্য গণনা করে।

  3. বিপরীতমুখীতা সনাক্ত করার জন্য বোলিংজার ব্যান্ড। মাঝের ব্যান্ডটি 20 দিনের এসএমএ, এবং ব্যান্ডগুলির প্রস্থ হল মাঝের ব্যান্ডের 1.5 স্ট্যান্ডার্ড বিচ্যুতি। যখন দাম উপরের বা নীচের ব্যান্ডটি ভঙ্গ করে তখন ট্রেডিং সংকেত উত্পন্ন হয়।

  4. ক্লান্তি সনাক্ত করার জন্য ভিএফআই ব্যাপ্তি। যখন ভিএফআই তার সীমার কাছাকাছি আসে (0, 20), প্রবণতা বিপরীত হওয়ার সম্ভাবনা বেশি বলে মনে করা হয়।

যখন দাম উপরের বোলিংজার ব্যান্ডের উপরে ভেঙে যায় এবং ভিএফআই এবং ইএমএ পার্থক্যটি উর্ধ্বমুখী প্রবণতা নির্দেশ করে, তখন লম্বা যান। যখন দাম নীচের ব্যান্ডের নীচে ভেঙে যায় বা ভিএফআই একটি থ্রেশহোল্ডে পৌঁছে যায়, অবস্থান বন্ধ করুন।

সুবিধা

  1. ভিএফআই-র প্রবর্তন মূল্য-পরিমাণ সম্পর্ককে আরও যুক্তিসঙ্গত করে তোলে এবং দামের অন্ধভাবে অনুসরণ করা এড়ায়।

  2. EMA পার্থক্য এবং VFI এর সমন্বয় প্রবণতা নির্ধারণকে আরো নির্ভরযোগ্য করে তোলে।

  3. বোলিংজার ব্যান্ড এবং ভিএফআই এর সংমিশ্রণটি কৌশলটিকে বাজারের দ্বিপাক্ষিক ওঠানামাতে আরও অভিযোজিত করে তোলে।

ঝুঁকি

  1. ভলিউম-প্রাইস ইন্ডিকেটরগুলি ভুয়া ব্রেকআউটের ঝুঁকি পুরোপুরি এড়াতে পারে না।

  2. ইএমএ ডিফারেন্সে কিছুটা বিলম্ব রয়েছে এবং স্বল্পমেয়াদী ঘুরতে সময়মতো প্রতিক্রিয়া জানাতে পারে না।

  3. বোলিংজার ব্যান্ডের অনুপযুক্ত পরামিতিগুলি বাজারের অতিরিক্ত ট্রেডিং বা ক্যাপচার হতে পারে।

সমাধান:

  1. একক সূচকের উপর নির্ভর করা এড়াতে প্রবণতা নির্ধারণের জন্য একাধিক সূচক একত্রিত করুন।

  2. EMA প্যারামিটারগুলোকে সঠিক মানের দিকে সামঞ্জস্য করুন।

  3. বিভিন্ন বাজারের অবস্থার মধ্যে কৌশল উপর Bollinger পরামিতি প্রভাব পরীক্ষা করুন।

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

  1. ভিএফআই প্যারামিটার অপ্টিমাইজ করা চালিয়ে যান যাতে এটি আরও সংবেদনশীল হয়।

  2. মূল্য চ্যানেল বা এনভেলভ সূচকের উপর ভিত্তি করে ব্রেকআউট রায় যোগ করুন।

  3. OBV, PVT ইত্যাদির মতো আরও ভলিউম-প্রাইস সূচক প্রবর্তন পরীক্ষা করুন।

  4. গতিশীল পরামিতি অপ্টিমাইজেশান বাস্তবায়নের জন্য মেশিন লার্নিং এবং এআই কৌশল প্রবর্তন।

সিদ্ধান্ত

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


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 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/
// © beststockalert

//@version=4

strategy(title="Super Bollinger Band Breakout", shorttitle = "Super BB-BO", overlay=true)
source = close

length = input(130, title="VFI length")
coef = input(0.2)
vcoef = input(2.5, title="Max. vol. cutoff")
signalLength=input(5)


// session 


pre = input( type=input.session, defval="0400-0935")
trade_session = input( type=input.session, defval="0945-1700")
use_trade_session = true
isinsession = use_trade_session ? not na(time('1', trade_session)) : true


is_newbar(sess) =>
    t = time("D", sess)
    not na(t) and (na(t[1]) or t > t[1])


is_session(sess) =>
    not na(time(timeframe.period, sess))

preNew = is_newbar(pre)
preSession = is_session(pre)

float preLow = na
preLow := preSession ? preNew ? low : min(preLow[1], low) : preLow[1]

float preHigh = na
preHigh := preSession ? preNew ? high : max(preHigh[1], high) : preHigh[1]



//   vfi 9lazybear 
ma(x,y) => 0 ? sma(x,y) : x

typical=hlc3
inter = log( typical ) - log( typical[1] )
vinter = stdev(inter, 30 )
cutoff = coef * vinter * close
vave = sma( volume, length )[1]
vmax = vave * vcoef
vc = iff(volume < vmax, volume, vmax) //min( volume, vmax )
mf = typical - typical[1]
vcp = iff( mf > cutoff, vc, iff ( mf < -cutoff, -vc, 0 ) )

vfi = ma(sum( vcp , length )/vave, 3)
vfima=ema( vfi, signalLength )


//ema diff


ema20 = ema(close,20)
ema50 = ema(close,50)


diff = (ema20-ema50)*100/ema20
ediff = ema(diff,20)

//
basis = sma(source, 20)
dev = 1.5 * stdev(source, 20)

upper = basis + dev
lower = basis - dev


ema9 = ema(source, 9)

if ( ((crossover(source, upper) and diff>ediff and diff>0) or (close>upper and (vfi >0 or vfima>0 or ediff>0.05) and (vfi<14 or vfima<14)) ))
    strategy.entry("Long", strategy.long)


if (crossunder(source, lower) or vfi>19 or vfima>19 or diff<(ediff+0.01) )
    strategy.close("Long")



আরো