
এই কৌশলটি দ্রুত বাড়তে থাকা শেয়ারগুলি সনাক্ত করে এবং নতুন উচ্চতা অতিক্রম করার সময় আরও বেশি পজিশন তৈরি করে এবং স্থির শতাংশ স্টপ ব্যবহার করে মুনাফা অর্জন করে। এই কৌশলটি প্রবণতা অনুসরণকারী কৌশলগুলির মধ্যে রয়েছে।
এই কৌশলটি মূলত দুটি সূচকের উপর ভিত্তি করে তৈরি করা হয়েছেঃ
দ্রুত আরএসআইঃ সাম্প্রতিক 3 টি কে লাইনের উত্থান-পতনের পরিবর্তনগুলি গণনা করে দামের গতিশীলতা নির্ধারণ করুন। যখন দ্রুত আরএসআই 10 এর নীচে থাকে, তখন শেয়ারটি একটি ওভার-বাউস অবস্থায় রয়েছে বলে মনে করা হয়।
প্রাইম ফিল্টারঃ সর্বশেষ ২০টি কে লাইনের এন্ট্রিগুলির গড় আকার গণনা করা হয়, যখন প্রাইম এন্ট্রিগুলি গড় এন্ট্রিগুলির চেয়ে ২.৫ গুণ বেশি হয়, তখন কার্যকর বিঘ্ন হিসাবে বিবেচিত হয়।
যখন দ্রুত আরএসআই 10 এর নিচে থাকে এবং একটি সত্তা ফিল্টার কার্যকর থাকে, তখন একটি অতিরিক্ত খোলার কাজ করা হয়। তারপরে 20% এর একটি নির্দিষ্ট স্টপ পয়েন্ট সেট করুন, যখন দামটি খোলার দামের চেয়ে বেশি হয়*(১+ স্টপ-অফ অনুপাত) হলে, প্লেইন স্টপ-অফ।
এই কৌশলটির সুবিধা হ’ল এটি প্রবণতা শুরুর পর্যায়ে বিরতির সুযোগগুলি ক্যাপচার করতে পারে, দ্রুত আরএসআই দ্বারা নীচের অঞ্চলটি বিচার করে, ভৌত ফিল্টারগুলি মিথ্যা বিরতি এড়াতে। প্রতিটি মুনাফা লক করার জন্য একটি স্থির স্টপস্টপ পদ্ধতি গ্রহণ করে, যা বজায় রাখার প্রবণতা ধরে রাখতে পারে।
এই কৌশলটির সুবিধাগুলো হলঃ
দ্রুত আরএসআই ব্যবহার করে, নিচের ওভারবোল্ডিং এলাকা নির্ধারণ করা যায়, যা প্রবেশের সঠিকতা বাড়িয়ে দেয়।
প্রধান পরিস্রাবণ ব্যবস্থা ভোল্টেজ দ্বারা সৃষ্ট মিথ্যা বিঘ্ন এড়াতে পারে।
এই পদ্ধতির মাধ্যমে, আপনি ট্রেন্ডের উপর নির্ভর করে আপনার মুনাফা বজায় রাখতে পারেন।
এই কৌশলটি সহজ, সুস্পষ্ট এবং সহজেই বোঝা যায়।
কোডের কাঠামোটি মার্জিত, এক্সটেনসিবল এবং কৌশলগত অপ্টিমাইজেশনের জন্য সহজ।
রিটার্নিং পিরিয়ডের মধ্যে, কৌশলটি স্থিতিশীল ইতিবাচক লাভ অর্জন করেছে, যার ফলে সাফল্যের হার বেশি।
এই কৌশলটির কিছু ঝুঁকি রয়েছে যা সম্পর্কে সতর্ক থাকা দরকারঃ
এই কৌশলটির কোন স্টপ লস মেকানিজম নেই, যার ফলে একক ক্ষতির প্রসার ঘটার ঝুঁকি রয়েছে।
ফিক্সড স্টপ পয়েন্টের ভুল সেটআপের ফলে স্টপ পয়েন্টটি খুব তাড়াতাড়ি বা খুব গভীর হতে পারে।
এই পরিস্থিতিতে, একটি ছোট এবং ধারাবাহিক ক্ষতির সম্ভাবনা রয়েছে।
লভ্যাংশের খরচ ছাড়াই, রিয়েল-টাইম মুনাফা হ্রাস পাবে।
কৌশলগত প্যারামিটার অপ্টিমাইজেশনের অভাব, বিভিন্ন জাতের প্যারামিটারগুলি সামঞ্জস্য করতে হবে।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যায়ঃ
একক ক্ষতি নিয়ন্ত্রণের জন্য ক্ষতি প্রতিরোধ ব্যবস্থা যুক্ত করা হয়েছে।
স্টপপয়েন্ট বিটকে অপ্টিমাইজ করা, যাতে এটি গতিশীলভাবে ট্রেন্ড অনুসরণ করতে পারে।
এদিকে, এডমিশন ক্যাটাগরিতে প্রবেশের জন্য ভর্তি পরীক্ষার সঠিকতা বাড়ানোর লক্ষ্যে এডমিশন ক্যাটাগরির উন্নতি করা হয়েছে।
পজিশন ম্যানেজমেন্ট মডিউল যোগ করুন, পজিশন দখল অপ্টিমাইজ করুন।
বিভিন্ন জাতের প্যারামিটারগুলিকে স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করার জন্য একটি জাতের প্যারামিটার অপ্টিমাইজেশন মডিউল যুক্ত করুন।
মার্কেটিংয়ের ক্ষেত্রে অস্থিরতার কারণে ক্ষতির হাত থেকে রক্ষা করার জন্য ফিল্টারিংয়ের শর্ত বাড়ানো।
একটি গড় খরচ ব্যবস্থাপনা মডিউল যোগ করার কথা ভাবুন।
এই কৌশলটি সামগ্রিকভাবে একটি খুব সংক্ষিপ্ত এবং মার্জিত প্রবণতা অনুসরণ কৌশল। এটি দ্রুত আরএসআই বিচার ওভারডাউন ব্যবহার করে, সত্তা ফিল্টার কার্যকর বিরতি নির্ধারণ করে, স্থির স্টপ পয়েন্ট অবস্থান গ্রহণ করে স্থিতিশীল উপার্জন। যদিও কিছু অপ্টিমাইজযোগ্য স্থান রয়েছে, তবে কৌশলটি দ্রুত প্রতিক্রিয়াশীল এবং পরিস্থিতিতে দ্রুত পরিবর্তনের দৃশ্যের জন্য উপযুক্ত। এটি একটি খুব ব্যবহারিক ট্রেডিং কৌশল। ক্রমাগত অপ্টিমাইজেশনের মাধ্যমে, বিশ্বাস করা হয় যে এটি একটি শক্তিশালী এবং নির্ভরযোগ্য দীর্ঘ লাইন পজিশন কৌশল হতে পারে।
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// this is based on https://www.tradingview.com/v/PbQW4mRn/
strategy(title = "ONLY LONG V4 v1", overlay = true, initial_capital = 1000, pyramiding = 1000,
calc_on_order_fills = false, calc_on_every_tick = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 50, commission_value = 0.075)
//study(title = "ONLY LONG V4 v1", overlay = true)
//Fast RSI
src = close
fastup = rma(max(change(src), 0), 3)
fastdown = rma(-min(change(src), 0), 3)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
//Body Filter
body = abs(close - open)
abody = sma(body, 20)
mac = sma(close, 20)
len = abs(close - mac)
sma = sma(len, 100)
max = max(open, close)
min = min(open, close)
up = close < open and len > sma * 2 and min < min[1] and fastrsi < 10 and body > abody * 2.5
// Strategy
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
var bool longCondition = na
longCondition := up == 1 ? 1 : na
// Get the price of the last opened long
var float last_open_longCondition = na
last_open_longCondition := longCondition ? close : nz(last_open_longCondition[1])
// Get the bar time of the last opened long
var int last_longCondition = 0
last_longCondition := longCondition ? time : nz(last_longCondition[1])
// Take profit
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
tp = input(20, "TAKE PROFIT %", type = input.float, minval = 0, step = 0.5)
long_tp = crossover(high, (1+(tp/100))*last_open_longCondition) and not longCondition
// Get the time of the last tp close
var int last_long_tp = na
last_long_tp := long_tp ? time : nz(last_long_tp[1])
Final_Long_tp = long_tp and last_longCondition > nz(last_long_tp[1])
// Count your long conditions
var int sectionLongs = 0
sectionLongs := nz(sectionLongs[1])
var int sectionTPs = 0
sectionTPs := nz(sectionTPs[1])
// Longs Counter
if longCondition
sectionLongs := sectionLongs + 1
sectionTPs := 0
if Final_Long_tp
sectionLongs := 0
sectionTPs := sectionTPs + 1
// Signals
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
// Long
// label.new(
// x = longCondition[1] ? time : na,
// y = na,
// text = 'LONG'+tostring(sectionLongs),
// color=color.lime,
// textcolor=color.black,
// style = label.style_labelup,
// xloc = xloc.bar_time,
// yloc = yloc.belowbar,
// size = size.tiny)
// Tp
// label.new(
// x = Final_Long_tp ? time : na,
// y = na,
// text = 'PROFIT '+tostring(tp)+'%',
// color=color.orange,
// textcolor=color.black,
// style = label.style_labeldown,
// xloc = xloc.bar_time,
// yloc = yloc.abovebar,
// size = size.tiny)
ltp = iff(Final_Long_tp, (last_open_longCondition*(1+(tp/100))), na), plot(ltp, style=plot.style_cross, linewidth=3, color = color.white, editable = false)
// Backtesting
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
testStartYear = input(2019, "BACKTEST START YEAR", minval = 1, maxval = 2222)
testStartMonth = input(01, "BACKTEST START MONTH", minval = 1, maxval = 12)
testStartDay = input(01, "BACKTEST START DAY", minval = 1, maxval = 31)
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
strategy.entry("long", strategy.long, when = longCondition and (time >= testPeriodStart))
strategy.exit("TP", "long", limit = (last_open_longCondition*(1+(tp/100))))
// Alerts
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
alertcondition(longCondition[1], title="Long Alert", message = "LONG")
alertcondition(Final_Long_tp, title="Long TP Alert", message = "LONG TP")