এই কৌশলটি ট্রেডিংয়ের পরে স্বয়ংক্রিয় প্রবণতা বাস্তবায়নের জন্য চলমান গড় ক্রসওভার এবং এটিআর সূচক ব্যবহার করে। যখন দ্রুত ইএমএ ধীর ইএমএর উপরে অতিক্রম করে তখন এটি দীর্ঘ হয় এবং যখন দ্রুত ইএমএ ধীর ইএমএর নীচে অতিক্রম করে তখন এটি সংক্ষিপ্ত হয়। একই সাথে, এটি প্রবণতার দিক বিচার করতে এটিআর সূচক ব্যবহার করে এবং কেবল তখনই ট্রেডিং সংকেত প্রেরণ করে যখন এটিআর নির্দেশ করে যে একটি প্রবণতা উপস্থিত রয়েছে।
কৌশলটি মূলত দুটি প্রযুক্তিগত সূচকের উপর ভিত্তি করেঃ
ইএমএ লাইনঃ এটি দ্রুত এবং ধীর, বিভিন্ন পরামিতি সহ দুটি ইএমএ লাইন ব্যবহার করে। যখন দ্রুত ইএমএ ধীর ইএমএর উপরে অতিক্রম করে, এটি একটি দীর্ঘ সংকেত হিসাবে বিবেচিত হয়। যখন দ্রুত ইএমএ ধীর ইএমএর নীচে অতিক্রম করে, এটি একটি সংক্ষিপ্ত সংকেত হিসাবে বিবেচিত হয়।
এটিআর সূচক: বর্তমান গতির প্রবণতা বিচার করার জন্য এটিআর সূচক মূল্যের হ্রাসের মাত্রা এবং শক্তি পরিমাপ করে। ছোট এটিআর মানগুলি একীকরণের ইঙ্গিত দেয় যখন বড় আপগ্রেডিং এটিআর মানগুলি একটি আপট্রেন্ডের পরামর্শ দেয় এবং বড় ডাউনগ্রেডিং এটিআর মানগুলি একটি ডাউনট্রেন্ডের পরামর্শ দেয়।
ট্রেডিংয়ের সুযোগগুলি চিহ্নিত করতে ইএমএ ক্রসওভার এবং কম ট্রেন্ডিংয়ের ব্যবস্থা এড়ানোর জন্য এটিআর ফিল্টারকে একত্রিত করে, কৌশলটি বাজারের অস্থিরতার সময় হুইপসাভ হওয়া এড়ানোর লক্ষ্যে।
এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ
শুধুমাত্র যখন ATR একটি প্রবণতা চিহ্নিত করে তখনই ট্রেডিং করা হয়, যা নন-ডাইরেকশনাল রেজিমগুলির সময় whipsawed হওয়া এড়াতে সহায়তা করে।
ট্রেডিং সিগন্যাল সনাক্ত করতে সহজ দ্রুত বনাম ধীর EMA ক্রসওভার লজিক ব্যবহার করে।
প্যারামিটার সমন্বয়ের মাধ্যমে কাস্টমাইজযোগ্য EMA সংবেদনশীলতা এবং মসৃণতা।
সম্পূর্ণ স্বয়ংক্রিয় ট্রেডিং সিস্টেম মাত্র দুটি সহজ সূচক দিয়ে নির্মিত, সহজেই পাইন এডিটরে বাস্তবায়িত।
চলমান প্যারামিটার tweaking,
নিম্নলিখিত কিছু ঝুঁকি রয়েছেঃ
EMA ক্রসওভারগুলি মিথ্যা সংকেত তৈরি করতে পারে, যা অপ্রয়োজনীয় ক্ষতির দিকে পরিচালিত করে। মসৃণ EMA পরামিতিগুলি সাহায্য করতে পারে।
এটিআর ট্রেন্ড বিচারও ভুল হতে পারে, ট্রেডিংয়ের সুযোগগুলি মিস করতে পারে। এটিআর প্রান্তিক মানগুলি শিথিল করা যেতে পারে।
উচ্চতর সময়সীমার মৌলিক বিষয়গুলি বিবেচনা করা হয় না। বড় সংবাদ ঘটনাগুলি দ্রুত EMA ক্রসওভারগুলি মিস করতে পারে, যা ম্যানুয়াল হস্তক্ষেপের প্রয়োজন।
অপ্টিমাইজেশনের মাধ্যমে এই ঝুঁকিগুলি হ্রাস করা যেতে পারে।
মূল অপ্টিমাইজেশান দিকগুলির মধ্যে রয়েছেঃ
একটি সমন্বিত সিস্টেম তৈরি এবং সংকেত নির্ভুলতা উন্নত করার জন্য অন্যান্য সূচক যোগ করা। উদাহরণ - অতিরিক্ত ক্রয় / oversold ঝুঁকি এড়ানোর জন্য RSI একীভূত।
EMA এবং ATR প্যারামিটার নির্বাচন করা যা নির্দিষ্ট বাজারের জন্য উপযুক্ত।
স্থির স্ট্যাটিক মান ব্যবহারের পরিবর্তে বর্তমান বাজারের অবস্থার উপর ভিত্তি করে সূচকগুলি সামঞ্জস্য করার জন্য মেশিন লার্নিংয়ের মাধ্যমে গতিশীল পরামিতি অপ্টিমাইজেশান বাস্তবায়ন করা।
সামগ্রিকভাবে এটি একটি খুব ব্যবহারিক ট্রেন্ড অনুসরণকারী কৌশল। মাত্র দুটি সূচকের একটি সহজ সমন্বয় দিয়ে, এটি একটি অপেক্ষাকৃত সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে। প্যারামিটার সমন্বয়গুলির মাধ্যমে এটি বিভিন্ন পছন্দ এবং শৈলী সহ ব্যবসায়ীদের সাথে খাপ খাইয়ে নেওয়া যেতে পারে। একই সাথে, আরও সম্প্রসারণ এবং অপ্টিমাইজেশন কৌশল কর্মক্ষমতা আরও ভাল করতে পারে। শক্তিশালী অপ্টিমাইজেশান সম্ভাবনার সাথে যুক্ত সহজ তবে কার্যকর ট্রেডিং যুক্তি এটিকে দীর্ঘমেয়াদে গবেষণা এবং প্রয়োগের জন্য একটি মূল্যবান পরিমাণগত কৌশল করে তোলে।
/*backtest start: 2022-12-05 00:00:00 end: 2023-12-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This strategy has been created for GMT trade 4h by Zhukov //@version=5 strategy('ZhukovTrade', overlay=true, calc_on_every_tick=true, currency=currency.USD) // INPUT: // Options to enter fast and slow Exponential Moving Average (EMA) values emaFast = input.int(title='Fast EMA', defval=100, minval=1, maxval=9999) emaSlow = input.int(title='Slow EMA', defval=200, minval=1, maxval=9999) // Option to select trade directions tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Both') // Options that configure the backtest date range startDate = input(title='Start Date', defval=timestamp('01 Jan 2023 00:00')) endDate = input(title='End Date', defval=timestamp('31 Dec 2023 23:59')) // CALCULATIONS: // Use the built-in function to calculate two EMA lines fastEMA = ta.ema(close, emaFast) slowEMA = ta.ema(close, emaSlow) emapos = ta.ema(close,200) // PLOT: // Draw the EMA lines on the chart plot(series=fastEMA, color=color.new(color.orange, 0), linewidth=2) plot(series=slowEMA, color=color.new(color.blue, 0), linewidth=2) plot(series=emapos, color=color.new(color.red, 0), linewidth=2) // CONDITIONS: // Check if the close time of the current bar falls inside the date range inDateRange = true // Translate input into trading conditions longOK = tradeDirection == 'Long' or tradeDirection == 'Both' shortOK = tradeDirection == 'Short' or tradeDirection == 'Both' // Decide if we should go long or short using the built-in functions longCondition = ta.crossover(fastEMA, slowEMA) shortCondition = ta.crossunder(fastEMA, slowEMA) // ORDERS: // Set take profit and stop loss percentages take_profit_percent = input(0, title="Take Profit Percent") stop_loss_percent = input(0, title="Stop Loss Percent") // Submit entry (or reverse) orders atrPeriod = input(12, "ATR Length") factor = input.float(3.0, "Factor", step = 0.01) [supertrend, direction] = ta.supertrend(factor, atrPeriod) bodyMiddle = plot((open + close) / 2, display=display.none) upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr) downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr) fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false) fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false) if longCondition and inDateRange if longOK and direction<0 strategy.entry(id='long', direction=strategy.long, alert_message = "LONG") if shortCondition and inDateRange if shortOK and direction>0 strategy.entry(id='short', direction=strategy.short, alert_message = "SHORT") // Submit exit orders in the cases where we trade only long or only short if strategy.position_size > 0 and take_profit_percent strategy.exit(id='tp long',from_entry ="long",profit = take_profit_percent) if strategy.position_size > 0 and stop_loss_percent strategy.exit(id='sl long',from_entry="long",loss=stop_loss_percent) if strategy.position_size < 0 and stop_loss_percent strategy.exit(id='sl short',from_entry="short",loss=stop_loss_percent) if strategy.position_size < 0 and take_profit_percent strategy.exit(id='tp short',from_entry="short",profit = take_profit_percent)