ডাবল বিবি ইন্ডিকেটর এবং আরএসআই এর উপর ভিত্তি করে নিখুঁত বিজয় পরিমাণগত ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-01-29 10:33:43
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি বোলিংজার ব্যান্ডস সূচক এবং আপেক্ষিক শক্তি সূচক (আরএসআই) সূচকের উপর ভিত্তি করে একটি পরিমাণগত ট্রেডিং কৌশল। এই কৌশলটি পাইথন ভাষা ব্যবহার করে প্রায় 1 বছরের historicalতিহাসিক ডেটা ব্যাকটেস্ট এবং প্যারামিটারগুলি অনুকূল প্যারামিটার সংমিশ্রণ খুঁজে পেতে মেশিন লার্নিং পদ্ধতি ব্যবহার করে।

কৌশলগত নীতি

এই কৌশলটির ট্রেডিং সংকেতগুলি ডাবল বোলিংজার ব্যান্ড এবং আরএসআই সূচকগুলির সমন্বিত বিচার থেকে আসে। তাদের মধ্যে, বোলিংজার ব্যান্ড সূচকটি দামের মান বিচ্যুতির উপর ভিত্তি করে গণনা করা অস্থিরতা চ্যানেল। এটি যখন দামটি চ্যানেলের কাছে বা স্পর্শ করে তখন এটি ট্রেডিং সংকেত উত্পন্ন করে। আরএসআই সূচক দামের অতিরিক্ত ক্রয় এবং oversold পরিস্থিতি বিচার করে।

বিশেষত, যখন ক্লোজিং মূল্য 1.0 স্ট্যান্ডার্ড ডিভিয়েশনগুলির নিম্ন রেলের নীচে থাকে এবং RSI একই সাথে 42 এর বেশি হয় তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন ক্লোজিং মূল্য 1.0 স্ট্যান্ডার্ড ডিভিয়েশনগুলির উপরের রেলের উপরে থাকে এবং RSI একই সাথে 70 এর বেশি হয় তখন একটি বিক্রয় সংকেত উত্পন্ন হয়। এছাড়াও, এই কৌশলটি বিবি এবং আরএসআই পরামিতিগুলির দুটি সেটও সেট করে, যা যথাক্রমে প্রবেশ এবং স্টপ লস বন্ধের অবস্থানের জন্য ব্যবহৃত হয়। এই পরামিতিগুলি ব্যাপক ব্যাকটেস্টিং এবং মেশিন লার্নিংয়ের মাধ্যমে প্রাপ্ত সর্বোত্তম মান।

সুবিধা বিশ্লেষণ

এই কৌশলটির সবচেয়ে বড় সুবিধা হ'ল পরামিতিগুলির নির্ভুলতা। মেশিন লার্নিং পদ্ধতির মাধ্যমে, সর্বোত্তম শার্প অনুপাত অর্জনের জন্য প্রতিটি পরামিতি ব্যাপক ব্যাকটেস্টিংয়ের মাধ্যমে প্রাপ্ত হয়। এটি কৌশলটির রিটার্ন রেট এবং ঝুঁকি উভয়ই নিশ্চিত করে। এছাড়াও, ডাবল সূচকগুলির সংমিশ্রণটি সংকেতগুলির নির্ভুলতা এবং জয় হারকেও উন্নত করে।

ঝুঁকি বিশ্লেষণ

এই কৌশলটির মূল ঝুঁকি স্টপ লস পয়েন্টগুলি সেট করা থেকে আসে। যদি স্টপ লস পয়েন্টটি খুব বড় সেট করা হয় তবে এটি কার্যকরভাবে ক্ষতিগুলি নিয়ন্ত্রণ করবে না। এছাড়াও, যদি স্টপ লস পয়েন্টটি কমিশন এবং স্লিপজের মতো অন্যান্য ট্রেডিং ব্যয়গুলি সঠিকভাবে গণনা না করে তবে এটি ঝুঁকিগুলিও বাড়িয়ে তুলবে। ঝুঁকি হ্রাস করার জন্য, যুক্তিসঙ্গত স্টপ লস অবস্থান গণনা করার সময়, ট্রেডিং ফ্রিকোয়েন্সি হ্রাস করার জন্য স্টপ লস আকারের পরামিতিটি সামঞ্জস্য করার পরামর্শ দেওয়া হয়।

অপ্টিমাইজেশান নির্দেশাবলী

