
এই কৌশলটি তুলনামূলকভাবে দুর্বল সূচক (আরএসআই) সূচকের উপর ভিত্তি করে ওভার-বিক্রয় ও ওভার-বিক্রয় সিদ্ধান্ত নেওয়ার জন্য, আরএসআই ওভার-বিক্রয় ওভার-বিক্রয় অঞ্চলে পৌঁছানোর সময় একটি বিপরীত অবস্থান স্থাপন করে, নিম্ন ওভার-বিক্রয় অর্জনের লক্ষ্যে। কৌশলটি সহজ এবং কার্যকর, বাজারের স্বল্পমেয়াদী ওভার-বিক্রয় ওভার-বিক্রয় ঘটনাটি ক্যাপচার করে মুনাফা অর্জনের জন্য।
এই কৌশলটি কেবলমাত্র RSI সূচককে পজিশনিং সিগন্যাল হিসাবে ব্যবহার করে। RSI এর নীচে সেট করা নিম্ন (ডিফল্ট 20) অতিক্রম করার সময় অতিরিক্ত করুন, আর RSI এর উপরে সেট করা উচ্চ (ডিফল্ট 80) অতিক্রম করার সময় শূন্য করুন। প্রতি লেনদেনের জন্য ফিক্সড তহবিল (ডিফল্ট $ 100), যে কোনও পরিস্থিতিতে কেবলমাত্র 1% লাভের পরে স্টপ করুন। যদি লোকসান 3% হয় তবে বন্ধ করুন। লেনদেনের ফ্রিকোয়েন্সি নিয়ন্ত্রণের জন্য কৌশলটি 24 কে লাইনটি স্থগিত করার জন্যও সেট করা হয়েছে।
এই কৌশলটির মূল যুক্তি হলঃ
এই কৌশলটি খুব সহজ, যান্ত্রিক, এবং প্যারামিটার অপ্টিমাইজেশনের জন্য খুব কম জায়গা রয়েছে। এটি RSI সূচকের গাণিতিক বৈশিষ্ট্যগুলিকে ব্যবহার করে এবং ওভারসোল্ড অঞ্চলে ওভারসোল্ড পজিশনের বিপরীতে বিপরীত লাভ অর্জন করে।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল এর সরলতা এবং কার্যকারিতা।
এছাড়াও, কৌশলটি লাভের জন্য লকিং এবং ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ-অফ-লস অনুপাত এবং ট্রেডিং ফ্রিকোয়েন্সি হ্রাস করার জন্য একটি স্থগিত ব্যবসায়ের ব্যবস্থাও সেট করে। এটি কৌশলটিকে ন্যূনতম ঝুঁকির সাথে স্থিতিশীল লাভের জন্য সক্ষম করে।
এই কৌশলটির প্রধান ঝুঁকিগুলো হলোঃ
প্রবণতা চলাকালীন মুনাফা অর্জন করা অসম্ভব। যখন প্রবণতা খুব শক্তিশালী হয়, আরএসআই দীর্ঘমেয়াদী ওভারবয় বা ওভারসোল্ড অঞ্চলে থাকতে পারে, যার বিপরীত হওয়ার সম্ভাবনা কম থাকে এবং এই কৌশলটি মুনাফা অর্জন করা কঠিন হবে।
স্টপ লস সেটিং খুব বেশি হলে ক্ষতির পরিমাণ বাড়তে পারে। বর্তমানে স্টপ লস ৩% এবং ১-২% এর মধ্যে পরিবর্তন করা যেতে পারে।
ট্রেডিং ফ্রিকোয়েন্সি খুব বেশি লাভজনক হওয়ার পরে পজিশন তৈরি করা সহজ। পজিশন খোলার ফ্রিকোয়েন্সি যথাযথভাবে নিয়ন্ত্রণ করা উচিত।
ফিক্সড পজিশনে প্রতিবার ১০০ ডলার বিনিয়োগ করা ঝুঁকিপূর্ণ এবং অতিরিক্ত কেন্দ্রীভূত হতে পারে, যার জন্য অনুকূলিতকরণের প্রয়োজন।
উপরের বিশ্লেষণের ভিত্তিতে, এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
ট্রেডিংয়ে অস্পষ্টতা থাকলে ট্রেডিং বন্ধ করে দিন।
অপ্টিমাইজড স্টপ লস স্টপ অনুপাত, 1-2% স্টপ লস অ্যাডজাস্টমেন্ট আরও যুক্তিসঙ্গত, স্টপ স্টপটি ভাসমান স্টপ হিসাবে সেট করা যেতে পারে।
পজিশন খোলার ফ্রিকোয়েন্সি বাড়ানো, যেমন নির্দিষ্ট সময়ের মধ্যে মাত্র ১-২ বার পজিশন খোলার অনুমতি দেওয়া।
একটি স্থির মূলধন 100 ডলারকে মূলধনের শতাংশে পরিবর্তন করুন, যেমন 1%।
RSI চক্র, ওভারবই ওভারসোল্ড অঞ্চল ইত্যাদির মতো প্যারামিটারগুলির সমন্বয়কে অপ্টিমাইজ করুন।
পজিশন কন্ট্রোল বাড়ানো, প্রাথমিক মূলধন বাড়ানোর সময় একক লেনদেনের মূলধন বাড়ানো হয় না।
উপরের কয়েকটি পয়েন্টের অপ্টিমাইজেশনের মাধ্যমে, আপনি কার্যকরভাবে লেনদেনের ঝুঁকি হ্রাস করতে পারেন এবং কৌশলটির স্থিতিশীলতা এবং নির্ভরযোগ্যতা বাড়িয়ে তুলতে পারেন।
এই কৌশলটি সামগ্রিকভাবে খুব সহজ এবং সরাসরি, আরএসআই সূচকের মাধ্যমে ওভার-বিক্রয় ওভার-বিক্রয় সিদ্ধান্তের মাধ্যমে স্বল্পমেয়াদী বিপরীত লাভের জন্য। এর সুবিধাটি সহজ এবং কার্যকর, পূর্বাভাসের প্রয়োজন নেই, লেনদেনের যুক্তি পরিষ্কার, সহজেই পুনরুদ্ধার এবং যাচাই করা যায়। তবে প্রবণতা পরিস্থিতি মোকাবেলা করা কঠিন হতে পারে, কিছুটা ক্ষতির ঝুঁকি রয়েছে। প্রবণতা বিচার, প্যারামিটার সেটিং অপ্টিমাইজেশন, পজিশন পজিশন নিয়ন্ত্রণ ইত্যাদি পদ্ধতি প্রবর্তন করে কৌশলটির স্থিতিশীলতা এবং লাভজনকতা আরও বাড়িয়ে তুলতে পারে। এই কৌশলটি উদ্ভাবনী, বাস্তব লেনদেনের মূল্য রয়েছে, যদি যুক্তিসঙ্গতভাবে প্রয়োগ করা হয় তবে আরও ভাল ফলাফল পাওয়া যায়।
/*backtest
start: 2023-11-02 00:00:00
end: 2023-11-09 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("rsi超买超卖_回测用", overlay=false, initial_capital=50000, currency=currency.USD, default_qty_type=strategy.cash)
open_pos = input.int(50000, title = "每次开单资金(usdt)")
rsi_period = input.int(14, title = "rsi周期")
rsi_line = input.float(20.0, title='RSI触发线', step=0.05)
stop_rsi_top_line = input.float(70, title = "顶部rsi止损线")
stop_rsi_bottom_line = input.float(30, title = "底部rsi止损线")
stop_loss_perc = input.float(0.03, title = "止损线")
stop_profit = input.float(0.01, title = "止盈")
loss_stop_trade_k = input.int(24, title = "亏损后x根K线不做交易")
rsiParam = ta.rsi(close, rsi_period)
var int failedTimes = 0
var bool stopTrade = false
// plot(rsiParam)
if stopTrade
failedTimes += 1
if failedTimes == loss_stop_trade_k
failedTimes := 0
stopTrade := false
// 获取当前持仓方向
checkCurrentPosition() =>
strategy.position_size > 0 ? 1 : strategy.position_size < 0 ? -1 : 0
curPosition = checkCurrentPosition()
// 当前持仓成本价
position_avg_price = strategy.position_avg_price
// 当前持单, 触达反向的rsi线,清仓
if curPosition > 0 and rsiParam >= stop_rsi_top_line
strategy.close_all(comment = "closebuy")
if curPosition < 0 and rsiParam <= stop_rsi_bottom_line
strategy.close_all(comment = "closesell")
// 止盈止损清仓
if curPosition > 0
// if (position_avg_price - close) / close >= stop_loss_perc
// // 止损
// strategy.close_all(comment = "closebuy")
// stopTrade := true
if (close - position_avg_price) / position_avg_price >= stop_profit
// 止盈
strategy.close_all(comment = "closebuy")
if curPosition < 0
// if (close - position_avg_price) / position_avg_price >= stop_loss_perc
// // 止损
// strategy.close_all(comment = "closesell")
// stopTrade := true
if (position_avg_price - close) / close >= stop_profit
// 止盈
strategy.close_all(comment = "closesell")
a = strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1)
if bar_index == a and strategy.closedtrades.profit(strategy.closedtrades - 1) < 0
stopTrade := true
var float openPrice = 0.0
if rsiParam <= rsi_line and stopTrade == false
strategy.entry("long", strategy.long, open_pos / close, comment = "long")
if curPosition == 0
openPrice := close
strategy.exit("long_stop", "long", limit = openPrice * (1+stop_profit), stop=openPrice * (1-stop_loss_perc), comment = "closebuy")
if rsiParam >= 100 - rsi_line and stopTrade == false
strategy.entry("short", strategy.short, open_pos / close, comment = "short")
if curPosition == 0
openPrice := close
strategy.exit("short_stop", "short", limit = openPrice * (1-stop_profit), stop=openPrice * (1+stop_loss_perc), comment = "closesell")
plot(failedTimes)