এই কৌশলটি দ্বৈত চলমান গড় ক্রসওভার এবং সময় অপ্টিমাইজেশনের উপর ভিত্তি করে একটি প্রবণতা-পরবর্তী ট্রেডিং সিস্টেম। এটি একটি নির্দিষ্ট ট্রেডিং সময় উইন্ডো অন্তর্ভুক্ত করার সময় ক্রয় এবং বিক্রয় সংকেত তৈরি করতে স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী চলমান গড়ের ছেদ ব্যবহার করে। ট্রেড এক্সিকিউশনকে অনুকূল করার জন্য কৌশলটিতে একাধিক লক্ষ্য মূল্য এবং ঝুঁকি এবং মুনাফা গ্রহণ পরিচালনা করার জন্য স্টপ-লস স্তর অন্তর্ভুক্ত রয়েছে।
এই কৌশলটির মূল নীতি হল বাজারের প্রবণতা চিহ্নিত করতে এবং ট্রেডিং সংকেত তৈরি করতে বিভিন্ন সময়ের সাথে দুটি চলমান গড় (এমএ) ব্যবহার করা। বিশেষতঃ
স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী এমএঃ কৌশলটি ব্যবহারকারীর দ্বারা সংজ্ঞায়িত দুটি চলমান গড় সময়কাল ব্যবহার করে, যা স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী বাজারের প্রবণতা উপস্থাপন করে।
ক্রসওভার সিগন্যালঃ যখন স্বল্পমেয়াদী এমএ দীর্ঘমেয়াদী এমএ এর উপরে ক্রস করে তখন একটি ক্রয় সংকেত উত্পন্ন হয়; যখন স্বল্পমেয়াদী এমএ দীর্ঘমেয়াদী এমএ এর নীচে ক্রস করে তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
সময় অপ্টিমাইজেশানঃ কৌশলটি একটি ট্রেডিং সময় উইন্ডো ধারণা প্রবর্তন করে, শুধুমাত্র ব্যবহারকারীর দ্বারা নির্দিষ্ট ইউটিসি সময় পরিসীমা মধ্যে ট্রেডগুলি সম্পাদন করে, উচ্চ বাজারের অস্থিরতা বা কম তরলতার সময়গুলি এড়াতে সহায়তা করে।
একাধিক টার্গেট মূল্যঃ কৌশলটি প্রতিটি ব্যবসায়ের জন্য দুটি টার্গেট মূল্য (টার্গেট_১ এবং টার্গেট_২) নির্ধারণ করে, যা ধাপে ধাপে মুনাফা গ্রহণের অনুমতি দেয়।
ঝুঁকি ব্যবস্থাপনাঃ সম্ভাব্য ক্ষতির সীমাবদ্ধতার জন্য প্রতিটি ট্রেডের জন্য একটি স্টপ-লস পয়েন্ট নির্ধারণ করা হয়।
ভিজ্যুয়ালাইজেশনঃ কৌশলটি ক্রয় এবং বিক্রয় সংকেত চিহ্নিত করে এবং চার্টে মূল্যের লক্ষ্যগুলি লেবেল করে, যা ব্যবসায়ীদের বাজারের গতিশীলতা স্বজ্ঞাতভাবে বুঝতে দেয়।
প্রবণতা অনুসরণঃ চলমান গড় ক্রসওভার ব্যবহার করে, কৌশলটি কার্যকরভাবে বাজারের প্রবণতা ক্যাপচার করতে পারে, লাভের সুযোগ বাড়িয়ে তুলতে পারে।
সময় অপ্টিমাইজেশানঃ ট্রেডিংয়ের সময় সীমিত করে, কৌশলটি সবচেয়ে সক্রিয় এবং লাভজনক বাজারের সময়গুলিতে ফোকাস করতে পারে, ট্রেডিংয়ের দক্ষতা উন্নত করে।
ঝুঁকি ব্যবস্থাপনাঃ একাধিক লক্ষ্য মূল্য এবং স্টপ-লস সেটিংগুলি মূলধন সুরক্ষা রক্ষা করে ঝুঁকি এবং পুরষ্কারের ভারসাম্য বজায় রাখতে সহায়তা করে।
নমনীয়তাঃ ব্যবহারকারীরা ব্যক্তিগত পছন্দ এবং বাজারের বৈশিষ্ট্য অনুযায়ী এমএ সময়কাল, লক্ষ্য মূল্য এবং ট্রেডিং সময় উইন্ডো সামঞ্জস্য করতে পারেন।
ভিজ্যুয়াল অ্যাসিস্ট্যান্সঃ ক্রয়/বিক্রয় সংকেত এবং লক্ষ্য মূল্য অর্জনগুলি চার্টে মন্তব্য করে, ব্যবসায়ীরা কৌশল কার্যকারিতা আরও স্বজ্ঞাতভাবে বুঝতে পারে।
দ্বি-দিকনির্দেশমূলক ট্রেডিংঃ কৌশলটি বিভিন্ন বাজারের পরিবেশে সুযোগ খুঁজতে, দীর্ঘ এবং সংক্ষিপ্ত অবস্থান উভয়ই সমর্থন করে।
বিপজ্জনক বাজার ঝুঁকিঃ পাশের বাজারগুলিতে, ঘন ঘন এমএ ক্রসওভারগুলি অত্যধিক মিথ্যা সংকেত এবং ট্রেডিং ব্যয় হতে পারে।
স্লিপিং ঝুঁকিঃ দ্রুত বাজারে, প্রকৃত কার্যকর মূল্যগুলি সিগন্যাল উত্পাদনের দামের থেকে উল্লেখযোগ্যভাবে পৃথক হতে পারে।
ঐতিহাসিক তথ্যের উপর অত্যধিক নির্ভরতাঃ চলমান গড়গুলি হ'ল পিছিয়ে থাকা সূচক এবং হঠাৎ বাজারের বিপরীতমুখী ঘটনায় সময়মত প্রতিক্রিয়া জানাতে পারে না।
সময়সীমা সীমাবদ্ধতাঃ কঠোর ট্রেডিং সময় সীমাবদ্ধতা গুরুত্বপূর্ণ বাজার সুযোগ হারাতে পারে।
স্থির স্টপ-লস ঝুঁকিঃ উচ্চ অস্থিরতার সময় স্থির-পয়েন্ট স্টপ-লস ব্যবহার করা যথেষ্ট নমনীয় নাও হতে পারে।
ওভারট্রেডিংঃ নির্দিষ্ট বাজারের পরিস্থিতিতে, কৌশলটি খুব বেশি ট্রেডিং সিগন্যাল তৈরি করতে পারে, যা লেনদেনের খরচ বৃদ্ধি করে।
ডায়নামিক প্যারামিটার অ্যাডজাস্টমেন্টঃ বাজারের অস্থিরতার ভিত্তিতে ডায়নামিকভাবে এমএ সময়কাল এবং ট্রেডিং প্যারামিটারগুলি সামঞ্জস্য করার জন্য অভিযোজনশীল প্রক্রিয়া প্রবর্তন বিবেচনা করুন।
ভোল্টেবিলিটি ফিল্টারিংঃ কম ভোল্টেবিলিটি সময়কালে ওভারট্রেডিং এড়ানোর জন্য ট্রেডিং সিগন্যাল তৈরির আগে বাজারের ভোল্টেবিলিটি মূল্যায়ন করুন।
উন্নত স্টপ-লস প্রক্রিয়াঃ বিভিন্ন বাজারের অবস্থার সাথে মানিয়ে নিতে এটিআর (গড় সত্য পরিসীমা) এর উপর ভিত্তি করে গতিশীল স্টপ-লস ব্যবহার করার বিষয়টি বিবেচনা করুন।
অন্যান্য প্রযুক্তিগত সূচকগুলির সংহতকরণঃ যেমন RSI বা MACD, প্রবণতা শক্তি নিশ্চিত করতে এবং সংকেতের গুণমান উন্নত করতে।
ব্যাকটেস্টিং অপ্টিমাইজেশনঃ সর্বোত্তম প্যারামিটার সমন্বয় এবং সময় উইন্ডো সেটিংস খুঁজে পেতে আরও বিস্তৃত historicalতিহাসিক ডেটা ব্যাকটেস্টিং পরিচালনা করুন।
মূলধন ব্যবস্থাপনা অপ্টিমাইজেশানঃ অ্যাকাউন্টের আকার এবং বাজারের অস্থিরতার উপর ভিত্তি করে গতিশীলভাবে বাণিজ্যের আকার সামঞ্জস্য করার মতো আরও পরিশীলিত অবস্থান আকারের কৌশল বাস্তবায়ন করুন।
মৌলিক কারণগুলি বিবেচনা করাঃ উচ্চ অনিশ্চয়তার সময় ট্রেডিং এড়াতে গুরুত্বপূর্ণ অর্থনৈতিক তথ্য প্রকাশের আগে এবং পরে কৌশল আচরণ সামঞ্জস্য করুন।
মেশিন লার্নিং ইন্টিগ্রেশনঃ প্যারামিটার নির্বাচন এবং সংকেত উত্পাদন প্রক্রিয়া অপ্টিমাইজ করার জন্য মেশিন লার্নিং অ্যালগরিদম ব্যবহার করে অনুসন্ধান করুন।
ডুয়াল মুভিং এভারেজ মোমেন্টাম ট্রেডিং স্ট্র্যাটেজি হল একটি ট্রেন্ড-ফলোিং সিস্টেম যা প্রযুক্তিগত বিশ্লেষণকে সময় অপ্টিমাইজেশনের সাথে একত্রিত করে। চলমান গড় ক্রসওভার এবং একটি সাবধানে ডিজাইন করা ট্রেডিং টাইম উইন্ডো ব্যবহার করে, কৌশলটি বাজারের প্রবণতা ক্যাপচার এবং ট্রেড এক্সিকিউশন অপ্টিমাইজ করার লক্ষ্য রাখে। যদিও কৌশলটির স্বজ্ঞাততা এবং নমনীয়তার মতো সুবিধা রয়েছে, তবে এটি বাজারের অস্থিরতা এবং ওভারট্রেডিংয়ের মতো ঝুঁকির মুখোমুখি হয়। গতিশীল পরামিতি সামঞ্জস্যের প্রবর্তন, ঝুঁকি পরিচালনার প্রক্রিয়া উন্নত করা এবং আরও প্রযুক্তিগত সূচকগুলিকে একীভূত করার মতো ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে, এই কৌশলটির আরও শক্তিশালী এবং দক্ষ ট্রেডিং সিস্টেম হওয়ার সম্ভাবনা রয়েছে। এই কৌশলটি ব্যবহারকারী ব্যবসায়ীদের অবশ্যই এর নীতিগুলি পুরোপুরি বুঝতে হবে এবং ব্যক্তিগত ঝুঁকি পছন্দ এবং বাজারের পরিবেশের উপর ভিত্তি করে উপযুক্ত পরামিতি সামঞ্জস্য করতে হবে।
/*backtest start: 2024-07-23 00:00:00 end: 2024-07-30 00:00:00 period: 2m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Gold Trend Trader", shorttitle="Gold Trader", overlay=true) // User-defined input for moving averages shortMA = input.int(10, minval=1, title="Short MA Period") longMA = input.int(100, minval=1, title="Long MA Period") target_1 = input.int(100, minval=1, title="Target_1") target_2 = input.int(150, minval=1, title="Target_2") // User-defined input for the start and end times with default values startTimeInput = input.int(12, title="Start Time for Session (UTC, in hours)", minval=0, maxval=23) endTimeInput = input.int(17, title="End Time Session (UTC, in hours)", minval=0, maxval=23) // Convert the input hours to minutes from midnight startTime = startTimeInput * 60 endTime = endTimeInput * 60 // Function to convert the current exchange time to UTC time in minutes toUTCTime(exchangeTime) => exchangeTimeInMinutes = exchangeTime / 60000 // Adjust for UTC time utcTime = exchangeTimeInMinutes % 1440 utcTime // Get the current time in UTC in minutes from midnight utcTime = toUTCTime(time) // Check if the current UTC time is within the allowed timeframe isAllowedTime = (utcTime >= startTime and utcTime < endTime) // Calculating moving averages shortMAValue = ta.sma(close, shortMA) longMAValue = ta.sma(close, longMA) // Plotting the MAs plot(shortMAValue, title="Short MA", color=color.blue) plot(longMAValue, title="Long MA", color=color.red) // Tracking buy and sell signals var float buyEntryPrice_1 = na var float buyEntryPrice_2 = na var float sellEntryPrice_1 = na var float sellEntryPrice_2 = na // Logic for Buy and Sell signals buySignal = ta.crossover(shortMAValue, longMAValue) and isAllowedTime sellSignal = ta.crossunder(shortMAValue, longMAValue) and isAllowedTime // Entry conditions for long and short trades if (buySignal) strategy.entry("Buy_1", strategy.long) strategy.exit("TP_1", "Buy_1", limit=close + target_1, stop=close - 100) strategy.entry("Buy_2", strategy.long) strategy.exit("TP_2", "Buy_2", limit=close + target_2, stop=close - 1500) if (sellSignal) strategy.entry("Sell_1", strategy.short) strategy.exit("TP_3", "Sell_1", limit=close - target_1, stop=close + 100) strategy.entry("Sell_2", strategy.short) strategy.exit("TP_4", "Sell_2", limit=close - target_2, stop=close + 150) // Apply background color for entry candles barcolor(buySignal ? color.green : sellSignal ? color.red : na) // Creating buy and sell labels if (buySignal) label.new(bar_index, low, text="BUY", style=label.style_label_up, color=color.green, textcolor=color.white, yloc=yloc.belowbar) if (sellSignal) label.new(bar_index, high, text="SELL", style=label.style_label_down, color=color.red, textcolor=color.white, yloc=yloc.abovebar) // Creating labels for 100-point movement if (not na(buyEntryPrice_1) and close >= buyEntryPrice_1 + target_1) label.new(bar_index, high, text=str.tostring(target_1), style=label.style_label_down, color=color.green, textcolor=color.white, yloc=yloc.abovebar) buyEntryPrice_1 := na // Reset after label is created if (not na(buyEntryPrice_2) and close >= buyEntryPrice_2 + target_2) label.new(bar_index, high, text=str.tostring(target_2), style=label.style_label_down, color=color.green, textcolor=color.white, yloc=yloc.abovebar) buyEntryPrice_2 := na // Reset after label is created if (not na(sellEntryPrice_1) and close <= sellEntryPrice_1 - target_1) label.new(bar_index, low, text=str.tostring(target_1), style=label.style_label_up, color=color.red, textcolor=color.white, yloc=yloc.belowbar) sellEntryPrice_1 := na // Reset after label is created if (not na(sellEntryPrice_2) and close <= sellEntryPrice_2 - target_2) label.new(bar_index, low, text=str.tostring(target_2), style=label.style_label_up, color=color.red, textcolor=color.white, yloc=yloc.belowbar) sellEntryPrice_2 := na // Reset after label is created