10EMA ডাবল ক্রস ট্রেন্ড অনুসরণ করার কৌশল


সৃষ্টির তারিখ: 2023-12-29 16:03:55 অবশেষে সংশোধন করুন: 2023-12-29 16:03:55
অনুলিপি: 1 ক্লিকের সংখ্যা: 807
1
ফোকাস
1621
অনুসারী

10EMA ডাবল ক্রস ট্রেন্ড অনুসরণ করার কৌশল

ওভারভিউ

এই কৌশলটি একটি 10 ইএমএ এবং 50 ইএমএ ডাবল ক্রস-ভিত্তিক প্রবণতা ট্র্যাকিং কৌশল। এটি ঘন্টা লাইনের 10 ইএমএকে সহযোগিতামূলক রায় হিসাবে সংযুক্ত করে, বাউয়ার বিয়ারের পরিবর্তিত বাজারে প্রবণতার দিকটি গতিশীলভাবে খুঁজে বের করে, স্বয়ংক্রিয়ভাবে স্টপ ট্র্যাকিংয়ের জন্য।

কৌশল নীতি

কৌশলটির কেন্দ্রীয় যুক্তিটি 10 ইএমএ এবং 50 ইএমএর গোল্ডেন ফোর্কের উপর ভিত্তি করে। বিশেষত, যখন 10 ইএমএ নীচে থেকে 50 ইএমএর গোল্ডেন ফোর্কটি অতিক্রম করে, তখন ট্রেডটি একটি উচ্চতর প্রবণতাতে প্রবেশ করে; যখন 10 ইএমএ নীচে থেকে 50 ইএমএর গোল্ডেন ফোর্কটি অতিক্রম করে, তখন ট্রেডটি একটি নিম্নমুখী প্রবণতাতে প্রবেশ করে।

গোল্ডফোর্ক ডাইফোর্কের পরে 1-5 কে লাইনের মধ্যে অবস্থান খোলার জন্য অতিরিক্ত খালি করুন। উপরন্তু, কৌশলটি ঘন্টা লাইনের 10 ইএমএকে সহায়ক বিচার হিসাবে প্রবর্তন করে, যখন ঘন্টা লাইনের 10 ইএমএ উত্থানের প্রবণতা থাকে তখনই গোল্ডফোর্কের পরে পজিশন খোলার জন্য এবং যখন ঘন্টা লাইনের 10 ইএমএ পতনের প্রবণতা থাকে তখনই মৃত ফর্কের পরে খালি করা হয়, যাতে কিছু মিথ্যা সংকেতগুলি ফিল্টার করা যায়।

পজিশন খোলার পরে, কৌশলটি স্টপ লস + লিমিট স্টপেজ ট্র্যাকিংয়ের একটি প্রস্থান পদ্ধতি গ্রহণ করে। স্টপ লস ট্র্যাকিং লাভকে লক করতে পারে এবং ব্যবসায়ের লাভজনকতা সর্বাধিক করতে পারে; লিমিট স্টপেজটি নিশ্চিত করে যে যখন দাম লক্ষ্যমাত্রায় পৌঁছে যায় তখন অবস্থানটি বন্ধ করে লাভ করা যায়।

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

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

একক সূচক কৌশলগুলির তুলনায়, এই কৌশলটি প্রবণতার দিকনির্দেশনা এবং প্রশস্ততা আরও সঠিকভাবে নির্ধারণ করতে পারে। প্রচলিত স্টপ লস স্টপগুলির তুলনায়, এই কৌশলটি আরও উন্নত ট্র্যাকিং স্টপ লস প্রযুক্তি ব্যবহার করে, যা লাভকে আরও ভালভাবে লক করতে পারে।

ঝুঁকি বিশ্লেষণ

এই কৌশলটি মূলত অন্তর্বর্তীকালীন whipsaw এবং প্রবণতা বিপরীত হওয়ার ঝুঁকির মুখোমুখি। যখন ক্রমাগত মিথ্যা ক্রস সংকেত উপস্থিত হয়, তখন কৌশলটি arbitrage হতে পারে। এছাড়াও, পজিশন খোলার পরে মূল্য বিপরীত হওয়াও ক্ষতি হতে পারে।

Whipsaw এর ঝুঁকি হ্রাস করার জন্য, কৌশলটি সহায়ক সূচকগুলিতে সংকেত ফিল্টারিং যুক্ত করে। প্রবণতা বিপরীত হওয়ার ঝুঁকি নিয়ন্ত্রণের জন্য, কৌশলটি আরও সহনশীল স্টপ রেঞ্জ ব্যবহার করে, এবং একটি সীমাবদ্ধ মূল্য স্টপ সেটও এই ধরনের ঝুঁকি হ্রাস করতে সহায়তা করে। যখন স্টপটি ট্রিগার করা হয়, তখন ট্রেন্ডের দিকের দিকে ফিরে যাওয়ার বিষয়টি বিবেচনা করা যেতে পারে।

