BreakHigh EMA ক্রসওভার কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৪-০৩-২৯ ১৪ঃ৩৯ঃ২৭
ট্যাগঃ

img

সারসংক্ষেপ

ব্রেকহাই ইএমএ ক্রসওভার কৌশল হ'ল মূল্য ব্রেকআউট এবং এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) ক্রসওভারের উপর ভিত্তি করে একটি ট্রেডিং কৌশল। কৌশলটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ মূল্যকে কেনার সংকেত হিসাবে এবং ইএমএকে বিক্রয় সংকেত হিসাবে ব্যবহার করে। যখন নির্দিষ্ট সময়ের মধ্যে বন্ধের দাম সর্বোচ্চ মূল্যের উপরে ভেঙে যায়, তখন কৌশলটি একটি ক্রয় সংকেত উত্পন্ন করে। যখন বন্ধের দাম ইএমএর নীচে পড়ে, তখন কৌশলটি বিক্রয় সংকেত উত্পন্ন করে। কৌশলটি ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ-লস মূল্যও সেট করে। অতিরিক্তভাবে, কৌশলটি ব্যবহারকারীদের বিভিন্ন ট্রেডিং স্টাইল এবং বাজারের অবস্থার সাথে খাপ খাইয়ে নেওয়ার জন্য একাধিক পরামিতি সরবরাহ করে।

কৌশল নীতি

ব্রেকহাই ইএমএ ক্রসওভার কৌশলটির মূল নীতি হ'ল দামের ব্রেকআউট এবং ইএমএ ক্রসওভার ব্যবহার করে বাজারের প্রবণতা ক্যাপচার করা। যখন নির্দিষ্ট সময়ের মধ্যে দাম সর্বোচ্চ দামের উপরে ভেঙে যায়, তখন এটি নির্দেশ করে যে বাজারটি একটি আপট্রেন্ডে প্রবেশ করতে পারে, তাই কৌশলটি একটি ক্রয় সংকেত উত্পন্ন করে। একই সাথে, ইএমএ একটি প্রবণতা অনুসরণকারী সূচক হিসাবে কাজ করে। যখন দাম ইএমএর নীচে পড়ে, এটি নির্দেশ করে যে আপট্রেন্ডটি শেষ হতে পারে, তাই কৌশলটি একটি বিক্রয় সংকেত উত্পন্ন করে।

কৌশলটি ট্রেডিং বাস্তবায়নের জন্য নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করেঃ

  1. নির্ধারিত সময়ের মধ্যে সর্বোচ্চ মূল্যকে ব্রেকআউট ক্রয় মূল্য হিসেবে গণনা করা হবে।
  2. বিক্রয় সংকেত হিসাবে EMA গণনা করুন।
  3. যখন বন্ধের মূল্য ক্রয়ের মূল্যের উপরে ভেঙে যায়, যদি কোনও বর্তমান অবস্থান না থাকে, তখন কৌশলটি একটি ক্রয় সংকেত তৈরি করে।
  4. যখন বন্ধের মূল্য EMA এর নিচে পড়ে, যদি একটি বর্তমান অবস্থান থাকে, তখন কৌশলটি একটি বিক্রয় সংকেত উৎপন্ন করে।
  5. নির্দিষ্ট সময়ের মধ্যে সর্বনিম্ন মূল্যকে স্টপ-লস মূল্য হিসেবে গণনা করা হবে।
  6. যদি মূল্য স্টপ লস মূল্যের নিচে পড়ে, তাহলে কৌশলটি অবিলম্বে অবস্থান বন্ধ করে দেয়।

উপরের পদক্ষেপগুলির মাধ্যমে, কৌশলটি বাজারের ক্রমবর্ধমান প্রবণতা থেকে লাভবান হতে পারে যখন ডাউনসাইড ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ-লস ব্যবহার করে।

কৌশলগত সুবিধা

