এই কৌশলটি একটি টান-ব্যাক সিস্টেম যা উচ্চতর অস্থির সিকিউরিটির জন্য ডিজাইন করা হয়েছে, তাই বিটকয়েন একটি খুব আদর্শ লেনদেনের জাত। এই কৌশলটি দৈনিক লাইন চার্ট বা নিম্নতর সময় ফ্রেমে ব্যবহার করা যেতে পারে (আমি 3 ঘন্টা সময় ফ্রেমে ভাল ফলাফল পেয়েছি, তবে 1 ঘন্টার নীচে পরীক্ষা করা হয়নি) ।
এই কৌশলটি পূর্ববর্তী দুটি কে লাইনের ক্লোজিং প্রাইসের পরিবর্তনের সাথে তুলনা করে অস্থিরতা গণনা করে এবং এই মূল্য পরিবর্তনের সাথে একটি চলমান গড় উত্পন্ন করে। চলমান গড়ের উপর একটি স্ট্যান্ডার্ড ডিফারেনশিয়াল ব্যান্ডটি আবৃত করে, অভ্যন্তরীণ 1 স্ট্যান্ডার্ড ডিফারেনশিয়াল এবং বাহ্যিক 2 স্ট্যান্ডার্ড ডিফারেনশিয়াল। যদি দামটি পূর্ব নির্ধারিত চলমান গড় ফিল্টারের চেয়ে বেশি হয় তবে আমরা একটি উর্ধ্বমুখী প্রবণতাতে আছি, সুতরাং যখন একটি উর্ধ্বমুখী প্রবণতা থাকে, তখন যদি কোনও প্রত্যাহারের ফলে অভ্যন্তরীণ স্ট্যান্ডার্ড ডিফারেনশিয়াল ব্যান্ডটি ছিটকে যায়, তবে একটি কেনার সংকেত দেওয়া হয়। তবে যদি দামটি অব্যাহত থাকে এবং বাহ্যিক স্ট্যান্ডার্ড ডিফারেনশিয়াল ব্যান্ডটি ভেঙে যায় তবে কোনও কেনার সংকেত দেওয়া হবে না, কারণ এটি নির্দেশ করে যে এই ওভারপ্রাইজটি খুব বেশি ছিটকে গেছে। যখন অভ্যন্তরীণ ব্যান্ডটি ছিটকে যায়, সূচ
ব্যবহারকারীরা যে তারিখের পরিসীমাটি পরীক্ষা করতে চান তা পরিবর্তন করতে পারেন, অস্থিরতার চলমান গড় সময়কাল এবং অভ্যন্তরীণ এবং বহিরাগত স্ট্যান্ডার্ড ব্যাপ্তি স্ট্যান্ডার্ড ব্যাপ্তি গণনা করতে পারেন। বিটকয়েনের জন্য, আমি অভ্যন্তরীণ এবং বহিরাগত স্ট্যান্ডার্ড ব্যাপ্তি স্ট্যান্ডার্ড সেটিং রেখেছি, তবে 3 চক্রের অস্থিরতা ট্র্যাকিং 1 দিনের চার্ট ট্রেডিংয়ের জন্য ভাল, এবং 5 চক্রের অস্থিরতা ট্র্যাকিং 3 ঘন্টা চার্টের জন্য ভাল। যেহেতু এটি একটি কেনা এবং ধরে রাখার কৌশল নয়, তাই ট্রেডিংয়ের সময় আপনি সম্ভবত সর্বাধিক প্রবাহিত মুদ্রার সাথে লেগে থাকতে চাইবেন যাতে কোনও এক্সচেঞ্জে দ্রুত প্রবেশ করা যায়। যদি কম অস্থির বাজারে এই কৌশলটি পরীক্ষা করতে হয় তবে অভ্যন্তরীণ ব্যাপ্তি স্ট্যান্ডার্ড ব্যাপ্তি প্রায় 0.75 পরিবর্তন করা যায় যা বিভিন্ন পণ্য বাজারে প্রযোজ্য হতে পারে এবং শেয়ারের ক্ষতি বন্ধের জন্যও প্রযোজ্য হতে পারে।
ঝুঁকি মোকাবেলার উপায়ঃ
সঠিক ওভারল্যাপ নির্বাচন করুন এবং একক পজিশন নিয়ন্ত্রণ করুন।
প্যারামিটার অপ্টিমাইজ করুন, অবৈধ লেনদেন হ্রাস করুন।
স্টপ লস এবং কঠোর তহবিল ব্যবস্থাপনা।
ট্রেডিং কার্যকারিতার উপর গুরুত্ব দিন, ভাল তরলতা বেছে নিন।
বিভিন্ন মানের বৈশিষ্ট্য অনুসারে প্যারামিটারগুলি সামঞ্জস্য করুন।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
চলমান গড়ের চক্রের অপ্টিমাইজেশান, যাতে বিভিন্ন মানদণ্ডের উর্ধ্বগামীতা আরও ভালভাবে ট্র্যাক করা যায়।
একটি নির্দিষ্ট মানদণ্ডের কাছাকাছি পরিসীমা তৈরি করার জন্য রেট ব্যান্ডের প্যারামিটারগুলিকে সামঞ্জস্য করুন।
ট্রেডিং সিগন্যালকে আরও বৈধতা দেওয়ার জন্য অন্যান্য ফিল্টারিং শর্ত যুক্ত করা হয়েছে, যেমন লেনদেনের পরিমাণ বাড়ানো।
মেশিন লার্নিং প্রযুক্তি ব্যবহার করে গতিশীল অপ্টিমাইজেশান প্যারামিটারগুলিকে আরও অভিযোজিত করার জন্য কৌশলগুলি তৈরি করুন।
আরও বেশি সংখ্যক ট্রেডিং সুযোগের জন্য উচ্চতর সময়সীমার উপর পরীক্ষা করা হচ্ছে।
স্টপ লস মোবাইল ট্র্যাকিং যুক্ত করা হয়েছে যাতে আপনার অ্যাকাউন্টে আপনার লাভ আরও বেশি সংরক্ষণ করা যায়।
অন্যান্য সূচক বা মডেলের সাথে মিলিত করে একটি পরিমাণগত সমন্বয় কৌশল তৈরি করুন।
এই কৌশলটি সামগ্রিকভাবে সহজ এবং স্বজ্ঞাত, বাজারের বিপর্যয় চিহ্নিত করার জন্য অস্থিরতার সূচকগুলি ব্যবহার করে। কৌশলটি অপ্টিমাইজ করার জন্য প্রচুর জায়গা রয়েছে, প্যারামিটারগুলি সামঞ্জস্য করে এবং অন্যান্য প্রযুক্তিগত সূচকগুলির সাথে মিলিত হয়ে কৌশলটির স্থিতিশীলতা এবং লাভজনকতা বাড়িয়ে তুলতে পারে। তবে ব্যবসায়ীদের অতিরিক্ত অপ্টিমাইজেশন এবং কার্ভ ফিটিংয়ের সমস্যাগুলি এড়াতে সতর্কতা অবলম্বন করা দরকার। এই কৌশলটি স্বল্পমেয়াদী ব্যবসায়ের জন্য আরও উপযুক্ত, ঝুঁকি নিয়ন্ত্রণের জন্য কঠোর তহবিল পরিচালনার প্রয়োজন। যদি সঠিকভাবে পরিচালনা করা হয় তবে এই কৌশলটি উচ্চতর অস্থিরতার সাথে ডিজিটাল মুদ্রা ব্যবসায়ের জন্য লাভজনক হতে পারে।
/*backtest
start: 2023-09-11 00:00:00
end: 2023-10-11 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gary_trades
//This script is designed to be used on volatile securities/tickers so is best suited for day charts on Crypto (particularly good for BTC).
//It takes both long and short trades and the main indicator settings can be changed by the use so they can test for ideal settings for ticker of interest.
//@version=4
strategy("BTC Volatility Band Strategy", shorttitle="Vol Band Strategy", overlay=false, margin_long=100, margin_short=100)
//VOLATILTY
CandleChange = ((close - close[1])/close)*100 //OR CandleChange = ((close[2] - close[1])/close)*100
plot(CandleChange, color=color.red, linewidth = 1)
//VOLATILITY BANDS
MAlen = input(7, minval=3, maxval=30, title=" MA Length")
MAout = sma(CandleChange, MAlen)
plot(MAout, color=color.black, display=display.none)
InnerBand = input(1.0, minval=0.5, maxval=5, title="Inner Band")
OuterBand = input(2.00, minval=0.5, maxval=10, title="Outer Band")
devInner = InnerBand * stdev(CandleChange, MAlen)
devOuter = OuterBand * stdev(CandleChange, MAlen)
upper1 = MAout + devInner
lower1 = MAout - devInner
b1 = plot(upper1, "Upper Inner", color=color.gray)
b2 = plot(lower1, "Lower Inner", color=color.gray)
upper2 = MAout + devOuter
lower2 = MAout - devOuter
b3 = plot(upper2, "Upper Outer", color=color.gray)
b4 = plot(lower2, "Lower Outer", color=color.gray)
fill(b1, b3, color.rgb(250,145,175,70), title="Background")
fill(b2, b4, color.rgb(250,145,175,70), title="Background")
band1 = hline(25, "Upper Band", color=color.gray, linestyle=hline.style_dotted, linewidth=2)
band0 = hline(-25, "Lower Band", color=color.gray, linestyle=hline.style_dotted, linewidth=2)
//LONG FILTER
VolFilterL = CandleChange <= lower1 and CandleChange > lower2
SMAFilterL = close[1] > sma(close[1], 50)
PriceFilterL = close > lowest(close,7)
LongFilter = VolFilterL and SMAFilterL and PriceFilterL
bgcolor(LongFilter ? color.new(color.green, 80) : na)
//SHORT FILTER
VolFilterS = CandleChange >= upper1 and CandleChange < upper2
SMAFilterS = close[1] < sma(close[1], 50)
PriceFilterS = close < highest(close,7)
ShortFilter = VolFilterS and SMAFilterS and PriceFilterS
bgcolor(ShortFilter ? color.new(color.red, 80) : na)
//SETTING BACK TEST INPUTS
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2100, title = "To Year", minval = 1970)
startDate = timestamp("America/New_York", fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp("America/New_York", toYear, toMonth, toDay, 00, 00)
time_condition = time >= startDate and time <= finishDate
//ORDER DETAILS
Risk = (high[7] - low[7])/ 7
Profit = Risk*1.15
Loss = Risk*0.65
AlertMSG = "New stategy position" + tostring(strategy.position_size)
if (time_condition)
strategy.entry("Long", strategy.long, when = LongFilter, alert_message=AlertMSG)
if (LongFilter)
LongStop = strategy.position_avg_price - Loss
LongProfit = strategy.position_avg_price + Profit
strategy.exit("TP/SL", "Long", stop=LongStop, limit=LongProfit)
if (time_condition)
strategy.entry("Short", strategy.short, when = ShortFilter, alert_message=AlertMSG)
if (ShortFilter)
ShortStop = strategy.position_avg_price + Loss
ShortProfit = strategy.position_avg_price - Profit
strategy.exit("TP/SL", "Short", stop=ShortStop, limit=ShortProfit)