অপ্টিমাইজেশান দিক

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2022-12-22 00:00:00
end: 2023-12-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("10ema Strat 9", overlay=true, format=format.price)
//#region // inputs for candles
//time
t1 = time(timeframe.period,"0930-1500") //last hour of market is not ideal for trading
// candle status
bullish = close > open and barstate.isconfirmed
bearish = open > close and barstate.isconfirmed
bullcandle = ta.valuewhen(bullish, close, 0)
bearcandle = ta.valuewhen(bearish, close, 0)
ema1 = input.int(10, minval=1, title="short ema")
ema2 = input.int(50, minval=1, title="long ema")
ema3 = input.int(200, minval=1, title="hourly 10 ema")
//@variable Input for source
src = input(close, title="Source")
offsetema = input.int(title="Offset", defval=0, minval=-500, maxval=500)
sema = ta.ema(src, ema1)//@variable Input for smaller ema1
lema = ta.ema(src, ema2)//@variable Input for longer ema2
hema = ta.ema(src, ema3)// @variable Input for hourly ema3
bullcrosscount = ta.barssince(ta.crossover(sema,lema)) //@variable Input 10/50 cross higher
bearcrosscount = ta.barssince(ta.crossunder(sema,lema)) //@variable Input 10/50 cross lower
ideallong = bullcrosscount <= 5 //number of candles after the cross
idealshort = bearcrosscount <= 5 //number of candles after the cross

emabull = (sema > lema) and bearish and close > sema and close > hema and ideallong and t1 and barstate.isconfirmed
xemabull = ta.barssince(emabull)
dbullema = emabull and emabull[1] and xemabull <=1
bullentry = if dbullema
    ta.valuewhen(emabull[1], high + 0.05, 0)
else 
    ta.valuewhen(emabull, high + 0.05, 0)
bullentryh = dbullema ? bullentry[1] : bullentry
bullentrylow = ta.valuewhen(emabull, low - 0.05, 0)
bullstop = (bullentryh - bullentrylow) <= 1.00 ? bullentryh - 1.00 : (bullentryh - bullentrylow) <= 10.40 ? bullentrylow : na
bulltarget = (bullentryh - bullstop) * 1.62 + bullentryh

// bear setup
emabear = (sema < lema) and bullish and close < sema and close < hema and idealshort and t1 and barstate.isconfirmed
xemabear = ta.barssince(emabear)
dbearema = emabear and emabear [1] and xemabear <=1
bearentry = if dbearema
    ta.valuewhen(emabear[1], low - 0.05, 0)
else
    ta.valuewhen(emabear, low - 0.05, 0)
bearentryh = dbearema ? bearentry[1] : bearentry
bearentryhigh = ta.valuewhen(emabear, high + 0.05, 0)
bearstop = (bearentryhigh - bearentryh) <= 1.00 ? bearentryh + 1.00 : (bearentryh - bearentryhigh) <= 10.40 ? bearentryhigh : na
beartarget = bearentryh - (bearstop-bearentryh) * 1.62

bullclose = (xemabull <=7) and bullish and bullcrosscount >=1 and barstate.isconfirmed //number of candles for a close above
bearclose = (xemabear <=7) and bearish and bearcrosscount >=1 and barstate.isconfirmed //number of candles for a close below
buyzone = ta.barssince(bullclose)
shortzone =  ta.barssince(bearclose)
idealbuy = close >= bullentryh and bullclose and (buyzone<=7)
idealsell = close <= bearentryh and bearclose and (shortzone<=7)

// // bull setup on chart
// if sema > lema and xemabull < 50
//     var line line_bullentry = line.new(bar_index, na, bar_index + 1, na, color=color.rgb(0, 200, 0), style=line.style_solid, width=1)
//     if emabull
//         line.set_xy1(line_bullentry, x=bar_index, y=bullentryh)
//         line.set_xy2(line_bullentry, x=bar_index, y=bullentryh)
//         alert("EMA-bullish", alert.freq_once_per_bar_close)
//     line.set_x2(line_bullentry, x=bar_index)
//     var line line_bullstop = line.new(bar_index, na, bar_index + 1, na, color=color.rgb(250, 0, 0), style=line.style_solid, width=1)
//     if emabull
//         line.set_xy1(line_bullstop, x=bar_index, y=bullstop)
//         line.set_xy2(line_bullstop, x=bar_index, y=bullstop)
//     line.set_x2(line_bullstop, x=bar_index)    
//     var line line_bulltarget = line.new(bar_index, na, bar_index + 1, na, color=color.rgb(200, 100, 200), style=line.style_solid, width=1)
//     if emabull
//         line.set_xy1(line_bulltarget, x=bar_index, y=bulltarget)
//         line.set_xy2(line_bulltarget, x=bar_index, y=bulltarget)
//     line.set_x2(line_bulltarget, x=bar_index)

