সংক্ষিপ্ত বিবরণঃ এটি একটি প্রবণতা অনুসরণকারী কৌশল যা প্রবণতা সনাক্ত করতে ওয়েভ ট্রেন্ড দোলক ব্যবহার করে। এটি একটি ওয়েভ ট্রেন্ড লাইন প্লট করার জন্য গড় মূল্য এবং পরম মূল্য পার্থক্যের এক্সপোনেনশিয়াল চলমান গড় গণনা করে। ওয়েভ ট্রেন্ড লাইনটি ওভারকপ/ওভারসোল্ড অঞ্চল অতিক্রম করার সময় ট্রেডিং সংকেত তৈরি করা হয়। চলমান গড় এবং ভলিউমের অতিরিক্ত ফিল্টারগুলি মিথ্যা সংকেতগুলি এড়ায়।
কৌশলগত যুক্তি:
গড় মূল্য গণনা করুন ap = (উচ্চ + নিম্ন + বন্ধ) / 3
এএসএ পাওয়ার জন্য ap এর n-period EMA গণনা করুন
d পাওয়ার জন্য ap এবং esa এর মধ্যে নিখুঁত পার্থক্যের n-period EMA গণনা করুন
তরঙ্গ প্রবণতা রেখা গণনা করুনঃ ci = (ap - esa) / ((0.015*d)
চূড়ান্ত তরঙ্গ প্রবণতা লাইন tci, অর্থাৎ wt1 পেতে ci এর n2-period EMA গণনা করুন
wt2 পেতে wt1 এর 4-পরিয়ড SMA গণনা করুন
প্লট overbought/oversold level lines obLevel1/2 এবং osLevel1/2
যখন wt1 obLevel2 অতিক্রম করে তখন ক্রয় সংকেত তৈরি করুন; যখন wt1 osLevel2 এর নীচে অতিক্রম করে তখন বিক্রয় সংকেত তৈরি করুন
চলমান গড় emaFilter এবং ভলিউম ফিল্টার ভলিউম ফিল্টার হিসাবে ফিল্টার যোগ করুন মিথ্যা সংকেত এড়াতে
পজিশনে প্রবেশের পর লাভ/হ্রাস বন্ধের সেট
উপকারিতা:
ওয়েভ ট্রেন্ড লাইন ট্রেন্ড/কন্ট্রা-ট্রেন্ড ট্রানজিশন ভালভাবে পরিচালনা করে
চলমান গড় এবং ভলিউমের দ্বৈত ফিল্টারগুলির মাধ্যমে নির্ভরযোগ্যতা উন্নত
একাধিক পরামিতি একক সূচকের সীমাবদ্ধতা এড়ায়
মুনাফা/স্টপ লস লক্সে লক্ এবং কন্ট্রোল রিস্ক
ঝুঁকি এবং সীমাবদ্ধতা:
প্যারামিটার নির্বাচন দুর্বল কর্মক্ষমতা বা অতিরিক্ত ফিটিং হতে পারে
অপ্টিমাম প্যারামিটার সম্পর্কে কোন চূড়ান্ত নির্দেশিকা নেই
বৃহত্তর বাজার অবস্থার উপেক্ষা করে
ব্যাপ্তি-সীমাবদ্ধ/চম্পি বাজারে হুইপ-সাগের ঝুঁকি
মুনাফা/স্টপ লস ছাড়াও প্রস্থান নিয়মের অভাব
উন্নতির সুযোগ:
সর্বোত্তম মান খুঁজে পেতে সময়সীমা / সম্পদ জুড়ে পরীক্ষার পরামিতি
নিম্ন অস্থিরতা ব্যবস্থা এড়াতে অস্থিরতা পরিমাপ অন্তর্ভুক্ত করুন
সিগন্যালের নির্ভুলতা উন্নত করতে RSI এর মত সূচক যোগ করুন
সর্বোত্তম কাস্টমাইজড পরামিতি খুঁজে পেতে মেশিন লার্নিং মডেল তৈরি করুন
ট্রেলিং স্টপ বা ভোল্টেবিলিটি ইভেন্ট ভিত্তিক প্রস্থান সহ প্রস্থানগুলিকে উন্নত করুন
উপসংহারঃ
এটি একটি প্রবণতা অনুসরণকারী কৌশল যা অতিরিক্ত ফিল্টারগুলির সাথে ওয়েভ ট্রেন্ড সূচককে অন্তর্ভুক্ত করে। এটি প্রবণতা রূপান্তরগুলি সনাক্ত করার জন্য ওয়েভ ট্রেন্ড লাইনের দক্ষতার উপর মূলধন করে, মিথ্যা সংকেত এড়াতে চলমান গড় এবং ভলিউম ফিল্টার ব্যবহার করে এবং বেশিরভাগ মাঝারি / দীর্ঘমেয়াদী প্রবণতা ক্যাপচার করার লক্ষ্য রাখে। ঝুঁকি নিয়ন্ত্রণের জন্য লাভ / স্টপ লস ব্যবহার করা হয়। প্যারামিটারগুলি অপ্টিমাইজ করে, আরও সূচক যুক্ত করে এবং মেশিন লার্নিংয়ের মতো কৌশলগুলি যুক্ত করে আরও সরঞ্জাম এবং সময়সীমার পারফরম্যান্স উন্নত করার উল্লেখযোগ্য সুযোগ রয়েছে।
/*backtest start: 2023-12-31 00:00:00 end: 2024-01-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bush Strategy test", shorttitle="Nique Audi", overlay=false) // Paramètres n1 = input(10, title="Channel Length") n2 = input(21, title="Average Length") obLevel1 = input(60, title="Over Bought Level 1") obLevel2 = input(53, title="Over Bought Level 2") osLevel1 = input(-65, title="Over Sold Level 1") osLevel2 = input(-60, title="Over Sold Level 2") takeProfitPercentage = input(1, title="Take Profit (%)") stopLossPercentage = input(0.50, title="Stop Loss (%)") // Calculs ap = hlc3 esa = ta.ema(ap, n1) d = ta.ema(math.abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ta.ema(ci, n2) wt1 = tci wt2 = ta.sma(wt1, 4) // Tracé des lignes plot(0, color=color.gray) plot(obLevel1, color=color.red) plot(osLevel1, color=color.green) plot(obLevel2, color=color.red, style=plot.style_line) plot(osLevel2, color=color.green, style=plot.style_line) plot(wt1, color=color.green) plot(wt2, color=color.red, style=plot.style_line) // Tracé de la différence entre wt1 et wt2 en bleu hline(0, "Zero Line", color=color.gray) // Conditions d'entrée long et court longCondition = ta.crossover(wt1, obLevel2) shortCondition = ta.crossunder(wt1, osLevel2) // Tracé des signaux d'achat et de vente plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal") // Conditions d'entrée et de sortie strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition) // Niveaux de prise de profit pour les positions longues et courtes longTakeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercentage / 100) shortTakeProfitLevel = strategy.position_avg_price * (1 - takeProfitPercentage / 100) // Vérification si les niveaux de prise de profit sont atteints longTakeProfitReached = strategy.position_size > 0 and high >= longTakeProfitLevel shortTakeProfitReached = strategy.position_size < 0 and low <= shortTakeProfitLevel // Tracé des formes de prise de profit plotshape(series=longTakeProfitReached, style=shape.xcross, location=location.belowbar, color=color.blue, size=size.small, title="Take Profit Long") plotshape(series=shortTakeProfitReached, style=shape.xcross, location=location.abovebar, color=color.blue, size=size.small, title="Take Profit Short") // Niveaux de stop loss pour les positions longues et courtes longStopLossLevel = strategy.position_avg_price * (1 - stopLossPercentage / 100) shortStopLossLevel = strategy.position_avg_price * (1 + stopLossPercentage / 100) // Vérification si les niveaux de stop loss sont atteints longStopLossReached = strategy.position_size > 0 and low <= longStopLossLevel shortStopLossReached = strategy.position_size < 0 and high >= shortStopLossLevel // Tracé des formes de stop loss plotshape(series=longStopLossReached, style=shape.xcross, location=location.belowbar, color=color.red, size=size.small, title="Stop Loss Long") plotshape(series=shortStopLossReached, style=shape.xcross, location=location.abovebar, color=color.red, size=size.small, title="Stop Loss Short") // Fermeture des positions en cas de prise de profit ou de stop loss strategy.close("Long", when=longTakeProfitReached or longStopLossReached) strategy.close("Short", when=shortTakeProfitReached or shortStopLossReached)