
একটি ব্রেক-টপ ইএমএ ক্রস কৌশল হল একটি ট্রেডিং কৌশল যা একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ মূল্যকে একটি ক্রস হিসাবে এবং ইএমএকে একটি বিক্রয় সংকেত হিসাবে ব্যবহার করে। যখন একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ মূল্য অতিক্রম করে তখন কৌশলটি একটি ক্রয় সংকেত তৈরি করে; যখন একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ মূল্য অতিক্রম করে তখন কৌশলটি একটি বিক্রয় সংকেত তৈরি করে। কৌশলটি ঝুঁকি নিয়ন্ত্রণের জন্য একটি স্টপ লস মূল্যও নির্ধারণ করে। উপরন্তু, কৌশলটি বিভিন্ন ট্রেডিং শৈলী এবং বাজারের পরিবেশের সাথে খাপ খাইয়ে নিতে ব্যবহারকারীর জন্য কাস্টমাইজ করা একাধিক প্যারামিটার সরবরাহ করে।
ব্রেকিং সর্বোচ্চ দামের ইএমএ ক্রস কৌশলটির মূল নীতি হ’ল বাজার প্রবণতা ক্যাপচার করার জন্য দামের ব্রেকিং এবং ইএমএ ক্রস ব্যবহার করা। যখন দাম নির্ধারিত সময়ের মধ্যে সর্বোচ্চ দামকে অতিক্রম করে, তখন বাজারটি সম্ভবত উত্থানের প্রবণতায় প্রবেশ করে, তাই কৌশলটি একটি কেনার সংকেত দেয়। একই সময়ে, ইএমএ একটি প্রবণতা ট্র্যাকিং সূচক হিসাবে কাজ করে, যখন দাম ইএমএ অতিক্রম করে, তখন উত্থানের প্রবণতা শেষ হতে পারে, তাই কৌশলটি একটি বিক্রয় সংকেত দেয়।
এই কৌশলটি নিম্নলিখিত ধাপগুলি ব্যবহার করে লেনদেন করেঃ
উপরের ধাপগুলো অনুসরণ করে, এই কৌশলটি বাজারের উর্ধ্বমুখী প্রবণতা থেকে লাভবান হতে পারে এবং একই সাথে নিম্নমুখী ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস ব্যবহার করতে পারে।
সর্বোচ্চ ইএমএ ক্রস করার কৌশলটির নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
যদিও সর্বোচ্চ ইএমএ ক্রস করার কৌশলটির কিছু সুবিধা রয়েছে, তবে এর সাথে নিম্নলিখিত ঝুঁকিগুলিও রয়েছেঃ
এই ঝুঁকিগুলি হ্রাস করার জন্য, নিম্নলিখিত পদক্ষেপগুলি বিবেচনা করা যেতে পারেঃ
সর্বোচ্চ মূল্যের ইএমএ ক্রস কৌশলকে আরও উন্নত করার জন্য, নিম্নলিখিত অপ্টিমাইজেশান দিকগুলি বিবেচনা করা যেতে পারেঃ
উপরোক্ত অপ্টিমাইজেশনের মাধ্যমে, সর্বোচ্চ মূল্যের ইএমএ ক্রস কৌশলগুলির স্থিতিশীলতা, অভিযোজনযোগ্যতা এবং উপার্জনশীলতা উন্নত করা যেতে পারে, যা তাদের আরও বেশি বাজারের পরিবেশে ভাল পারফরম্যান্স করতে সক্ষম করে।
ব্রেকিং প্রাইস ইএমএ ক্রস কৌশলটি একটি সহজ এবং কার্যকর ট্রেন্ড ট্র্যাকিং কৌশল যা দামের ব্রেকিং এবং ইএমএ ক্রস ব্যবহার করে বাজারের প্রবণতাকে ক্যাপচার করে এবং স্টপ লস ব্যবহার করে নিম্নমুখী ঝুঁকি নিয়ন্ত্রণ করে। কৌশলটির লজিক পরিষ্কার, প্যারামিটারগুলি নমনীয়, বোঝা এবং বাস্তবায়ন করা সহজ। যদিও এই কৌশলটির কিছু ঝুঁকি রয়েছে, যেমন বাজারের ওঠানামা ঝুঁকি, প্রবণতা পরিবর্তন ঝুঁকি এবং প্যারামিটার সেটআপ ঝুঁকি, তবে এই ঝুঁকিগুলি যথাযথ ঝুঁকি নিয়ন্ত্রণের ব্যবস্থা দ্বারা প্রশমিত করা যেতে পারে, যেমন প্যারামিটারগুলি সামঞ্জস্য করা, অন্যান্য সূচকগুলিকে সংযুক্ত করা এবং যুক্তিসঙ্গত স্টপ লস সেট করা ইত্যাদি।
/*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))
//****************************************************************************//