
গোল্ড ক্রস ট্রেডিং কৌশল একটি মধ্য-লম্বা লাইন ট্রেন্ড ট্র্যাকিং কৌশল। এটি শেয়ারের মূল্যের এসআর সূচক এবং এসআর সিগন্যাল সূচক গণনা করে, শেয়ারের মূল্যের প্রবণতা দিক সনাক্ত করে এবং নিউরাল নেটওয়ার্কের সাথে মিলিত হয়ে প্রবণতা চ্যানেল আঁকতে, প্রবণতা ট্র্যাকিং অপারেশন বাস্তবায়ন করে। এসআর সূচকটি এসআর সংকেত অতিক্রম করার সময় একটি কেনার সংকেত উত্পন্ন করে; এসআর সূচকটি এসআর সংকেত অতিক্রম করার সময় একটি বিক্রয় সংকেত উত্পন্ন করে। এই কৌশলটি স্ব-অনুকূলিত লিনিয়ারি রিটার্নাল ফিলারিং প্রযুক্তি ব্যবহার করে, চ্যানেলের কার্ভকে অনুকূলিত করে এবং ভুল সংকেতকে কার্যকরভাবে দমন করে।
এই কৌশলটির কেন্দ্রীয় সূচক হল SR সূচক এবং SR সংকেত সূচক। SR সূচক হল WMA গড় এবং SMA গড়ের একটি দ্বিতীয় সংশ্লেষ যা 8 পিরিয়ডের প্যারামিটার হিসাবে গণনা করা হয়। SR সংকেত সূচক হল SR সূচক যা 20 পিরিয়ডের প্যারামিটার হিসাবে গণনা করা হয়।
এই কৌশলটি স্নায়বিক নেটওয়ার্ক অ্যালগরিদম ব্যবহার করে স্বয়ংক্রিয়ভাবে শেয়ারের দামের উপরের এবং নীচের সীমা আঁকতে এবং একটি স্বনির্ধারিত চ্যানেল তৈরি করে। উপরের সীমাটি এসআর সূচকের ঐতিহাসিক সর্বাধিক মান হিসাবে ইনপুট করা হয়, নিম্ন সীমাটি ঐতিহাসিক সর্বনিম্ন মান হিসাবে ইনপুট করা হয়, এবং তারপরে চ্যানেলের উপরের এবং নীচের সীমা হিসাবে রিটার্ন কার্ভ গণনা করা হয়। চ্যানেলের কার্ভটি স্বনির্ধারিত লিনিয়ার রিটার্ন ফানেলের পরে আরও মসৃণ হয়।
যখন এসআর সূচকটি এসআর সিগন্যালটি অতিক্রম করে, তখন একটি ক্রয় সংকেত তৈরি হয়; যখন এসআর সূচকটি এসআর সিগন্যালটি অতিক্রম করে, তখন একটি বিক্রয় সংকেত তৈরি হয়। অতিরিক্ত খোলার সংকেত প্রেরণের পরে, স্টপ লস স্টপ পজিশনটি চ্যানেলের উপরের এবং নীচের সীমার সাথে শেয়ারের দামের সম্পর্ক নির্ধারণ করে।
এই কৌশলটি মূলত ট্রেন্ড ট্র্যাকিংয়ের উপর ভিত্তি করে তৈরি করা হয়েছে এবং এর প্রধান ঝুঁকিগুলি হলঃ
ঝুঁকি নিয়ন্ত্রণের জন্য, একক কৌশল অপারেশন এড়ানোর জন্য অন্যান্য কৌশলগুলির সমন্বয় করা সুপারিশ করা হয়; একই সাথে বিভিন্ন বাজারের পরিবেশের সাথে খাপ খাইয়ে নেওয়ার জন্য প্যারামিটার সেটিংগুলি অপ্টিমাইজ করা হয়।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
ক্রস সিগন্যালের স্থায়িত্ব বাড়ানোর জন্য এসআর সূচক এবং সংকেত সূচকের প্যারামিটারগুলি অপ্টিমাইজ করুন;
চ্যানেলের দৈর্ঘ্য চক্রের অনুকূলিতকরণ, চ্যানেলের কার্ভ সমতল করা;
অন্যান্য ফিল্টারিং সূচক যোগ করুন যাতে ভুল অপারেশন এড়ানো যায়, যেমন পরিমাণগত শক্তি সূচক, ওঠানামা হার সূচক ইত্যাদি;
ডিপ লার্নিং অ্যালগরিদমের সাহায্যে রিয়েল-টাইমে চ্যানেল কার্ভের অপ্টিমাইজেশান করা হয়েছে।
গোল্ড ক্রস ট্রেডিং কৌশল একটি পরিমাণগত কৌশল যা কার্যকরভাবে মাঝারি-লম্বা প্রবণতা অনুসরণ করে। এটি প্রবণতার দিকটি সঠিকভাবে নির্ধারণের সম্ভাবনা বেশি, অপারেশন ঝুঁকি কম। অ্যালগরিদম মডেলের অপ্টিমাইজেশনের জন্য প্রচুর জায়গা রয়েছে, এই কৌশলটি শেয়ারের প্রবণতার পরিবর্তনের জন্য একটি শক্তিশালী সরঞ্জাম হওয়ার সম্ভাবনা রয়েছে।
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //
strategy(title = " Strategy PyramiCover",
shorttitle = "S-PC",
overlay = true,
precision = 8,
calc_on_order_fills = true,
calc_on_every_tick = true,
backtest_fill_limits_assumption = 0,
default_qty_type = strategy.fixed,
default_qty_value = 2,
initial_capital = 10000,
pyramiding=50,
currency = currency.USD,
linktoseries = true)
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //
backTestSectionFrom = input(title = "═══════════════ From ═══════════════", defval = true, type = input.bool)
FromMonth = input(defval = 1, title = "Month", minval = 1)
FromDay = input(defval = 1, title = "Day", minval = 1)
FromYear = input(defval = 2014, title = "Year", minval = 2014)
backTestSectionTo = input(title = "════════════════ To ════════════════", defval = true, type = input.bool)
ToMonth = input(defval = 31, title = "Month", minval = 1)
ToDay = input(defval = 12, title = "Day", minval = 1)
ToYear = input(defval = 9999, title = "Year", minval = 2014)
backTestPeriod() => (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //
per = input(14,title="🔹 Length")
//
up = 0.0
nup= 0.0
lowl = 0.0
nin = 0.0
//
srl=wma(close,8)
srr = sma(close,8)
sr = 2*srl - srr
//
srsl=wma(close,20)
srsr= sma(close,20)
srsignal = 2*srsl - srsr
//
if sr>srsignal
up := highest(sr,round(150))
nup :=highest(srsignal,round(20))
else
up := highest(srsignal,round(150))
nup := highest(sr,round(20))
//
if sr<srsignal
lowl := lowest(sr,round(150))
nin := lowest(srsignal,round(20))
else
lowl := lowest(sr,round(150))
nin := lowest(srsignal,round(20))
//reg alexgrover
f_reg(src,length)=>
x = bar_index
y = src
x_ = sma(x, length)
y_ = sma(y, length)
mx = stdev(x, length)
my = stdev(y, length)
c = correlation(x, y, length)
slope = c * (my / mx)
inter = y_ - slope * x_
reg = x * slope + inter
reg
//
up_=f_reg(up,per)
lowl_=f_reg(lowl,per)
nup_=f_reg(nup,per)
nin_=f_reg(nin,per)
//
plot(sr, title='SR', color=color.green, linewidth=2, style=plot.style_line,transp=0)
plot(srsignal, title='SR-Signal', color=color.red, linewidth=2, style=plot.style_line,transp=0)
plot(up_, title='Upper limit', color=color.blue, linewidth=3, style=plot.style_line,transp=0)
plot(lowl_, title='Lower limit', color=color.blue, linewidth=3, style=plot.style_line,transp=0)
a=plot(nup_, title='Neuronal Upper', color=color.gray, linewidth=1, style=plot.style_line,transp=0)
b=plot(nin_, title='Neuronal Lower', color=color.gray, linewidth=1, style=plot.style_line,transp=0)
fill(a, b, color=color.gray)
plotshape(crossunder(sr,nup_)? sr+atr(20):na, title="Sell", text="🐻", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.black,transp=0)
plotshape(crossover(sr,nin_)? sr-atr(20):na, title="Buy", text="🐂", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.black,transp=0)
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //
if backTestPeriod()
strategy.entry("Buy", true, 1, when = crossover(sr,nin_))
strategy.entry("Short", false, 1, when = crossunder(sr,nup_))