এই কৌশলটি স্টোকাস্টিক দোলকের উপর ভিত্তি করে একটি বুদ্ধিমান ট্রেডিং সিস্টেম। এটি গতিশীল প্রবণতা সনাক্তকরণ, একাধিক সংকেত নিশ্চিতকরণ এবং বুদ্ধিমান ঝুঁকি ব্যবস্থাপনা ক্ষমতাকে স্বয়ংক্রিয়ভাবে বাজার ওভারকুপ / ওভারসোল্ড শর্তগুলি সনাক্ত করতে এবং বাণিজ্য সম্পাদন করতে একত্রিত করে। কৌশলটি বাজারের শর্তগুলি চাক্ষুষভাবে প্রদর্শনের জন্য একটি রঙ-কোডিং সিস্টেম ব্যবহার করে, প্রবণতা নিশ্চিতকরণের জন্য একাধিক সময়কালীন চলমান গড় (ইএমএ) একীভূত করে এবং নমনীয় স্টপ-লস এবং লাভ গ্রহণের সেটিংস সরবরাহ করে।
কৌশলটির মূলটি স্টোকাস্টিক দোলক এবং একাধিক চলমান গড় সিস্টেমের সংমিশ্রণে ভিত্তি করে। যখন কে মানটি পূর্বনির্ধারিত ওভারবয়ড / ওভারসোল্ড স্তর (93/15) বা মাঝারি স্তর (40) অতিক্রম করে তখন ট্রেডিং সংকেত উত্পন্ন হয়। সিস্টেমটি রঙের পরিবর্তনের মাধ্যমে বাজারের পরিস্থিতি ভিজ্যুয়ালি প্রদর্শন করে (লাল সম্ভাব্য হ্রাস নির্দেশ করে, সবুজ সম্ভাব্য উত্থান নির্দেশ করে, নীল নিরপেক্ষ নির্দেশ করে) । এটি প্রবণতা নিশ্চিত করার জন্য 20, 50, 100, এবং 200-অবধি এক্সপোনেনশিয়াল চলমান গড় (ইএমএ) অন্তর্ভুক্ত করে। কৌশলটিতে একটি বুদ্ধিমান ঝুঁকি ব্যবস্থাপনা সিস্টেম রয়েছে যা 1:1, 1:4 এবং 1:8 এর মতো বিভিন্ন ঝুঁকি-প্রতিফল অনুপাতকে সমর্থন করে।
কৌশলটি স্টোকাস্টিক দোলক, চলমান গড় সিস্টেম এবং বুদ্ধিমান ঝুঁকি ব্যবস্থাপনাকে একত্রিত করে একটি বিস্তৃত ট্রেডিং সিস্টেম তৈরি করে। কৌশল নকশা ব্যবহারিকতা এবং অপারেবিলিটিকে জোর দেয়, যা বিভিন্ন ঝুঁকি পছন্দ সহ ব্যবসায়ীদের জন্য উপযুক্ত। ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে, কৌশলটি বিভিন্ন বাজারের অবস্থার মধ্যে স্থিতিশীল কর্মক্ষমতা বজায় রাখার সম্ভাবনা রয়েছে।
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 4h basePeriod: 4h 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/ // © petrusvorenusperegrinus //██████╗ ███████╗████████╗██████╗ ██╗ ██╗███████╗ //██╔══██╗██╔════╝╚══██╔══╝██╔══██╗██║ ██║██╔════╝ //██████╔╝█████╗ ██║ ██████╔╝██║ ██║███████╗ //██╔═══╝ ██╔══╝ ██║ ██╔══██╗██║ ██║╚════██║ //██║ ███████╗ ██║ ██║ ██║╚██████╔╝███████║ //╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝ //██╗ ██╗ ██████╗ ██████╗ ███████╗███╗ ██╗██╗ ██╗███████╗ //██║ ██║██╔═══██╗██╔══██╗██╔════╝████╗ ██║██║ ██║██╔════╝ //██║ ██║██║ ██║██████╔╝█████╗ ██╔██╗ ██║██║ ██║███████╗ //╚██╗ ██╔╝██║ ██║██╔══██╗██╔══╝ ██║╚██╗██║██║ ██║╚════██║ // ╚████╔╝ ╚██████╔╝██║ ██║███████╗██║ ╚████║╚██████╔╝███████║ // ╚═══╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝ //██████╗ ███████╗██████╗ ███████╗ ██████╗ ██████╗ ██╗███╗ ██╗██╗ ██╗███████╗ //██╔══██╗██╔════╝██╔══██╗██╔════╝██╔════╝ ██╔══██╗██║████╗ ██║██║ ██║██╔════╝ //██████╔╝█████╗ ██████╔╝█████╗ ██║ ███╗██████╔╝██║██╔██╗ ██║██║ ██║███████╗ //██╔═══╝ ██╔══╝ ██╔══██╗██╔══╝ ██║ ██║██╔══██╗██║██║╚██╗██║██║ ██║╚════██║ //██║ ███████╗██║ ██║███████╗╚██████╔╝██║ ██║██║██║ ╚████║╚██████╔╝███████║ //╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝ //@version=6 strategy("CM Stochastic POP Method 3", shorttitle="CM_Stochastic POP_M3", overlay=true) // Stochastic Settings length = input.int(14, "Stochastic Length", minval=1) smoothK = input.int(5, "Smooth K", minval=1) // Risk:Reward Settings use_rr = input.bool(true, "Use Risk:Reward Ratio") use_sl = input.bool(true, "Use Stop Loss") // New input for Stop Loss toggle rr_options = input.string("1:1", "Risk:Reward Ratio", options=["1:1", "1:4", "1:8"]) stop_percent = input.float(1.0, "Stop Loss (%)", minval=0.1, step=0.1) // Convert selected R:R ratio to number get_rr_multiplier(rr) => switch rr "1:1" => 1.0 "1:4" => 4.0 "1:8" => 8.0 => 1.0 // default case rr_ratio = get_rr_multiplier(rr_options) // Fixed Level Settings upperLine = 93.0 // Fixed sell level midLine = 40.0 // Buy/Sell level lowerLine = 15.0 // Fixed buy level // EMA Settings ema20 = ta.ema(close, 20) ema50 = ta.ema(close, 50) ema100 = ta.ema(close, 100) ema200 = ta.ema(close, 200) // Calculate Stochastic with smoothing k = ta.sma(ta.stoch(close, high, low, length), smoothK) // Dynamic color based on K value kColor = k >= upperLine ? color.red : // Above 93 -> Red k <= lowerLine ? color.green : // Below 15 -> Green k <= midLine ? color.green : // Below 40 -> Green color.blue // Between 40-93 -> Blue // Buy Signals: longCondition1 = ta.crossover(k, lowerLine) // Cross above 15 longCondition2 = ta.crossover(k, midLine) // Cross above 40 // Sell Signals: shortCondition1 = ta.crossunder(k, upperLine) // Cross below 93 shortCondition2 = ta.crossunder(k, midLine) // Cross below 40 calc_tp_sl(entry_price, is_long) => sl_distance = entry_price * (stop_percent / 100) sl = is_long ? entry_price - sl_distance : entry_price + sl_distance tp_distance = sl_distance * rr_ratio tp = is_long ? entry_price + tp_distance : entry_price - tp_distance [sl, tp] // Long entries if (longCondition1) if (use_rr) [sl, tp] = calc_tp_sl(close, true) strategy.entry("Long_15", strategy.long) if (use_sl) strategy.exit("Exit_15", "Long_15", stop=sl, limit=tp) else strategy.exit("Exit_15", "Long_15", limit=tp) else strategy.entry("Long_15", strategy.long) if (longCondition2) if (use_rr) [sl, tp] = calc_tp_sl(close, true) strategy.entry("Long_40", strategy.long) if (use_sl) strategy.exit("Exit_40", "Long_40", stop=sl, limit=tp) else strategy.exit("Exit_40", "Long_40", limit=tp) else strategy.entry("Long_40", strategy.long) // Short entries if (shortCondition1) if (use_rr) [sl, tp] = calc_tp_sl(close, false) strategy.entry("Short_93", strategy.short) if (use_sl) strategy.exit("Exit_93", "Short_93", stop=sl, limit=tp) else strategy.exit("Exit_93", "Short_93", limit=tp) else strategy.entry("Short_93", strategy.short) if (shortCondition2) if (use_rr) [sl, tp] = calc_tp_sl(close, false) strategy.entry("Short_40", strategy.short) if (use_sl) strategy.exit("Exit_40", "Short_40", stop=sl, limit=tp) else strategy.exit("Exit_40", "Short_40", limit=tp) else strategy.entry("Short_40", strategy.short) // Plot EMAs plot(ema20, title="EMA 20", color=color.blue, linewidth=1, force_overlay = true) plot(ema50, title="EMA 50", color=color.yellow, linewidth=1, force_overlay = true) plot(ema100, title="EMA 100", color=color.orange, linewidth=1, force_overlay = true) plot(ema200, title="EMA 200", color=color.purple, linewidth=1, force_overlay = true) // Plot Stochastic line plot(k, title="Stochastic", color=kColor, linewidth=2) // Plot reference lines hline(100, title="100 Line", color=color.white, linestyle=hline.style_solid) hline(upperLine, title="93 Line", color=color.red, linestyle=hline.style_solid) hline(midLine, title="40 Line", color=color.green, linestyle=hline.style_dashed) hline(lowerLine, title="15 Line", color=color.green, linestyle=hline.style_solid) hline(0, title="0 Line", color=color.white, linestyle=hline.style_solid)