এই কৌশলটি দ্বিপাক্ষিক গড় রেখার গতিশীল গড়ের বিপরীতে ভিত্তি করে ট্রেডিং সিগন্যাল তৈরি করে। এটি দ্রুত চক্র এবং ধীর চক্রের দুটি গড় রেখা গণনা করে, যখন দ্রুত রেখাটি নীচের দিক থেকে ধীর রেখাটি অতিক্রম করে তখন একটি কিনুন সংকেত তৈরি করে; যখন দ্রুত রেখাটি উপরের দিক থেকে নীচে পড়ে তখন একটি বিক্রয় সংকেত তৈরি করে।
এই কৌশলটির মূল যুক্তি হল দুটি চলমান গড় SMA (len1) এবং SMA (len2) এবং তাদের ডিফারিয়েন্সের গণনা করা; যেখানে len1 স্বল্পমেয়াদী গড় চক্রকে প্রতিনিধিত্ব করে এবং len2 দীর্ঘমেয়াদী গড় চক্রকে প্রতিনিধিত্ব করে। স্বল্পমেয়াদী গড় চক্রগুলি দামের পরিবর্তনের জন্য দ্রুত প্রতিক্রিয়াশীল এবং দীর্ঘমেয়াদী গড়গুলি দীর্ঘমেয়াদী প্রবণতাকে আরও ভালভাবে প্রতিফলিত করে।
যখন সংক্ষিপ্ত গড় লাইন নীচে থেকে দীর্ঘ গড় লাইন অতিক্রম করে, তখন সংক্ষিপ্ত মূল্য দীর্ঘ মেয়াদী প্রবণতা অতিক্রম করতে শুরু করে, আপনি কিনতে পারেন; যখন দীর্ঘ মেয়াদী গড় লাইন উপরে থেকে অতিক্রম করে, তখন সংক্ষিপ্ত মূল্য দীর্ঘ মেয়াদী প্রবণতা অতিক্রম করতে শুরু করে, আপনি বিক্রি করতে পারেন।
ভুল অপারেশন ফিল্টার করার জন্য, কৌশলটি ট্রেডিং সিগন্যাল লাইন হিসাবে আউট 3 প্রবর্তন করে। আউট 3 হ'ল স্বল্পমেয়াদী গড় এবং দামের মধ্যমগুলির পার্থক্যের স্মা সমতলীকরণের পরে ফলাফল। শুধুমাত্র আউট 3 যখন ডিআইএফ অতিক্রম করে তখনই ট্রেডিং সিগন্যাল তৈরি হয়।
বিশেষ করে, long ভেরিয়েবলটি buy সিগন্যাল হিসেবে ব্যবহার করা হয় যখন এটি out3 এর উপরে দিয়ে dif কে অতিক্রম করে; short ভেরিয়েবলটি out3 এর নিচে দিয়ে dif কে অতিক্রম করে যখন এটি sell সিগন্যাল হিসেবে ব্যবহার করা হয় তখন এটি negative। strategy.entry long সিগন্যালের ভিত্তিতে buy অর্ডার এবং strategy.close short সিগন্যালের ভিত্তিতে sell স্থির অর্ডার তৈরি করে।
এটি একটি খুব সহজ এবং স্বজ্ঞাত ট্রেন্ড ট্র্যাকিং কৌশল। এটি ট্রেন্ড টার্নপয়েন্টগুলিকে ধারণ করার জন্য দ্বি-সমতল চক্রগুলিকে সমতল ক্রস করার বিভিন্ন উপায় ব্যবহার করে, যা একক সমতল সিস্টেমের চেয়ে বেশি নির্ভরযোগ্য। এবং ট্রেডিং সিগন্যাল লাইনের ফিল্টারিং প্রবর্তন করে যা কিছু পরিমাণে অস্থির বাজারে তৈরি করা মিথ্যা সংকেতগুলি এড়াতে পারে।
মুভিং স্টপ লস এর তুলনায় এটি ট্রেন্ড ট্র্যাকিং এর ধারণায় কাজ করে, যা ট্রেন্ড লংয়ের সময় সর্বাধিক মুনাফা অর্জন করে।
এই কৌশলটি কম প্যারামিটারযুক্ত, সহজেই আয়ত্ত করা এবং সামঞ্জস্য করা যায়, যা অ্যালগরিদমিক ট্রেডিং শেখার জন্য নতুনদের জন্য উপযুক্ত।
এই কৌশলটির সবচেয়ে বড় ঝুঁকি হ'ল দ্বিপাক্ষিক গড়ের চক্রের প্যারামিটারগুলি ভুলভাবে ট্রেডিং সিগন্যালের কারণ হয়। যদি সংক্ষিপ্ত গড়ের চক্র len1 খুব দীর্ঘ হয় তবে এটি প্রবণতার সূচনা পর্বটি মিস করার সুযোগ দেয়; যদি এটি খুব সংক্ষিপ্ত হয় তবে এটি মিথ্যা সংকেতের সম্ভাবনা বাড়ায়। দীর্ঘ গড়ের গড় len2 খুব দীর্ঘ হলে অবস্থানটি স্থির করতে বিলম্বিত করে; যদি এটি খুব সংক্ষিপ্ত হয় তবে এটি বাজারের উত্তেজনা দ্বারা বিভ্রান্ত হতে পারে।
সেরা সংমিশ্রণটি len1 এবং len2 এর পরামিতিগুলি সামঞ্জস্য করে পাওয়া যায়, অথবা ডায়নামিক অ্যাডজাস্টমেন্ট চক্রের জন্য স্বনির্ধারিত সমান্তরাল প্রবর্তন করার চেষ্টা করা যেতে পারে। এছাড়াও ফিল্টার পরামিতিগুলি অনুকূল করে মিথ্যা সংকেত হ্রাস করা যেতে পারে।
ট্রেন্ড ট্র্যাকিং কৌশলগুলি একক ক্ষতির আকার নিয়ন্ত্রণের দিকেও মনোযোগ দেয়, যা স্টপ লস পয়েন্ট সেট করে বা পজিশন ম্যানেজমেন্ট চালু করে অপ্টিমাইজ করা যায়।
ডাবল-ইউনিভার্সাল ডিফারেন্স কৌশলটি একটি খুব সাধারণ প্রবণতা অনুসরণকারী কৌশল প্রতিনিধি। এটির সহজ ডাবল-ইউনিভার্সাল ক্রসিং সিস্টেমটি একটি স্থিতিশীল সংকেত উত্স সরবরাহ করে, যা ফিল্টারগুলির সাথে কার্যকরভাবে বাজার উত্তেজনা দ্বারা বিঘ্নিত হওয়া এড়াতে পারে। ডাবল-ইউনিভার্সাল চক্রের পরামিতিগুলি অনুকূল করে আরও ভাল কৌশল পারফরম্যান্স অর্জন করা যায়। এই কৌশলটি অ্যালগরিদমিক ট্রেডিংয়ের জন্য একটি প্রাথমিক কৌশল হিসাবে শেখার জন্য উপযুক্ত।
/*backtest start: 2022-10-10 00:00:00 end: 2023-10-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //by afrazium //@version=3 strategy(title="SMA Diff strat", shorttitle="SMAD STR", overlay=false, initial_capital=1, precision=8, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, calc_on_order_fills= false, calc_on_every_tick=false, pyramiding=0) len1 = input(50, minval=1, title="Length1"), len2 = input(100, minval=1, title="Length2"), smo = input(1, minval=1, title="Smoothing") src = input(ohlc4, title="Source") mid = src expr1 = sma(src, len1), expr2 = sma(src, len2) dif = (expr1 - expr2), out1 = (mid - expr1), out2 = (mid - expr2), out3 = sma(out1, smo) long = crossover(out3, dif) ? out3 : na, short = crossunder(out3, dif) ? out3 : na plot(out3, color=black, linewidth=2), hline(0) clr = out2 >= out1 ? lime : red, plot(dif, color=clr, linewidth=2) plot(long, title = 'Crossover', color = green, style = circles, linewidth=4), plot(short, title = 'Crossunder', color = red, style = circles, linewidth=4) strategy.entry("buy", strategy.long, when=crossover(out1, dif)) strategy.close("buy", when=crossunder(out1, dif)) //plot(out2, color=blue, linewidth=2) //A = plot(mid/10, color=red, linewidth=1, transp=100), B = plot(mid/20, color=red, linewidth=1, transp=100) //C = plot(-mid/10, color=green, linewidth=1, transp=100), D = plot(-mid/20, color=green, linewidth=1, transp=100) //fill(A, B, color=red), fill(C, D, color=green)