
এই নিবন্ধে একটি গতিশীল ব্রেকিং ট্রেডিং কৌশল সম্পর্কে আলোচনা করা হয়েছে। এই কৌশলটি একটি K-লাইন মোডের উপর ভিত্তি করে তৈরি করা হয়েছে। এই কৌশলটি ক্যানন মোড সনাক্ত করে বাজার প্রবণতা এবং প্রবেশের সময় নির্ধারণ করে।
গতিবিধি ব্রেকআউট কৌশলটি মূলত সম্ভাব্য বিপরীত সংকেতগুলি বিচার করে, মাল্টি-হেড গ্রাস মোড বা এয়ার-গ্রাস মোড সনাক্ত করে খেলায় প্রবেশ করে। সংকেত সনাক্ত করার পরে, দ্রুত প্রবণতা অনুসরণ করুন এবং অতিরিক্ত উপার্জন করুন।
গতিবিধি ভেঙে ফেলার কৌশলটির মূল বিচারের যুক্তিটি গ্রাসের ফর্ম্যাটগুলি সনাক্ত করার উপর ভিত্তি করে, যা দুটি ধরণেরঃ মাল্টি-হেড গ্রাস এবং খালি-হেড গ্রাস।
মাল্টি হেড গ্রাস হল সেই দিনের ক্লোজ-অফ মূল্য যা ওপেন-অফ মূল্যের চেয়ে বেশি এবং শেষের K লাইনের ক্লোজ-অফ মূল্য যা ওপেন-অফ মূল্যের চেয়ে কম। এই রূপটি সাধারণত বাজারের মেজাজের পরিবর্তনের পূর্বাভাস দেয়, মাল্টি-স্পেস মানসিক বিপরীত হয়, তাই উপযুক্ত ফিক্সিংয়ের জন্য এটি একটি ভাল সময়।
খালি মাথা গ্রাস করা হল বহু মাথা গ্রাসের বিপরীত, যার অর্থ হল যে দিনটির বন্ধের মূল্য খোলার দামের চেয়ে কম এবং উপরের K লাইনের বন্ধের দামটি উপরের K লাইনের খোলার দামের চেয়ে বেশি। এটিও বাজারের মেজাজের পরিবর্তনের ইঙ্গিত দেয় এবং তাই খালি মাথা হস্তক্ষেপের সুযোগ।
ডায়নামিক ব্রেকিং কৌশলগুলি গ্রাসের ধরণগুলি সনাক্ত করার পরে দ্রুত পজিশন স্থাপন করে, অতিরিক্ত লিভারেজ অর্জন করে এবং সম্ভাব্য বিপরীত প্রবণতা অনুসরণ করে। তদতিরিক্ত, কৌশলগুলি গতিশীলভাবে স্টপ লস এবং স্টপ লসকে সামঞ্জস্য করে, মুনাফা নিশ্চিত করার সময় কঠোরভাবে ঝুঁকি নিয়ন্ত্রণ করে।
ঝুঁকির উপর ভিত্তি করে, নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজেশন করা যেতে পারেঃ
গতিশীলতা বিভাজন কৌশলগুলি নিম্নলিখিত মাত্রাগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
মাল্টি ফ্যাক্টর যাচাইকরণ গড় রেখা, ওল্ট্রো রেট ইত্যাদির মতো সূচকগুলি যোগ করা যেতে পারে যাচাইকরণ সংকেতকে নিশ্চিত করার জন্য, সংকেতের নির্ভরযোগ্যতা নিশ্চিত করতে।
মার্কেট মনোবিজ্ঞানের সাথে আবেগের সমন্বয় মার্কেটের আতঙ্কের সূচক, লোভের সূচক ইত্যাদির মতো আবেগের মূল্যায়ন সূচকগুলির সাথে একত্রিত হয়ে বাজারটি কখন উল্টে যায় তা আরও সঠিকভাবে নির্ধারণ করতে পারে।
স্টপ লস কৌশল অপ্টিমাইজ করুন মুনাফা লক করার জন্য মোবাইল স্টপ লস, গ্র্যাডিয়েন্ট স্টপ লস এবং মোবাইল স্টপ লস ব্যবহার করা যেতে পারে, যা প্রত্যাহারের ঝুঁকি হ্রাস করে।
আলগোরিদিম ট্রেডিং মেশিন লার্নিং এবং অন্যান্য অ্যালগরিদম মডেলগুলি ট্রেডিং সিগন্যালগুলি বিচার করতে এবং কৌশলগুলিকে স্বয়ংক্রিয় করতে সহায়তা করতে পারে।
গতিবিধি ব্রেকআউট কৌশল সামগ্রিকভাবে একটি তুলনামূলকভাবে সাধারণ বিপরীতমুখী কৌশল। এটি গুরুত্বপূর্ণ কে-লাইন সংকেতগুলি ক্যাপচার করে, দ্রুত বিচার করে এবং বাজারের প্রবণতা অনুসরণ করে বিপরীতমুখী। যদিও এখনও কিছু ঝুঁকি রয়েছে, তবে বিভিন্ন উপায়ে কার্যকরভাবে অপ্টিমাইজ করা যেতে পারে, উপার্জনের ঝুঁকির তুলনায় যুক্তিসঙ্গত ব্যাপ্তিতে নিয়ন্ত্রণ করা হয়, যা সক্রিয়ভাবে অগ্রগামী বিনিয়োগকারীদের জন্য উপযুক্ত।
/*backtest
start: 2022-11-27 00:00:00
end: 2023-11-09 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title = "MomGulfing", shorttitle = "MomGulfing", overlay = true, initial_capital=10000, pyramiding=3, calc_on_order_fills=false, calc_on_every_tick=false, currency="USD", default_qty_type=strategy.cash, default_qty_value=1000, commission_type=strategy.commission.percent, commission_value=0.04)
syear = input(2021)
smonth = input(1)
sday = input(1)
fyear = input(2022)
fmonth = input(12)
fday = input(31)
start = timestamp(syear, smonth, sday, 01, 00)
finish = timestamp(fyear, fmonth, fday, 23, 59)
date = time >= start and time <= finish ? true : false
longs = input(true)
shorts = input(true)
rr = input(2.5)
position_risk_percent = input(1)/100
signal_bar_check = input.string(defval="3", options=["1", "2", "3"])
margin_req = input(80)
sl_increase_factor = input(0.2)
tp_decrease_factor = input(0.0)
check_for_volume = input(true)
var long_sl = 0.0
var long_tp = 0.0
var short_sl = 0.0
var short_tp = 0.0
var long_lev = 0.0
var short_lev = 0.0
initial_capital = strategy.equity
position_risk = initial_capital * position_risk_percent
bullishEngulfing_st = close[1] < open[1] and close > open and high[1] < close and (check_for_volume ? volume[1]<volume : true)
bullishEngulfing_nd = close[2] < open[2] and close[1] > open[1] and close > open and high[2] > close[1] and high[2] < close and (check_for_volume ? volume[2]<volume : true)
bullishEngulfing_rd = close[3] < open[3] and close[2] > open[2] and close[1] > open[1] and close > open and high[3] > close[2] and high[3] > close[1] and high[3] < close and (check_for_volume ? volume[3]<volume : true)
bullishEngulfing = signal_bar_check == "1" ? bullishEngulfing_st : signal_bar_check == "2" ? bullishEngulfing_st or bullishEngulfing_nd : bullishEngulfing_st or bullishEngulfing_nd or bullishEngulfing_rd
long_stop_level = bullishEngulfing_st ? math.min(low[1], low) : bullishEngulfing_nd ? math.min(low[2], low[1], low) : bullishEngulfing_rd ? math.min(low[3], low[2], low[1], low) : na
rr_amount_long = close-long_stop_level
long_exit_level = close + rr*rr_amount_long
long_leverage = math.floor(margin_req/math.floor((rr_amount_long/close)*100))
bearishEngulfing_st = close[1] > open[1] and close < open and low[1] > close and (check_for_volume ? volume[1]<volume : true)
bearishEngulfing_nd = close[2] > open[2] and close[1] < open[1] and close < open and low[2] < close[1] and low[2] > close and (check_for_volume ? volume[2]<volume : true)
bearishEngulfing_rd = close[3] > open[3] and close[2] < open[2] and close[1] < open[1] and close < open and low[3] < close[2] and low[3] < close[1] and low[3] > close and (check_for_volume ? volume[3]<volume : true)
bearishEngulfing = signal_bar_check == "1" ? bearishEngulfing_st : signal_bar_check == "2" ? bearishEngulfing_st or bearishEngulfing_nd : bearishEngulfing_st or bearishEngulfing_nd or bearishEngulfing_rd
short_stop_level = bearishEngulfing_st ? math.max(high[1], high) : bearishEngulfing_nd ? math.max(high[2], high[1], high) : bearishEngulfing_rd ? math.max(high[3], high[2], high[1], high) : na
rr_amount_short = short_stop_level-close
short_exit_level = close - rr*rr_amount_short
short_leverage = math.floor(margin_req/math.floor((rr_amount_short/short_stop_level)*100))
long = longs and date and bullishEngulfing
short = shorts and date and bearishEngulfing
bgcolor(long[1] ? color.new(color.teal, 80) : (short[1] ? color.new(color.purple, 80) : na))
if long and strategy.position_size <= 0
long_lev := long_leverage
if short and strategy.position_size >= 0
short_lev := short_leverage
long_pos_size = long_lev * position_risk
long_pos_qty = long_pos_size/close
short_pos_size = short_lev * position_risk
short_pos_qty = short_pos_size/close
if long
if strategy.position_size <= 0
long_sl := long_stop_level
long_tp := long_exit_level
else if strategy.position_size > 0
long_sl := long_stop_level + sl_increase_factor*rr_amount_long
long_tp := long_exit_level - tp_decrease_factor*rr_amount_long
strategy.entry("L"+str.tostring(long_lev)+"X", strategy.long, qty=long_pos_qty)
label_text = str.tostring(long_lev)+"X\nSL:"+str.tostring(long_sl)+"\nTP:"+str.tostring(long_tp)
label.new(bar_index+1, na, text=label_text, color=color.green, style=label.style_label_up, xloc=xloc.bar_index, yloc=yloc.belowbar)
else if short
if strategy.position_size >= 0
short_sl := short_stop_level
short_tp := short_exit_level
else if strategy.position_size < 0
short_sl := short_stop_level - sl_increase_factor*rr_amount_short
short_tp := short_exit_level + tp_decrease_factor*rr_amount_short
strategy.entry("S"+str.tostring(short_lev)+"X", strategy.short, qty=short_pos_qty)
label_text = str.tostring(short_lev)+"X\nSL:"+str.tostring(short_sl)+"\nTP:"+str.tostring(short_tp)
label.new(bar_index+1, na, text=label_text, color=color.red, style=label.style_label_down, xloc=xloc.bar_index, yloc=yloc.abovebar)
if (strategy.position_size > 0)
strategy.exit(id="L TP/SL", stop=long_sl, limit=long_tp)
if (strategy.position_size < 0)
strategy.exit(id="S TP/SL", stop=short_sl, limit=short_tp)
sl_level = strategy.position_size > 0 ? long_sl : strategy.position_size < 0 ? short_sl : na
plot(sl_level, color=color.red, style=plot.style_linebr)
tp_level = strategy.position_size > 0 ? long_tp : strategy.position_size < 0 ? short_tp : na
plot(tp_level, color=color.green, style=plot.style_linebr)