এই কৌশলটি ট্রেন্ডের দিকনির্দেশনা এবং প্রবণতা অনুসরণ করার জন্য ওয়েভ ট্রেন্ড সূচক এবং চৈকিন মানি ফ্লো (সিএমএফ) সূচককে একত্রিত করে। এটি 15 মিনিটের সময়সীমার উপর চলে, দামের প্রবণতা নির্ধারণের জন্য ওয়েভ ট্রেন্ড এবং প্রবণতা নিশ্চিত করার জন্য সিএমএফ ব্যবহার করে, এইভাবে অতি স্বল্পমেয়াদী প্রবণতা অনুসরণ বাস্তবায়ন করে।
ওয়েভট্রেন্ড সূচক কার্যকরভাবে দামের প্রবণতা দিক চিহ্নিত করতে পারে। এটি চ্যানেল মিডলাইন, চ্যানেল গড় এবং চ্যানেল সূচক নিয়ে গঠিত। চ্যানেল মিডলাইন হ'ল দামের একটি এক্সপোনেন্সিয়াল চলমান গড়, যা দামের প্রবণতা প্রতিফলিত করে। চ্যানেল গড় চ্যানেল মিডলাইনের একটি চলমান গড়, যা চ্যানেল মিডলাইনের অবস্থান নির্ধারণের জন্য ব্যবহৃত হয়। চ্যানেল সূচক চ্যানেল মিডলাইনের থেকে দামের বিচ্যুতির ডিগ্রি প্রতিফলিত করে এবং ওভারকুপ / ওভারসোল্ড সংকেত উত্পন্ন করে।
সিএমএফ সূচক তহবিলের প্রবাহ এবং প্রবাহকে বিচার করতে পারে এবং প্রবণতা নিশ্চিত করতে পারে। এই সূচকটি ভলিউম দ্বারা সামঞ্জস্য করা জমে থাকা / বিতরণ লাইনের উপর ভিত্তি করে, ক্রয় এবং বিক্রয় শক্তির তুলনা প্রতিফলিত করে। 0 এর কাছাকাছি মান তহবিল প্রবাহ এবং প্রবাহের মধ্যে ভারসাম্য নির্দেশ করে। 0 এর নীচে তহবিল প্রবাহ এবং 0 এর উপরে তহবিল প্রবাহ নির্দেশ করে।
এই কৌশলটি 15 মিনিটের সময়সীমার উপর চালিত হয়। এটি প্রথমে দামের প্রবণতার দিকনির্দেশ নির্ধারণ করতে ওয়েভট্রেন্ড সূচক ব্যবহার করে, তারপরে প্রবণতা অনুসরণ করার জন্য নিশ্চিত করতে সিএমএফ সূচক ব্যবহার করে। বিশেষত, যখন ওয়েভট্রেন্ড চ্যানেল সূচক -60 এর নীচে থাকে এবং সিএমএফ -0.2 এর চেয়ে কম হয়, তখন এটি দীর্ঘ হয়। যখন ওয়েভট্রেন্ড চ্যানেল সূচক 60 এর উপরে থাকে এবং সিএমএফ 0.2 এর চেয়ে বড় হয়, তখন এটি শর্ট হয়। প্রস্থান শর্তগুলি মূলত সিএমএফ সূচকের উপর ভিত্তি করে - যখন সিএমএফ 0.18 এর চেয়ে বড় হয় তখন এটি দীর্ঘ অবস্থান বন্ধ করে এবং যখন সিএমএফ -0.18 এর চেয়ে কম হয় তখন শর্ট অবস্থান বন্ধ করে।
সমাধান:
এই কৌশলটি প্রবণতা নির্ধারণ করতে ওয়েভট্রেন্ড এবং সিএমএফ নিশ্চিত করতে ব্যবহার করে, অতি স্বল্পমেয়াদী প্রবণতা অনুসরণ করার জন্য। এর সুবিধাগুলি যুক্তিসঙ্গত সূচক সংমিশ্রণ এবং কার্যকর প্রবণতা অনুসরণে রয়েছে, 15 মিনিটের সময়সীমার সাথে এটি স্বল্পমেয়াদী ব্যবসায়ের জন্য উপযুক্ত করে তোলে। তবে ভুল সংকেত এবং অতি সংক্ষিপ্ত হোল্ডিং সময়ের মতো ঝুঁকি রয়েছে। স্টপ লস, পরামিতি অপ্টিমাইজেশন এবং আরও সংকেত ফিল্টারিংয়ের মতো ভবিষ্যতের উন্নতিগুলি এর স্থায়িত্ব এবং লাভজনকতা আরও বাড়িয়ে তুলতে পারে।
/*backtest start: 2023-11-08 00:00:00 end: 2023-11-15 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "CMF - WaveTrend", shorttitle = "CMF - WaveTrend", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.EUR) //Chaikin Money Flow len = input(20, minval=1, title="Length") mas = input(title="Aggregation", defval="SUM", options=["SUM", "EMA", "WMA"]) e = input(10.0, title="Volume Exponent (0-10 reduces & 10+ increases volume effect)") p = input(false, title="Show in Percentage") mvs = input(false, "Factor in Price (Money Volume)") src=input(hlc3, title="Source for price factor") trl = min(low,close[1]), trh = max(high,close[1]) // 'true range' fixes issues caused by gaps in price wv = pow(volume,e/10.0)*(mvs ? src : 1) ad = (trh==trl ? 0 : (2*close-(trh+trl))/tr(true))*wv cmf = mas=="SUM" ? sum(ad, len)/sum(wv, len) : mas=="EMA" ? ema(ad, len)/ema(wv, len) : mas=="WMA" ? wma(ad, len)/wma(wv, len) : na cmf_p = if p 50*cmf+50 else cmf b = p ? 50 : 0 //WaveTrend n1 = input(10, "Channel Length") n2 = input(21, "Average Length") obLevel1 = input(60, "Over Bought Level 1") obLevel2 = input(53, "Over Bought Level 2") osLevel1 = input(-60, "Over Sold Level 1") osLevel2 = input(-53, "Over Sold Level 2") ap = hlc3 esa = ema(ap, n1) d = ema(abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ema(ci, n2) wt1 = tci wt2 = sma(wt1,4) // longCondition = wt1 < -60 and cmf < - 0.20 if (longCondition) strategy.entry("My Long Entry Id", strategy.long) shortCondition = wt1 > 60 and cmf > 0.20 if (shortCondition) strategy.entry("My Short Entry Id", strategy.short) closeLongCondition = cmf_p > 0.18 ? true : false closeShortCondition = cmf_p < -0.18 ? true : false strategy.close("My Long Entry Id", when=(closeLongCondition == true)) strategy.close("My Short Entry Id", when=(closeShortCondition == true))