গোল্ডেন ক্রস কেল্টনার চ্যানেল ট্রেন্ড অনুসরণ কৌশল একটি কৌশল যা শুধুমাত্র প্রবণতার দিকে ট্রেড করে। এটি প্রবণতার দিক ধরার জন্য প্রবেশ সংকেত হিসাবে গোল্ডেন ক্রস এবং কেল্টনার চ্যানেলকে একত্রিত করে।
এই কৌশলটি প্রবণতা দিক নির্ধারণের জন্য সোনার ক্রস এবং মৃত্যুর ক্রস গঠনের জন্য দুটি চলমান গড়, একটি স্বল্পমেয়াদী এবং একটি দীর্ঘমেয়াদী চলমান গড় ব্যবহার করে। একই সাথে, এটি কেল্টনার চ্যানেলের উপরের এবং নীচের রেলগুলি প্লট করতে ব্যবহারকারীর সংজ্ঞায়িত বহুগুণ ব্যবহার করে এবং যখন দাম চ্যানেলটি ভেঙে যায় তখন ট্রেডিং সংকেত তৈরি করে।
বিশেষ করে, কৌশলটি প্রথমে পরীক্ষা করে যে দীর্ঘমেয়াদী চলমান গড়টি স্বল্পমেয়াদী চলমান গড়ের উপরে রয়েছে কিনা, যা একটি সোনার ক্রস এবং একটি আপগ্রেড প্রবণতা নির্দেশ করে। যদি স্বল্পমেয়াদী এমএ দীর্ঘমেয়াদী এমএ এর নীচে থাকে তবে এটি একটি মৃত্যু ক্রস, যা একটি ডাউনগ্রেড প্রবণতা নির্দেশ করে।
প্রবণতা নির্ধারণের উপর ভিত্তি করে, যদি দাম উপরের রেলের উপরে ভাঙ্গতে থাকে তবে একটি দীর্ঘ সংকেত উত্পন্ন হয়। যদি দাম নিম্ন রেলের নীচে ভাঙ্গতে থাকে তবে একটি সংক্ষিপ্ত সংকেত উত্পন্ন হয়। ব্যবহারকারীরা কৌশল পরামিতিগুলি কাস্টমাইজ করতে এমএ সময়কাল এবং চ্যানেল প্রস্থ সামঞ্জস্য করতে পারেন।
প্রবেশের পরে, কৌশলটি লাভ গ্রহণ এবং স্টপ-লসের জন্য ব্যবহারকারীর সংজ্ঞায়িত এটিআর গুণক ব্যবহার করে। এটি আরও নমনীয় অবস্থান নিয়ন্ত্রণের জন্য অতিরিক্ত ব্রেক ইভেন এবং স্টপ-লস শর্তও সরবরাহ করে।
এই কৌশলটি প্রবণতা অনুসরণ এবং চ্যানেল ব্রেকআউটের সুবিধাগুলি একত্রিত করে, কার্যকর প্রবণতা সনাক্তকরণ এবং সুযোগ ক্যাপচার করতে সক্ষম করে। প্রধান সুবিধাগুলি হলঃ
গোল্ডেন ক্রস প্রধান প্রবণতার সাথে সামঞ্জস্যহীন মিথ্যা সংকেতগুলি ফিল্টার করে।
প্রবণতা দিকের সাথে চ্যানেল ব্রেকআউট প্রবেশের নির্ভুলতা উন্নত করে।
লভ্যাংশ গ্রহণ এবং স্টপ-লস লাভ সংরক্ষণ এবং ঝুঁকি নিয়ন্ত্রণ।
নমনীয় পরামিতি সমন্বয় বিভিন্ন পণ্য এবং পরিবেশের জন্য উপযুক্ত।
দীর্ঘ এবং সংক্ষিপ্ত উভয়ই যায়, প্রয়োগযোগ্যতা প্রসারিত করে।
এই সুবিধাগুলো সত্ত্বেও, কিছু ঝুঁকির প্রতি মনোযোগ দিতে হবে:
পাল্টাবার সুযোগ হারাচ্ছে।
প্রবণতা পরিবর্তনের ফলে ক্ষতি হতে পারে।
অপ্রয়োজনীয় পরামিতিগুলি অত্যধিক ট্রেডিং বা বিরল ট্রেডিংয়ের কারণ হতে পারে।
রাতারাতি ঝুঁকি আছে।
কার্ভ ফিটিং ঝুঁকি।
সমাধানগুলির মধ্যে রয়েছে প্যারামিটার অপ্টিমাইজেশন, সময়মত এমএ সময়ের সমন্বয় এবং অবস্থান আকার নিয়ন্ত্রণ।
আরও উন্নতির সুযোগ রয়েছে:
একটি মাল্টি-ফ্যাক্টর মডেল তৈরি এবং নির্ভুলতা উন্নত করার জন্য আরও সূচক যোগ করা। যেমন এমএসিডি, আরএসআই।
বাজারের অভিযোজনযোগ্যতার জন্য মেশিন লার্নিং এর মাধ্যমে প্যারামিটার অপ্টিমাইজেশান।
মুনাফা ও পুরস্কারের মধ্যে ভারসাম্য বজায় রাখার জন্য গতিশীল লাভ এবং স্টপ-লস নিয়ম।
অস্থিরতার উপর ভিত্তি করে গতিশীল অবস্থানের আকার নির্ধারণ।
বিভিন্ন পণ্যের জন্য সর্বোত্তম পরামিতি গবেষণা করুন।
ফি কমিয়ে আনার জন্য ট্রেডিং ফ্রিকোয়েন্সি কমানো।
গোল্ডেন ক্রস কেল্টনার চ্যানেল ট্রেন্ড অনুসরণ কৌশলটি সাধারণত একটি স্থিতিশীল এবং নির্ভরযোগ্য প্রবণতা অনুসরণকারী সিস্টেম। প্রবণতা ফিল্টারিং এবং চ্যানেল ব্রেকআউটকে একত্রিত করে, এটি প্রবণতার দিকের সাথে সামঞ্জস্যপূর্ণ উচ্চ-সম্ভাব্যতার সুযোগগুলি সনাক্ত করে। আরও অপ্টিমাইজেশন এবং উন্নতি এটিকে একটি শক্তিশালী ট্রেডিং কাঠামো তৈরি করতে পারে।
/*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"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © OversoldPOS //@version=5 // strategy("Keltner Channel Strategy by OversoldPOS", overlay=true,initial_capital = 100000,default_qty_type = strategy.percent_of_equity,default_qty_value = 10, commission_type = strategy.commission.cash_per_order, commission_value = 7) // Parameters length = input(21, title="MA Length") Entrymult = input(1, title="Entry ATR") profit_mult = input(4, title="Profit Taker") exit_mult = input(-1, title="Exit ATR") // Moving Average Type Input ma_type = input.string("SMA", title="Moving Average Type", options=["SMA", "EMA", "WMA"]) // Calculate Keltner Channels for different ATR multiples atr_value = ta.atr(length) basis = switch ma_type "SMA" => ta.sma(close, length) "EMA" => ta.ema(close, length) "WMA" => ta.wma(close, length) // EntryKeltLong = basis + Entrymult * ta.atr(10) EntryKeltShort = basis - Entrymult * ta.atr(10) upper_channel1 = basis + 1 * ta.atr(10) lower_channel1 = basis - 1 * ta.atr(10) upper_channel2 = basis + 2 * ta.atr(10) lower_channel2 = basis - 2 * ta.atr(10) upper_channel3 = basis + 3 * ta.atr(10) lower_channel3 = basis - 3 * ta.atr(10) upper_channel4 = basis + 4 * ta.atr(10) lower_channel4 = basis - 4 * ta.atr(10) // Entry condition parameters long_entry_condition = input(true, title="Long Positions") short_entry_condition = input(true, title="Enable Short Positions") // Additional conditions for long and short entries is_long_entry = ta.ema(close, 20) > ta.ema(close, 50) is_short_entry = ta.ema(close, 20) < ta.ema(close, 50) // Additional conditions for long and short entries MAShort = input(50, title="Short MA for Golden Cross") MALong = input(200, title="Long MA for Golden Cross") is_long_entry2 = ta.ema(close, MAShort) > ta.ema(close, MALong) is_short_entry2 = ta.ema(close, MAShort) < ta.ema(close, MALong) // Exit condition parameters long_exit_condition1_enabled = input(true, title="Enable Long Profit Taker") long_exit_condition2_enabled = input(true, title="Enable Long Stop") short_exit_condition1_enabled = input(true, title="Enable Short Profit Taker") short_exit_condition2_enabled = input(true, title="Enable Short Stop") // Take Profit condition parameters take_profit_enabled = input(true, title="Enable Take Profit Condition") Takeprofit = basis + profit_mult * atr_value STakeprofit = basis - profit_mult * atr_value // Long entry condition long_condition = long_entry_condition and ta.crossover(close, EntryKeltLong) and is_long_entry2 // Short entry condition short_condition = short_entry_condition and ta.crossunder(close, EntryKeltShort) and is_short_entry2 // Exit conditions long_exit_condition1 = long_exit_condition1_enabled and close > Takeprofit long_exit_condition2 = long_exit_condition2_enabled and close < basis + exit_mult * atr_value short_exit_condition1 = short_exit_condition1_enabled and close < STakeprofit short_exit_condition2 = short_exit_condition2_enabled and close > basis - exit_mult * atr_value // Strategy logic if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) if (long_exit_condition1 or long_exit_condition2) strategy.close("Long") if (short_exit_condition1 or short_exit_condition2) strategy.close("Short") // Moving Averages var float MA1 = na var float MA2 = na if (ma_type == "SMA") MA1 := ta.sma(close, MAShort) MA2 := ta.sma(close, MALong) else if (ma_type == "EMA") MA1 := ta.ema(close, MAShort) MA2 := ta.ema(close, MALong) else if (ma_type == "WMA") MA1 := ta.wma(close, MAShort) MA2 := ta.wma(close, MALong) // Plotting Keltner Channels with adjusted transparency transparentColor = color.rgb(255, 255, 255, 56) plot(upper_channel1, color=transparentColor, title="Upper Channel 1") plot(lower_channel1, color=transparentColor, title="Lower Channel 1") plot(upper_channel2, color=transparentColor, title="Upper Channel 2") plot(lower_channel2, color=transparentColor, title="Lower Channel 2") plot(upper_channel3, color=transparentColor, title="Upper Channel 3") plot(lower_channel3, color=transparentColor, title="Lower Channel 3") plot(upper_channel4, color=transparentColor, title="Upper Channel 4") plot(lower_channel4, color=transparentColor, title="Lower Channel 4") plot(basis, color=color.white, title="Basis") plot(MA1, color=color.rgb(4, 248, 216), linewidth=2, title="Middle MA") plot(MA2, color=color.rgb(220, 7, 248), linewidth=2, title="Long MA")