এই কৌশলটি RSI ওভারসোল্ড সংকেত এবং গতিশীল ATR স্টপ-লস উপর ভিত্তি করে একটি পরিমাণগত ট্রেডিং সিস্টেম। দৈনিক টাইমফ্রেম ডেটা ব্যবহার করে, এটি একটি 200 দিনের চলমান গড় প্রবণতা ফিল্টারের সাথে RSI ওভারসোল্ড সংকেতগুলিকে একত্রিত করে ওভারসোল্ড বাজারের অবস্থার মধ্যে রিবাউন্ড সুযোগগুলি ক্যাপচার করতে। কৌশলটি গতিশীল ATR স্টপ-লস এবং স্ট্যাটিক শতাংশ স্টপ-লস উভয় প্রক্রিয়া ব্যবহার করে, ধাপে ধাপে অবস্থান হ্রাসের মাধ্যমে প্রয়োগ করা ট্রিপল মুনাফা লক্ষ্যগুলির সাথে।
মূল যুক্তিতে নিম্নলিখিত মূল উপাদানগুলি অন্তর্ভুক্ত রয়েছেঃ
প্রবণতা নির্ভরতাঃ কৌশলটি বিভিন্ন বাজারে ঘন ঘন স্টপকে ট্রিগার করতে পারে। পরামর্শ: মিথ্যা সংকেত কমাতে ওসিলেটর ফিল্টার যুক্ত করুন।
ব্রড স্টপ-লসঃ ২৫% ফিক্সড স্টপ-লস একক ট্রেডে বড় ক্ষতির কারণ হতে পারে। পরামর্শঃ ব্যক্তিগত ঝুঁকি সহনশীলতার উপর ভিত্তি করে স্টপ-লস শতাংশ সামঞ্জস্য করুন।
ড্রাউনডাউন ঝুঁকিঃ ধাপে ধাপে মুনাফা গ্রহণ শক্তিশালী প্রবণতার সময় খুব তাড়াতাড়ি অবস্থান হ্রাস করতে পারে। পরামর্শঃ গতিশীল মুনাফা লক্ষ্যমাত্রা বিবেচনা করুন অথবা প্রবণতা অনুসরণ করার জন্য অংশটি ধরে রাখুন।
এই কৌশলটি গতিশীল এটিআর স্টপ-লস এবং ট্রিপল মুনাফা লক্ষ্য দ্বারা পরিপূরক, চলমান গড় প্রবণতা ফিল্টারিং সহ আরএসআই ওভারসোল্ড সংকেতগুলিকে একত্রিত করে একটি সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে। এর শক্তি নমনীয় ঝুঁকি নিয়ন্ত্রণ এবং যুক্তিসঙ্গত মুনাফা পরিচালনায় রয়েছে, যদিও বাজারের অবস্থার উপর ভিত্তি করে অপ্টিমাইজেশন এবং ব্যক্তিগত ঝুঁকি পছন্দ প্রয়োজনীয়। সংকেত সিস্টেম, স্টপ-লস প্রক্রিয়া এবং মুনাফা গ্রহণের কৌশলটির ক্রমাগত উন্নতির মাধ্যমে, সিস্টেমটি লাইভ ট্রেডিংয়ে আরও ভাল পারফরম্যান্সের সম্ভাবনা দেখায়।
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA/4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/ // © wielkieef //@version=5 strategy("Simple RSI stock Strategy [1D] ", overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=75, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03) // Rsi oversoldLevel = input(30, title="Oversold Level") overboughtLevel = input(70, title="Overbought Level") rsi = ta.rsi(close, 5) rsi_overbought = rsi > overboughtLevel rsi_oversold = rsi < oversoldLevel // Sma 200 lenghtSMA = input(200, title = "SMA lenght") sma200 = ta.sma(close, lenghtSMA) // ATR stop-loss atrLength = input.int(20, title="ATR Length") atrMultiplier = input.float(1.5, title="ATR Multiplier") atrValue = ta.atr(atrLength) var float long_stop_level = na var float short_stop_level = na var float tp1_level = na var float tp2_level = na var float tp3_level = na // Strategy entry long = (rsi_oversold ) and close > sma200 // Take Profit levels tp_1 = input.float(5.0, "TP 1", minval=0.1, step=0.1) tp_2 = input.float(10.0, "TP 2", minval=0.2, step=0.1) tp_3 = input.float(15.0, "TP 3", minval=0.3, step=0.1) if long strategy.entry('Long', strategy.long) long_stop_level := close - atrMultiplier * atrValue tp1_level := strategy.position_avg_price * (1 + tp_1 / 100) tp2_level := strategy.position_avg_price * (1 + tp_2 / 100) tp3_level := strategy.position_avg_price * (1 + tp_3 / 100) // basic SL - this code is from author RafaelZioni, modified by wielkieef sl = input.float(25.0, 'Basic Stop Loss %', step=0.1) per(procent) => strategy.position_size != 0 ? math.round(procent / 100 * strategy.position_avg_price / syminfo.mintick) : float(na) // ATR SL if (strategy.position_size > 0 and (close <= long_stop_level)) strategy.close("Long") tp1_level := na tp2_level := na tp3_level := na plot(long_stop_level, color=color.orange, linewidth=2, title="Long Stop Loss") // TP levels if (strategy.position_size > 0) if (not na(tp1_level) and close >= tp1_level) tp1_level := na if (not na(tp2_level) and close >= tp2_level) tp2_level := na if (not na(tp3_level) and close >= tp3_level) tp3_level := na plot(strategy.position_size > 0 and not na(tp1_level) ? tp1_level : na, color=color.gray, style=plot.style_circles , linewidth=1, title="Take Profit 1") plot(strategy.position_size > 0 and not na(tp2_level) ? tp2_level : na, color=color.gray, style=plot.style_circles , linewidth=1, title="Take Profit 2") plot(strategy.position_size > 0 and not na(tp3_level) ? tp3_level : na, color=color.gray, style=plot.style_circles , linewidth=1, title="Take Profit 3") // Strategy exit points for Take Profits strategy.exit('TP 1', from_entry="Long", qty_percent=33, profit=per(tp_1), loss=per(sl)) strategy.exit('TP 2', from_entry="Long", qty_percent=66, profit=per(tp_2), loss=per(sl)) strategy.exit('TP 3', from_entry="Long", qty_percent=100, profit=per(tp_3), loss=per(sl)) // by wielkieef