BreakHigh EMA ক্রসওভার কৌশল নিম্নলিখিত সুবিধাগুলি আছেঃ

  1. ট্রেন্ড ট্র্যাকিংঃ এই কৌশলটি বাজারের প্রবণতা ধরে রাখার জন্য মূল্য ব্রেকআউট এবং ইএমএ ক্রসওভার ব্যবহার করে এবং আপট্রেন্ড থেকে লাভ করতে পারে।
  2. ঝুঁকি নিয়ন্ত্রণঃ কৌশলটি ডাউনসাইড ঝুঁকি নিয়ন্ত্রণের জন্য একটি স্টপ-লস মূল্য ব্যবহার করে, যা কার্যকরভাবে কৌশলটির সর্বাধিক ড্রাউনডাউন হ্রাস করতে পারে।
  3. প্যারামিটার নমনীয়তাঃ কৌশলটি ব্যবহারকারীদের জন্য সময়কাল, ঝুঁকি অনুপাত, স্টপ-লস ইত্যাদির মতো কাস্টমাইজ করার জন্য একাধিক প্যারামিটার সরবরাহ করে, যা বিভিন্ন ট্রেডিং স্টাইল এবং বাজারের অবস্থার সাথে সামঞ্জস্য করা যায়।
  4. সহজ এবং কার্যকরঃ কৌশল যুক্তি সহজ এবং স্পষ্ট, সহজেই বোঝা এবং বাস্তবায়ন করা যায় এবং ট্রেন্ডিং বাজারে ভাল রিটার্ন অর্জন করতে পারে।

কৌশলগত ঝুঁকি

যদিও BreakHigh EMA ক্রসওভার স্ট্র্যাটেজিতে কিছু সুবিধা রয়েছে, এতে নিম্নলিখিত ঝুঁকিও রয়েছেঃ

  1. বাজারের অস্থিরতার ঝুঁকিঃ বাজারের উচ্চ অস্থিরতার ক্ষেত্রে, কৌশলটি আরও মিথ্যা সংকেত তৈরি করতে পারে, যা ঘন ঘন ট্রেডিং এবং মূলধন ক্ষতির দিকে পরিচালিত করে।
  2. প্রবণতা বিপরীত হওয়ার ঝুঁকিঃ যখন বাজারের প্রবণতা বিপরীত হয়, তখন কৌশলটি বিক্রয় বিলম্বিত করতে পারে, যার ফলে লাভের পুনরুদ্ধার বা লাভকে ক্ষতিতে পরিণত করতে পারে।
  3. প্যারামিটার সেটিং ঝুঁকিঃ কৌশলটির পারফরম্যান্স প্যারামিটারগুলির নির্ধারণের উপর নির্ভর করে, যেমন সময়কাল, ঝুঁকি অনুপাত ইত্যাদি। যদি প্যারামিটারগুলি ভুলভাবে সেট করা হয় তবে এটি কৌশলটির দুর্বল পারফরম্যান্সের দিকে পরিচালিত করতে পারে।

এই ঝুঁকি কমাতে, নিম্নলিখিত ব্যবস্থা বিবেচনা করা যেতে পারেঃ

  1. পরামিতিগুলি যথাযথভাবে সামঞ্জস্য করুনঃ বিভিন্ন বাজার পরিস্থিতি এবং ট্রেডিং সরঞ্জাম অনুসারে, মিথ্যা সংকেত এবং ঘন ঘন ট্রেডিং হ্রাস করার জন্য কৌশল পরামিতিগুলি যথাযথভাবে সামঞ্জস্য করুন, যেমন সময়কাল বাড়ানো, ঝুঁকি অনুপাত হ্রাস করা ইত্যাদি।
  2. অন্যান্য সূচকগুলির সাথে সংমিশ্রণঃ প্রবণতা এবং সংকেতগুলির বৈধতা নিশ্চিত করতে এবং কৌশলটির নির্ভরযোগ্যতা উন্নত করতে অন্যান্য প্রযুক্তিগত সূচকগুলির সাথে সংমিশ্রণ করুন, যেমন আরএসআই, এমএসিডি ইত্যাদি।
  3. যুক্তিসঙ্গত স্টপ-লস সেট করুন: যুক্তিসঙ্গত স্টপ-লস মূল্য সেট করুন, যা ডাউনসাইড ঝুঁকি নিয়ন্ত্রণ করতে পারে এবং খুব তাড়াতাড়ি ক্ষতি বন্ধ করতে পারে না, যার ফলে লাভের সুযোগগুলি মিস করা হয়।

কৌশল অপ্টিমাইজেশান নির্দেশাবলী