// //bear setup on chart
// if sema < lema and xemabear < 50
//     var line line_bearentry = line.new(bar_index, na, bar_index, na, color=color.rgb(0, 200, 0), style=line.style_solid, width=1)
//     if emabear
//         line.set_xy1(line_bearentry, x=bar_index, y=bearentryh)
//         line.set_xy2(line_bearentry, x=bar_index, y=bearentryh)
//         alert("EMA-bearish", alert.freq_once_per_bar_close)
//     line.set_x2(line_bearentry, x=bar_index)
//     var line line_bearstop = line.new(bar_index, na, bar_index, na, color=color.rgb(250, 0, 0), style=line.style_solid, width=1)
//     if emabear
//         line.set_xy1(line_bearstop, x=bar_index, y=bearstop)
//         line.set_xy2(line_bearstop, x=bar_index, y=bearstop)
//     line.set_x2(line_bearstop, x=bar_index)
//     var line line_beartarget = line.new(bar_index, na, bar_index, na, color=color.rgb(200, 100, 200), style=line.style_solid, width=1)
//     if emabear
//         line.set_xy1(line_beartarget, x=bar_index, y=beartarget)
//         line.set_xy2(line_beartarget, x=bar_index, y=beartarget)
//     line.set_x2(line_beartarget, x=bar_index)

//#endregion
//execution 
if idealbuy
    strategy.close("sell", comment=na)	
    strategy.entry("buy", strategy.long, limit=bullentryh, stop=bullstop, comment="buy")
strategy.exit("exit","buy", trail_points = low, trail_offset = 5, qty_percent=100, limit=bulltarget, stop=bullstop)

if idealsell
	strategy.close("buy",comment=na)
    strategy.entry("sell", strategy.short, limit=bearentryh, stop=bearstop, comment="sell")
strategy.exit("exit","sell", trail_points = low, trail_offset = 5, qty_percent=100, limit=beartarget, stop=bearstop)
// strategy.close_all(time == close_day) 
//#region // graphical analysis
//Plots
plotshape(emabull, location=location.belowbar, title='emabull')
plotshape(idealbuy, style=shape.circle, color=color.green, title="bull close")
plotshape(emabear, title='emabear')
plotshape(idealsell, location=location.belowbar, style=shape.circle, color=color.red, title="bear close")

// //Dashboard
// var label id = na
// label.delete(id)   // Delete last label
// i_offsetLabel = input(15, "Data Dashboard Offset") 
// offset = i_offsetLabel * (time - time[1])
// dynamicText = "= Bull Setup ="
// id := label.new(x=time + offset, y=open, xloc=xloc.bar_time, text=dynamicText, color=color.rgb(255, 255, 255), size=size.normal)
// label.set_textcolor(id, color.rgb(0, 0, 0))
// label.set_text(id=id, text=dynamicText)
// label.set_textalign(id, text.align_left)
// label.set_text(id=id, text=dynamicText)
// f_round( _val, _decimals) => 
//     _p = math.pow(10, _decimals)
//     math.round(math.abs(_val) * _p) / _p * math.sign(_val)
// dynamicText := dynamicText + "\n" + str.tostring(f_round(bulltarget,2)) + "  :Target"
// label.set_text(id=id, text=dynamicText)
// dynamicText := dynamicText + "\n" + str.tostring(f_round(bullentryh,2)) + "  :Entry"
// label.set_text(id=id, text=dynamicText)
// dynamicText := dynamicText + "\n" + str.tostring(f_round(bullstop,2)) + "  :Stop"
// label.set_text(id=id, text=dynamicText)
// dynamicText := dynamicText + "\n"
// label.set_text(id=id, text=dynamicText)
// dynamicText := dynamicText + "\n" + "= Bear Setup ="
// label.set_text(id=id, text=dynamicText)
// dynamicText := dynamicText + "\n" + str.tostring(f_round(bearstop,2)) + "  :Stop"
// label.set_text(id=id, text=dynamicText)
// dynamicText := dynamicText + "\n" + str.tostring(f_round(bearentryh,2)) + "  :Entry"
// label.set_text(id=id, text=dynamicText)
// dynamicText := dynamicText + "\n" + str.tostring(f_round(beartarget,2)) + "  :Target"
// label.set_text(id=id, text=dynamicText)
// //#endregion