চলমান গড় ক্রসওভার কৌশল একটি খুব ক্লাসিক এবং সাধারণভাবে ব্যবহৃত প্রযুক্তিগত বিশ্লেষণ কৌশল। এই কৌশলটির মূল ধারণাটি হ'ল বিভিন্ন সময়ের চলমান গড়ের মধ্যে ক্রসওভারটি ট্রেডিং সংকেত হিসাবে ব্যবহার করা। যখন স্বল্পমেয়াদী চলমান গড় নীচে থেকে দীর্ঘমেয়াদী চলমান গড়ের উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন স্বল্পমেয়াদী চলমান গড় উপরে থেকে দীর্ঘমেয়াদী চলমান গড়ের নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
এই কৌশলটি গতিশীল গড়ের ধরন (এসএমএ, ইএমএ, ডাব্লুএমএ, আরএমএ) এবং সময়ের পাশাপাশি ব্যাকটেস্টিং সময়সীমা সেট করতে ইনপুট ব্যবহার করে।
বিভিন্ন ধরণের চলমান গড়গুলি ভেরিয়েন্ট ফাংশনে গণনা করা হয়। গণনা করা চলমান গড়টি ma ভেরিয়েবলটিতে সংরক্ষণ করা হয়।
যখন বন্ধের মূল্য MA এর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উৎপন্ন হয়। যখন বন্ধের মূল্য MA এর নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উৎপন্ন হয়।
স্টপ লস সেট করার জন্য, 14 পেরিওড গড় সত্যিকারের পরিসীমা atr গণনা করা হয়। ক্রসওভার পয়েন্টটিকে একটি রেফারেন্স হিসাবে নিন, স্টপ লস পরিসীমা হিসাবে 2 বার atr যোগ করুন বা বিয়োগ করুন।
নির্দিষ্ট প্রবেশ এবং প্রস্থান যুক্তি নিম্নরূপঃ
লং এন্ট্রিঃ ম্যাকের উপরে এবং ব্যাকটেস্টের সময়সীমার মধ্যে ঘনিষ্ঠ ক্রস, স্টপ লস পয়েন্ট এন্ট্রি পয়েন্ট বন্ধ
দীর্ঘ প্রস্থানঃ স্টপ লস প্রস্থানের জন্য মা বিয়োগ 2x atr এর নীচে ক্রসগুলি বন্ধ করুন বা সর্বাধিক মূল্য প্রবেশের পয়েন্ট বন্ধের চেয়ে বেশি এবং লাভের প্রস্থানের জন্য 2x atr বন্ধ করুন
সংক্ষিপ্ত এন্ট্রিঃ ma এর নীচে এবং ব্যাকটেস্টের সময়সীমার মধ্যে বন্ধ ক্রসগুলি বন্ধ করুন, স্টপ লস পয়েন্টটি এন্ট্রি পয়েন্ট বন্ধ করে দেয়
শর্ট আউটঃ স্টপ লস আউট এর জন্য MA এর উপরে ক্রস বন্ধ করুন + 2x atr অথবা এন্ট্রি পয়েন্টের চেয়ে কম সর্বনিম্ন মূল্য বন্ধ করুন - 2x atr এর জন্য লাভ গ্রহণ করুন
ঝুঁকি মোকাবেলা করার জন্য নিম্নলিখিত দিকগুলিতে অপ্টিমাইজেশন করা যেতে পারেঃ
এই কৌশলটি নিম্নলিখিত দিকগুলিতে অনুকূলিত করা যেতে পারেঃ
চলমান গড় ক্রসওভার কৌশল একটি খুব সাধারণ এবং সাধারণভাবে ব্যবহৃত প্রযুক্তিগত বিশ্লেষণ কৌশল। কৌশলটির মূল ধারণাটি সহজ এবং বাস্তবায়ন করা সহজ, বিভিন্ন বাজারের জন্য উপযুক্ত, এবং এটি এন্ট্রি-লেভেল কোয়ান্ট ট্রেডিং কৌশলগুলির মধ্যে একটি। তবে, কৌশলটিতে ঘন ঘন সংকেত উত্পাদন এবং স্টপ লস হওয়ার মতো কিছু সমস্যাও রয়েছে। সঠিক অপ্টিমাইজেশনের সাথে পারফরম্যান্সটি ব্যাপকভাবে উন্নত করা যেতে পারে। সামগ্রিকভাবে, চলমান গড় ক্রসওভার কৌশল কৌশল বিকাশের জন্য একটি খুব ভাল কাঠামো সরবরাহ করে এবং পরিমাণগত ট্রেডিং কৌশল শেখার ভিত্তি।
/*backtest start: 2023-10-03 00:00:00 end: 2023-11-02 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MA Cross Strategy", overlay=true,commission_value = 0.1) type = input(defval = "WMA", title = "MA Type: ", options=["RMA", "SMA", "EMA", "WMA"]) length = input(28) source = close // === INPUT BACKTEST RANGE === FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromYear = input(defval = 2000, title = "From Year", minval = 2000) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(9999, 1, 1, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" variant(type, src, len) => v1 = sma(src, len) // Simple v2 = ema(src, len) // Exponential v5 = wma(src, len) // Weighted v7 = rma(src, len) // Smoothed type=="EMA"?v2 : type=="WMA"?v5 : type=="RMA"?v7 : v1 ma = variant(type,source, length) atr = security(syminfo.tickerid, "D", atr(14)) range = valuewhen(cross(close,ma), (atr*2), na) ep = valuewhen(cross(close,ma), close, na) plot(ma,color=ma>ma[1]?color.blue:color.red,transp=0,linewidth=1) plot(ep,color=#2196f3,transp=100,trackprice=true, offset=-9999) plot(ep+range,color=#2196f3,transp=100,trackprice=true, offset=-9999) plot(ep-range,color=#2196f3,transp=100,trackprice=true, offset=-9999) strategy.entry("Long Entry", true, when = crossover(close,ma) and window() , stop = ep ) strategy.exit("Long Exit", "Long Entry", stop = ep-range) strategy.exit("Long Exit", "Long Entry", when = high > ep+range ,stop = ep[1] ) strategy.entry("Short Entry", false, when = crossunder(close,ma) and window() , stop = ep ) strategy.exit("Short Exit", "Short Entry", stop = ep+range) strategy.exit("Short Exit", "Short Entry", when = low < ep-range ,stop = ep[1] )