ব্রেকহাই ইএমএ ক্রসওভার স্ট্র্যাটেজির পারফরম্যান্স আরও উন্নত করার জন্য নিম্নলিখিত অপ্টিমাইজেশান দিক বিবেচনা করা যেতে পারেঃ

  1. ডায়নামিক প্যারামিটার সমন্বয়ঃ বাজারের অস্থিরতা এবং প্রবণতা শক্তি অনুযায়ী, বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নেওয়ার জন্য কৌশলগত প্যারামিটারগুলিকে গতিশীলভাবে সামঞ্জস্য করুন, যেমন উচ্চ অস্থিরতার সময়কাল বাড়ানো, প্রবণতা শক্তিশালী হলে ঝুঁকি অনুপাত বাড়ানো ইত্যাদি।
  2. লং-শর্ট মেকানিজম প্রবর্তন করুন: মূল লং ট্রেডিংয়ের ভিত্তিতে, ডাউনট্রেন্ড থেকেও মুনাফা অর্জনের জন্য একটি শর্ট ট্রেডিং মেকানিজম প্রবর্তন করুন, কৌশলটির অভিযোজনযোগ্যতা এবং লাভজনকতা উন্নত করুন।
  3. স্টপ-লস এবং টেক-লাভের অপ্টিমাইজেশন করুনঃ ঝুঁকিগুলি আরও ভালভাবে নিয়ন্ত্রণ করতে এবং লাভকে লক করার জন্য স্টপ-লস এবং টেক-লাভের সেটিংটি অপ্টিমাইজ করুন, যেমন ট্রেলিং স্টপ-লস, আংশিক টেক-লাভ ইত্যাদি ব্যবহার করা।
  4. মৌলিক বিশ্লেষণের সাথে একত্রিত করুনঃ সম্ভাব্য বাজার পরিবর্তন মোকাবেলা করার জন্য মূলতান্ত্রিক বিশ্লেষণকে প্রযুক্তিগত বিশ্লেষণের সাথে একত্রিত করুন, যেমন কর্পোরেট লাভের প্রতিবেদন এবং অর্থনৈতিক তথ্য প্রকাশের মতো গুরুত্বপূর্ণ ইভেন্টের আগে এবং পরে কৌশলটির অবস্থান এবং পরামিতিগুলি সামঞ্জস্য করা।

উপরের অপ্টিমাইজেশান ব্যবস্থাগুলির মাধ্যমে, ব্রেকহাই ইএমএ ক্রসওভার কৌশলটির স্থিতিশীলতা, অভিযোজনযোগ্যতা এবং লাভজনকতা উন্নত করা যেতে পারে, যা এটিকে আরও বেশি বাজারের পরিবেশে ভাল পারফরম্যান্স অর্জন করতে সক্ষম করে।

সংক্ষিপ্তসার

ব্রেকহাই ইএমএ ক্রসওভার কৌশল একটি সহজ এবং কার্যকর প্রবণতা-পরবর্তী কৌশল যা বাজারের প্রবণতাগুলিকে ক্যাপচার করে দামের ব্রেকআউট এবং ইএমএ ক্রসওভার ব্যবহার করে ডাউনসাইড ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ-লস ব্যবহার করে। কৌশল যুক্তি পরিষ্কার, পরামিতিগুলি নমনীয় এবং এটি বোঝা এবং বাস্তবায়ন করা সহজ। যদিও কৌশলটির নির্দিষ্ট ঝুঁকি রয়েছে, যেমন বাজারের অস্থিরতা ঝুঁকি, প্রবণতা বিপরীত ঝুঁকি এবং প্যারামিটার সেটিং ঝুঁকি, এই ঝুঁকিগুলি যথাযথ ঝুঁকি নিয়ন্ত্রণ ব্যবস্থাগুলির মাধ্যমে প্রশমিত করা যেতে পারে, যেমন প্যারামিটারগুলি সামঞ্জস্য করা, অন্যান্য সূচকগুলির সাথে একত্রিত করা এবং যুক্তিসঙ্গত স্টপ-লস সেট করা। তদতিরিক্ত, কৌশলটির আরও অপ্টিমাইজেশন স্পেস রয়েছে, যেমন গতিশীল প্যারামিটার সমন্বয়, দীর্ঘ-স্বল্প-হ্রাস প্রক্রিয়া প্রবর্তন করা, স্টপ-লস এবং লাভ গ্রহণের অনুকূলকরণ করা, এবং কৌশলটির কার্যকারিতা এবং অভিযোজনযোগ্যতা


/*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))



//****************************************************************************//



আরো