এই কৌশলটি মূল্যের উদ্বায়ীতার মান বিচ্যুতি গণনা করে মূল্য বিপরীতমুখী সুযোগগুলি সনাক্ত করে। যখন একটি অস্বাভাবিকভাবে বড় দামের ওঠানামা হয়, তখন এটি মূল্য বিপরীতমুখী হওয়ার সুযোগ হিসাবে বিবেচিত হয় এবং বিপরীত ট্রেডিং অবস্থান নেওয়া হয়।
কৌশলটি দুটি প্রধান সূচক ব্যবহার করেঃ
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
যেখানে wvf হল দামের অস্থিরতা, sDev হল স্ট্যান্ডার্ড ডিভিয়েশন, মিডলাইন হল গড় রেখা, লোয়ারব্যান্ড এবং আপারব্যান্ড হল নিম্ন ও উপরের সীমা রেখা। যখন দাম উপরের সীমা রেখা অতিক্রম করে, তখন এটিকে অস্বাভাবিক অস্থিরতা বলে মনে করা হয়।
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))
যখন আরএসআই একটি থ্রেশহোল্ডের নিচে থাকে, তখন এটি ওভারসোল্ড স্ট্যাটাস এবং সম্ভাব্য রিবাউন্ডের ইঙ্গিত দেয়। যখন আরএসআই একটি থ্রেশহোল্ড অতিক্রম করে, তখন এটি ওভারক্রয়েড স্ট্যাটাস এবং সম্ভাব্য পলব্যাকের ইঙ্গিত দেয়।
এন্ট্রি এবং আউটপুট লজিক হলঃ
লং এন্ট্রিঃ যখন দাম উপরের সীমা অতিক্রম করে বা অস্থিরতা প্রান্তিক সীমা অতিক্রম করে এবং আরএসআই একটি মানের নীচে থাকে, তখন লং যান।
শর্ট এন্ট্রিঃ যখন দাম উপরের সীমা অতিক্রম করে বা অস্থিরতা প্রান্তিক সীমা অতিক্রম করে এবং আরএসআই একটি মান অতিক্রম করে, তখন শর্ট যান।
প্রস্থানঃ যখন ক্যান্ডেলস্টাইলের শরীরের দিকটি অবস্থানের দিকের বিপরীত হয়, তখন অবস্থান বন্ধ করুন।
কৌশলটি মূল্যের উদ্বায়ীতার মান বিচ্যুতি গণনা করে, বিপরীতমুখী সুযোগগুলি ক্যাপচার করার জন্য অস্বাভাবিক মূল্য উদ্বায়ীতা সনাক্ত করে। প্রবেশের নির্ভুলতা উন্নত করার জন্য ওভারবয়ড / ওভারসোল্ড স্থিতি বিচার করতে আরএসআই একত্রিত করা হয়। সহজ মোমবাতি দেহের দিক স্টপ লস ব্যবহার করা হয়। সামগ্রিকভাবে, কৌশলটি অস্বাভাবিক উদ্বায়ীতা সনাক্ত করতে পরিসংখ্যানগত তথ্য ব্যবহারে কার্যকর, তবে স্থিতিশীলতা উন্নত করতে আরও পরামিতি অপ্টিমাইজেশনের প্রয়োজন। যদি স্টপ লস প্রক্রিয়াটি ক্ষতি হ্রাস করার জন্য যুক্তিসঙ্গতভাবে অনুকূলিত করা যায় তবে কৌশলটি আরও ভাল সম্পাদন করবে।
/*backtest start: 2022-10-04 00:00:00 end: 2023-10-10 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's VixFix + RSI Strategy v1.0", shorttitle = "VixFix + RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") leverage = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage") limit = input(40, defval = 40, minval = 2, maxval = 50, title = "RSI Limit") pd = input(22, title="LookBack Period Standard Deviation High") bbl = input(20, title="Bolinger Band Length") mult = input(2.0, minval = 1, maxval = 5, title = "Bollinger Band Standard Devaition Up") lb = input(50, title="Look Back Period Percentile High") ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%") pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%") hp = input(false, title="Show High Range - Based on Percentile and LookBack Period?") sd = input(false, title="Show Standard Deviation Line?") fromyear = input(1900, defval = 1900, 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") //Vix Fix wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100 sDev = mult * stdev(wvf, bbl) midLine = sma(wvf, bbl) lowerBand = midLine - sDev upperBand = midLine + sDev rangeHigh = (highest(wvf, lb)) * ph rangeLow = (lowest(wvf, lb)) * pl col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray //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)) //Body body = abs(close - open) abody = sma(body, 10) //Signals up = (wvf >= upperBand or wvf >= rangeHigh) and fastrsi < limit and close < open dn = (wvf >= upperBand or wvf >= rangeHigh) and fastrsi > (100 - limit) and close > open exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 3 //Trading lot = strategy.position_size == 0 ? strategy.equity / close * leverage : lot[1] if up if strategy.position_size < 0 strategy.close_all() strategy.entry("Bottom", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn if strategy.position_size > 0 strategy.close_all() strategy.entry("Top", 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()