এই কৌশলটির আরও অপ্টিমাইজেশনের জন্য এখনও জায়গা রয়েছে। উদাহরণস্বরূপ, আপনি বোলিংজার ব্যান্ডগুলির দৈর্ঘ্যের পরামিতিগুলি পরিবর্তন করার চেষ্টা করতে পারেন, বা আরএসআইয়ের ওভারক্রয় এবং ওভারসোল্ড থ্রেশহোল্ডগুলি সামঞ্জস্য করতে পারেন। আপনি মাল্টি-ইনডিকেটর সংমিশ্রণ তৈরি করতে অন্যান্য সূচকগুলি প্রবর্তনের চেষ্টা করতে পারেন। এটি কৌশলটির লাভের স্থান এবং স্থিতিশীলতা বাড়িয়ে তুলতে পারে।

সংক্ষিপ্তসার

এই কৌশলটি ডাবল বিবি সূচক এবং আরএসআই সূচকগুলির সংমিশ্রণ করে এবং উচ্চ রিটার্ন এবং নিয়ন্ত্রণযোগ্য ঝুঁকি স্তর অর্জনের জন্য মেশিন লার্নিং পদ্ধতির মাধ্যমে সর্বোত্তম পরামিতি অর্জন করে। এটিতে সংমিশ্রিত সূচক বিচার এবং পরামিতি অপ্টিমাইজেশনের সুবিধা রয়েছে। ক্রমাগত উন্নতির সাথে, এই কৌশলটির একটি দুর্দান্ত পরিমাণগত ট্রেডিং কৌশল হওয়ার সম্ভাবনা রয়েছে।


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bunghole 2020
strategy(overlay=true, shorttitle="Flawless Victory Strategy" )

// Stoploss and Profits Inputs
v1 = input(true, title="Version 1 - Doesn't Use SL/TP")
v2 = input(false, title="Version 2 - Uses SL/TP")
stoploss_input = input(6.604, title='Stop Loss %', type=input.float, minval=0.01)/100
takeprofit_input = input(2.328, title='Take Profit %', type=input.float, minval=0.01)/100
stoploss_level = strategy.position_avg_price * (1 - stoploss_input)
takeprofit_level = strategy.position_avg_price * (1 + takeprofit_input)

//SL & TP Chart Plots
plot(v2 and stoploss_input and stoploss_level ? stoploss_level: na, color=color.red, style=plot.style_linebr, linewidth=2, title="Stoploss")
plot(v2 and takeprofit_input ? takeprofit_level: na, color=color.green, style=plot.style_linebr, linewidth=2, title="Profit")

// Bollinger Bands 1
length = 20
src1 = close
mult = 1.0
basis = sma(src1, length)
dev = mult * stdev(src1, length)
upper = basis + dev
lower = basis - dev

// Bollinger Bands 2
length2 = 17
src2 = close
mult2 = 1.0
basis2 = sma(src1, length2)
dev2 = mult2 * stdev(src2, length2)
upper2 = basis2 + dev2
lower2 = basis2 - dev2

// RSI
len = 14
src = close
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)

// Strategy Parameters
RSILL= 42
RSIUL= 70
RSILL2= 42
RSIUL2= 76

rsiBuySignal = rsi > RSILL
rsiSellSignal = rsi > RSIUL
rsiBuySignal2 = rsi > RSILL2
rsiSellSignal2 = rsi > RSIUL2

BBBuySignal = src < lower
BBSellSignal = src > upper
BBBuySignal2 = src2 < lower2
BBSellSignal2 = src2 > upper2

// Strategy Long Signals
Buy = rsiBuySignal and BBBuySignal
Sell = rsiSellSignal and BBSellSignal
Buy2 = rsiBuySignal2 and BBBuySignal2
Sell2 = rsiSellSignal2 and BBSellSignal2

if v1 == true
    strategy.entry("Long", strategy.long, when = Buy, alert_message = "v1 - Buy Signal!")
    strategy.close("Long", when = Sell, alert_message = "v1 - Sell Signal!")

if v2 == true
    strategy.entry("Long", strategy.long, when = Buy2, alert_message = "v2 - Buy Signal!")
    strategy.close("Long", when = Sell2, alert_message = "v2 - Sell Signal!")
    strategy.exit("Stoploss/TP", "Long", stop = stoploss_level, limit = takeprofit_level)


আরো