এই কৌশলটি একটি উন্নত ট্রেডিং সিস্টেম যা গতিশীল ট্রেলিং স্টপ, ঝুঁকি-প্রতিদান অনুপাত এবং আরএসআই চরম প্রস্থানগুলিকে একত্রিত করে। এটি বাণিজ্য প্রবেশের জন্য নির্দিষ্ট নিদর্শনগুলি (সমানতালিকা বার প্যাটার্ন এবং পিন বার প্যাটার্ন) সনাক্ত করে, যখন এটিআর এবং সাম্প্রতিক সর্বনিম্নগুলিকে গতিশীল স্টপ লস প্লেসমেন্টের জন্য ব্যবহার করে এবং পূর্বনির্ধারিত ঝুঁকি-প্রতিদান অনুপাতের উপর ভিত্তি করে মুনাফা লক্ষ্য নির্ধারণ করে। সিস্টেমটি একটি আরএসআই-ভিত্তিক বাজার ওভারকুপড / ওভারসোল্ড প্রস্থান প্রক্রিয়াও অন্তর্ভুক্ত করে।
মূল যুক্তিতে বেশ কয়েকটি মূল উপাদান অন্তর্ভুক্ত রয়েছেঃ
এটি একটি ভাল ডিজাইন করা ট্রেডিং কৌশল যা একটি সম্পূর্ণ ট্রেডিং সিস্টেম তৈরির জন্য একাধিক পরিপক্ক প্রযুক্তিগত বিশ্লেষণ ধারণাগুলিকে একত্রিত করে। কৌশলটির শক্তিগুলি এর বিস্তৃত ঝুঁকি ব্যবস্থাপনা সিস্টেম এবং নমনীয় ট্রেডিং নিয়মগুলিতে রয়েছে, যখন প্যারামিটার অপ্টিমাইজেশন এবং বাজারের অভিযোজনযোগ্যতার প্রতি মনোযোগ দিতে হবে। প্রস্তাবিত অপ্টিমাইজেশান দিকগুলির মাধ্যমে কৌশলটির আরও উন্নতির জন্য জায়গা রয়েছে।
/*backtest start: 2024-11-10 00:00:00 end: 2024-12-09 08:00:00 period: 2h basePeriod: 2h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ZenAndTheArtOfTrading | www.TheArtOfTrading.com // @version=5 strategy("Trailing stop 1", overlay=true) // Get user input int BAR_LOOKBACK = input.int(10, "Bar Lookback") int ATR_LENGTH = input.int(14, "ATR Length") float ATR_MULTIPLIER = input.float(1.0, "ATR Multiplier") rr = input.float(title="Risk:Reward", defval=3) // Basic definition var float shares=na risk = 1000 var float R=na E = strategy.position_avg_price // Input option to choose long, short, or both side = input.string("Long", title="Side", options=["Long", "Short", "Both"]) // RSI exit option RSIexit = input.string("Yes", title="Exit at RSI extreme?", options=["Yes", "No"]) RSIup = input(75) RSIdown = input(25) // Get indicator values float atrValue = ta.atr(ATR_LENGTH) // Calculate stop loss values var float trailingStopLoss = na float longStop = ta.lowest(low, BAR_LOOKBACK) - (atrValue * ATR_MULTIPLIER) float shortStop = ta.highest(high, BAR_LOOKBACK) + (atrValue * ATR_MULTIPLIER) // Check if we can take trades bool canTakeTrades = not na(atrValue) bgcolor(canTakeTrades ? na : color.red) //Long pattern //Two pin bar onepinbar = (math.min(close,open)-low)/(high-low)>0.6 and math.min(close,open)-low>ta.sma(high-low,14) twopinbar = onepinbar and onepinbar[1] notatbottom = low>ta.lowest(low[1],10) // Parallel bigred = (open-close)/(high-low)>0.8 and high-low>ta.sma(high-low,14) biggreen = (close-open)/(high-low)>0.8 and high-low>ta.sma(high-low,14) parallel = bigred[1] and biggreen atbottom = low==ta.lowest(low,10) // Enter long trades (replace this entry condition) longCondition = parallel if (longCondition and canTakeTrades and strategy.position_size == 0 and (side == "Long" or side == "Both")) R:= close-longStop shares:= risk/R strategy.entry("Long", strategy.long,qty=shares) // Enter short trades (replace this entry condition) shortCondition = parallel if (shortCondition and canTakeTrades and strategy.position_size == 0 and (side == "Short" or side == "Both")) R:= shortStop - close shares:= risk/R strategy.entry("Short", strategy.short,qty=shares) // Update trailing stop if (strategy.position_size > 0) if (na(trailingStopLoss) or longStop > trailingStopLoss) trailingStopLoss := longStop else if (strategy.position_size < 0) if (na(trailingStopLoss) or shortStop < trailingStopLoss) trailingStopLoss := shortStop else trailingStopLoss := na // Exit trades with trailing stop strategy.exit("Long Exit", "Long", stop=trailingStopLoss, limit = E + rr*R ) strategy.exit("Short Exit", "Short", stop=trailingStopLoss, limit = E - rr*R) //Close trades at RSI extreme if ta.rsi(high,14)>RSIup and RSIexit == "Yes" strategy.close("Long") if ta.rsi(low,14)<RSIdown and RSIexit == "Yes" strategy.close("Short") // Draw stop loss plot(trailingStopLoss, "Stop Loss", color.red, 1, plot.style_linebr)