এই কৌশলটি দীর্ঘ এবং স্বল্প সংকেতগুলির জন্য দ্বৈত স্টোকাস্টিক গতির সূচক (এসএমআই এবং আরএসআই) ব্যবহার করে, মার্টিনগেল এবং দেহ ফিল্টার সহ বাণিজ্য সংকেত নির্বাচন করার জন্য, মধ্যমেয়াদী প্রবণতা এবং মূল্যের ওঠানামা ক্যাপচার করার লক্ষ্যে।
কৌশলটি দুটি স্টোকাস্টিক সূচক এসএমআই এবং আরএসআই ব্যবহার করে দীর্ঘ এবং সংক্ষিপ্ত বিচার করে। এসএমআই বার রেঞ্জ এবং বন্ধ মূল্যের চলমান গড়ের ভিত্তিতে গণনা করা হয়, বিপরীত পয়েন্ট সনাক্ত করতে ভাল। আরএসআই ওভারকপ এবং ওভারসোল্ড স্থিতি নির্ধারণের জন্য ষাঁড় এবং ভাল শক্তির তুলনা করে। এসএমআই -50 এর নীচে এবং আরএসআই 20 এর নীচে থাকলে কৌশলটি দীর্ঘ হয়; এসএমআই 50 এর উপরে এবং আরএসআই 80 এর উপরে থাকলে সংক্ষিপ্ত হয়।
মিথ্যা ব্রেকআউট ফিল্টার করার জন্য, কৌশলটি 10 পিরিয়ডের শরীরের এসএমএর 1/3 টিরও ব্যবহার করে। যখন শরীরটি এসএমএর 1/3 এর মাধ্যমে ভেঙে যায়, তখন ব্রেকআউটটি বৈধ বলে মনে করা হয়।
উপরন্তু, কৌশলটি ঐচ্ছিক মার্টিঙ্গেল গ্রহণ করে, যা হারাতে বাণিজ্যের উপর প্রচুর পরিমাণে স্কেল আপ করে, পূর্ববর্তী ক্ষতি পুনরুদ্ধার করার চেষ্টা করে।
ব্যাকটেস্ট ফাংশনালিটি একটি তারিখ পরিসীমা ইনপুট করে কৌশলটি ব্যাকটেস্ট করে।
কৌশলটি দ্বৈত স্টোকাস্টিক সূচক এবং ফিল্টারকে একত্রিত করে, কার্যকরভাবে বিপরীত পয়েন্টগুলি সনাক্ত করতে, মধ্যমেয়াদী প্রবণতা ক্যাপচার করতে এবং মূল্যের ওঠানামা ট্র্যাক করতে সক্ষম।
এসএমআই এবং আরএসআই পরামিতিগুলি অপ্টিমাইজ করে হত্যার সম্ভাবনা হ্রাস করার জন্য ঝুঁকিগুলি হ্রাস করা যেতে পারে, স্কেল-আপ অনুপাত এবং সময়গুলি নিয়ন্ত্রণ করে কৌশলগতভাবে মার্টিনগেল ব্যবহার করে এবং বাজারের অবস্থার উপর ভিত্তি করে বিবেচনার ভিত্তিতে ফিল্টারগুলি সক্ষম করে।
কৌশলটি বিপরীতমুখী পয়েন্টগুলি ক্যাপচার করার জন্য দ্বৈত স্টোকাস্টিক সূচকগুলিকে ফিল্টার এবং মার্টিনগেলের সাথে ট্রেড সিগন্যাল নির্বাচন এবং তাড়া করার জন্য একত্রিত করে। এটি মধ্যমেয়াদী প্রবণতা কার্যকরভাবে সনাক্ত করতে পারে এবং উচ্চ জয়ের হার অনুসরণকারী বিনিয়োগকারীদের জন্য উপযুক্ত মূল্যের হ্রাসকে ট্র্যাক করতে পারে। সূচক পিছিয়ে যাওয়া এবং ব্যাপ্তির বাজার ঝুঁকিগুলিতে মনোযোগ দিন, প্যারামিটার অপ্টিমাইজেশন এবং স্টপ লস দ্বারা ঝুঁকি পরিচালনা করুন।
/*backtest start: 2022-09-30 00:00:00 end: 2023-10-06 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // strategy(title = "CS Basic Scripts - Stochastic Special (Strategy)", shorttitle = "Stochastic Special", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") usemar = input(false, defval = false, title = "Use Martingale") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") usesmi = input(true, defval = true, title = "Use SMI Strategy") usersi = input(true, defval = true, title = "Use RSI Strategy") usebod = input(true, defval = true, title = "Use Body-Filter") a = input(5, "SMI Percent K Length") b = input(3, "SMI Percent D Length") limit = input(50, defval = 50, minval = 1, maxval = 100, title = "SMI Limit") //Backtesting Input Range fromyear = input(2017, defval = 2017, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Fast RSI fastup = rma(max(change(close), 0), 7) fastdown = rma(-min(change(close), 0), 7) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //Stochastic Momentum Index ll = lowest (low, a) hh = highest (high, a) diff = hh - ll rdiff = close - (hh+ll)/2 avgrel = ema(ema(rdiff,b),b) avgdiff = ema(ema(diff,b),b) SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0 SMIsignal = ema(SMI,b) //Lines plot(SMI, color = blue, linewidth = 3, title = "Stochastic Momentum Index") plot(SMIsignal, color = red, linewidth = 3, title = "SMI Signal Line") plot(limit, color = black, title = "Over Bought") plot(-1 * limit, color = black, title = "Over Sold") plot(0, color = blue, title = "Zero Line") //Body Filter nbody = abs(close - open) abody = sma(nbody, 10) body = nbody > abody / 3 or usebod == false //Signals up1 = SMI < -1 * limit and close < open and body and usesmi dn1 = SMI > limit and close > open and body and usesmi up2 = fastrsi < 20 and close < open and body and usersi dn2 = fastrsi > 80 and close > open and body and usersi exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body //Trading profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1] mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1 lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1] if up1 or up2 if strategy.position_size < 0 strategy.close_all() strategy.entry("long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn1 or dn2 if strategy.position_size > 0 strategy.close_all() strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) or exit strategy.close_all()