ব্রেকহাই ইএমএ ক্রসওভার কৌশল হ'ল মূল্য ব্রেকআউট এবং এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) ক্রসওভারের উপর ভিত্তি করে একটি ট্রেডিং কৌশল। কৌশলটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ মূল্যকে কেনার সংকেত হিসাবে এবং ইএমএকে বিক্রয় সংকেত হিসাবে ব্যবহার করে। যখন নির্দিষ্ট সময়ের মধ্যে বন্ধের দাম সর্বোচ্চ মূল্যের উপরে ভেঙে যায়, তখন কৌশলটি একটি ক্রয় সংকেত উত্পন্ন করে। যখন বন্ধের দাম ইএমএর নীচে পড়ে, তখন কৌশলটি বিক্রয় সংকেত উত্পন্ন করে। কৌশলটি ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ-লস মূল্যও সেট করে। অতিরিক্তভাবে, কৌশলটি ব্যবহারকারীদের বিভিন্ন ট্রেডিং স্টাইল এবং বাজারের অবস্থার সাথে খাপ খাইয়ে নেওয়ার জন্য একাধিক পরামিতি সরবরাহ করে।
ব্রেকহাই ইএমএ ক্রসওভার কৌশলটির মূল নীতি হ'ল দামের ব্রেকআউট এবং ইএমএ ক্রসওভার ব্যবহার করে বাজারের প্রবণতা ক্যাপচার করা। যখন নির্দিষ্ট সময়ের মধ্যে দাম সর্বোচ্চ দামের উপরে ভেঙে যায়, তখন এটি নির্দেশ করে যে বাজারটি একটি আপট্রেন্ডে প্রবেশ করতে পারে, তাই কৌশলটি একটি ক্রয় সংকেত উত্পন্ন করে। একই সাথে, ইএমএ একটি প্রবণতা অনুসরণকারী সূচক হিসাবে কাজ করে। যখন দাম ইএমএর নীচে পড়ে, এটি নির্দেশ করে যে আপট্রেন্ডটি শেষ হতে পারে, তাই কৌশলটি একটি বিক্রয় সংকেত উত্পন্ন করে।
কৌশলটি ট্রেডিং বাস্তবায়নের জন্য নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করেঃ
উপরের পদক্ষেপগুলির মাধ্যমে, কৌশলটি বাজারের ক্রমবর্ধমান প্রবণতা থেকে লাভবান হতে পারে যখন ডাউনসাইড ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ-লস ব্যবহার করে।
BreakHigh EMA ক্রসওভার কৌশল নিম্নলিখিত সুবিধাগুলি আছেঃ
যদিও BreakHigh EMA ক্রসওভার স্ট্র্যাটেজিতে কিছু সুবিধা রয়েছে, এতে নিম্নলিখিত ঝুঁকিও রয়েছেঃ
এই ঝুঁকি কমাতে, নিম্নলিখিত ব্যবস্থা বিবেচনা করা যেতে পারেঃ
ব্রেকহাই ইএমএ ক্রসওভার স্ট্র্যাটেজির পারফরম্যান্স আরও উন্নত করার জন্য নিম্নলিখিত অপ্টিমাইজেশান দিক বিবেচনা করা যেতে পারেঃ
উপরের অপ্টিমাইজেশান ব্যবস্থাগুলির মাধ্যমে, ব্রেকহাই ইএমএ ক্রসওভার কৌশলটির স্থিতিশীলতা, অভিযোজনযোগ্যতা এবং লাভজনকতা উন্নত করা যেতে পারে, যা এটিকে আরও বেশি বাজারের পরিবেশে ভাল পারফরম্যান্স অর্জন করতে সক্ষম করে।
ব্রেকহাই ইএমএ ক্রসওভার কৌশল একটি সহজ এবং কার্যকর প্রবণতা-পরবর্তী কৌশল যা বাজারের প্রবণতাগুলিকে ক্যাপচার করে দামের ব্রেকআউট এবং ইএমএ ক্রসওভার ব্যবহার করে ডাউনসাইড ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ-লস ব্যবহার করে। কৌশল যুক্তি পরিষ্কার, পরামিতিগুলি নমনীয় এবং এটি বোঝা এবং বাস্তবায়ন করা সহজ। যদিও কৌশলটির নির্দিষ্ট ঝুঁকি রয়েছে, যেমন বাজারের অস্থিরতা ঝুঁকি, প্রবণতা বিপরীত ঝুঁকি এবং প্যারামিটার সেটিং ঝুঁকি, এই ঝুঁকিগুলি যথাযথ ঝুঁকি নিয়ন্ত্রণ ব্যবস্থাগুলির মাধ্যমে প্রশমিত করা যেতে পারে, যেমন প্যারামিটারগুলি সামঞ্জস্য করা, অন্যান্য সূচকগুলির সাথে একত্রিত করা এবং যুক্তিসঙ্গত স্টপ-লস সেট করা। তদতিরিক্ত, কৌশলটির আরও অপ্টিমাইজেশন স্পেস রয়েছে, যেমন গতিশীল প্যারামিটার সমন্বয়, দীর্ঘ-স্বল্প-হ্রাস প্রক্রিয়া প্রবর্তন করা, স্টপ-লস এবং লাভ গ্রহণের অনুকূলকরণ করা, এবং কৌশলটির কার্যকারিতা এবং অভিযোজনযোগ্যতা
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version = 5 strategy(title="BreakHigh Strategy", overlay=true) Period = input.int(34, "Number of previous bars(34,52 Recommend)") showbg = input(defval = false,title = "Show BackGround Color") showema = input(defval = true ,title = "Show Line") MarkBuySig = input(defval = true ,title = "Show Buy/Sell Signal") Risk_Per_Trade = input(2.5, '% of Risk Per Trade') / 100 // Risk% Per Trade Switch SLDAY = input(title='Lowest price of the previous number of bars', defval=9) Buysig = input(defval=true, title='Start Strategy') UseSl = input(defval=false, title='Use Stoploss Price') Compound = input(defval = false ,title = "Compound Profit") xtf = input.timeframe(title='** Fix chart to which time frame ? **)', defval='D') //BUY float buyLine = na buyLine := ta.highest(high,Period)[1] plot(showema ? buyLine : na, linewidth=1, style=plot.style_linebr, color=color.new(color.green, 0)) //SELL output = ta.ema(close, Period) show = request.security(syminfo.tickerid, xtf, output) FastL = plot(showema ? show : na, color=color.new(color.white, 0), linewidth=2, title='Slow EMA') //Buy-Sell Signal Green = close > buyLine // Buy Red = close < show // Sell buycond = Green and Green[1] == 0 sellcond = Red and Red[1] == 0 bullish = ta.barssince(buycond) < ta.barssince(sellcond) bearish = ta.barssince(sellcond) < ta.barssince(buycond) buy = bearish[1] and buycond sell = bullish[1] and sellcond plotshape(MarkBuySig ? buy : na, style=shape.labelup, text='Buy Next Bar', textcolor=color.new(color.black, 0), location=location.belowbar, color=color.new(color.green, 0)) plotshape(MarkBuySig ? sell : na, style=shape.labeldown, text='Sell Next Bar', textcolor=color.new(color.black, 0), location=location.abovebar, color=color.new(color.red, 0)) bgcolor(showbg ? bullish ? color.new(color.green,90) : color.new(color.red,90) : na ) // === BACKTEST RANGE === // use_date_range = input(true) FromYear = input.int(defval=2012, title='From Year', minval=1950) FromMonth = input.int(defval=1, title='From Month', minval=1) FromDay = input.int(defval=1, title='From Day', minval=1) ToYear = input.int(defval=9999, title='To Year', minval=1950) ToMonth = input.int(defval=1, title='To Month', minval=1) ToDay = input.int(defval=1, title='To Day', minval=1) in_date_range = use_date_range ? time > timestamp(FromYear, FromMonth, FromDay, 00, 00) and time < timestamp(ToYear, ToMonth, ToDay, 23, 59) : true //****************************************************************************// ////////////////////////////////////////////// // define strategy entry / exit // ////////////////////////////////////////////// //****************************************************************************// // LONG CONDITIONS Select_Long_Condition_1 = close > buyLine // Buy when Have Signal Open_Long_Condition = Select_Long_Condition_1 and strategy.opentrades == 0 //****************************************************************************// // STOP LOSS Price float longSL = na longSL := Open_Long_Condition ? ta.lowest(low, SLDAY)[1] : longSL[1] //****************************************************************************// // Cal StopLoss Long_Entry_Price = close Diff_OPEN_to_SL = math.abs(Long_Entry_Price - longSL) // Exit CONDITIONS Exit_Long_Condition = close < show // Sell when Have Signal //****************************************************************************// // POSITION SIZE CAP strategy.initial_capital = 50000 float portSize = Compound ? strategy.netprofit + strategy.initial_capital : strategy.initial_capital float LossAmoutUnit = portSize * Risk_Per_Trade //50 float PercentSL = ( Diff_OPEN_to_SL / Long_Entry_Price ) * 100 float PositionSize = LossAmoutUnit / Diff_OPEN_to_SL //****************************************************************************// // ENTRY/EXIT if Buysig if Open_Long_Condition and in_date_range strategy.entry('LONG', strategy.long, qty=PositionSize) if Exit_Long_Condition and in_date_range strategy.close('LONG') if close < longSL and UseSl strategy.close('LONG') //****************************************************************************// // PLOT STOP LOSS longPlotSL = strategy.opentrades > 0 and strategy.position_size > 0 ? longSL : na // label.new(bar_index, high, text=str.tostring(longPlotSL),color=color.white, textcolor=color.black) plot(longPlotSL, title="", linewidth=2, style=plot.style_linebr, color=color.new(color.red, 0)) //****************************************************************************//