বহু-সময়সীমার লাভ গ্রহণের কৌশল


সৃষ্টির তারিখ: 2023-10-30 12:02:43 অবশেষে সংশোধন করুন: 2023-10-30 12:02:43
অনুলিপি: 1 ক্লিকের সংখ্যা: 708
1
ফোকাস
1617
অনুসারী

বহু-সময়সীমার লাভ গ্রহণের কৌশল

ওভারভিউ

এই কৌশলটি একাধিক সময় ফ্রেমে স্টপ ম্যানেজমেন্টের লক্ষ্যে তৈরি করা হয়েছে। এই কৌশলটি একই সাথে শতাংশ স্টপ এবং মূল সময় ফ্রেমের উপরে মূল মূল্য অঞ্চল স্টপ ব্যবহার করে, যাতে আরও সুনির্দিষ্ট এবং আরও কার্যকর স্টপ ম্যানেজমেন্ট করা যায়।

কৌশল নীতি

এই কৌশলটি প্রথমে তরঙ্গ প্রবণতা সূচকটি প্রবর্তন করে এবং সূচকটির উপর ভিত্তি করে গোল্ডফর্কে একাধিক সংকেত প্রবেশ করে।

স্টপ ম্যানেজমেন্টের ক্ষেত্রে, এই কৌশলটি দুটি পদ্ধতিতে কাজ করেঃ

  1. শতকরা সীমাবদ্ধতাঃ প্রবেশ মূল্যের নির্দিষ্ট শতাংশের উপর ভিত্তি করে একাধিক সীমাবদ্ধ মূল্য নির্ধারণ করুন।

  2. মাল্টি টাইম ফ্রেম স্টপঃ দৈনিক লাইন এবং 4 ঘন্টা লাইন চার্ট উপর গড় লাইন আঁকা, এবং এই গড় লাইন দাম হিসাবে স্টপ মূল্য নিতে।

শতকরা স্টপ-এর জন্য, কৌশলটি 4 টি বিভিন্ন শতাংশে স্টপ-এর মূল্য নির্ধারণ করে। যখন মূল্য প্রতিটি স্টপ-এর মূল্য স্পর্শ করে, তখন সেট করা শতাংশের উপর ভিত্তি করে অংশটি খালি করা হয়।

একাধিক সময় ফ্রেম স্টপ জন্য, কৌশল দিন লাইন এবং 4 ঘন্টা লাইন উপর যথাক্রমে 100 দিন গড় লাইন, 200 দিন গড় লাইন আঁকা। এই গড় লাইন মূল্য হিসাবে স্টপ মূল্য নিতে, যখন মূল্য স্পর্শ প্লেইন।

এছাড়াও, কৌশলটি একটি স্টপ লস মূল্য নির্ধারণ করে। যখন দামটি স্টপ লস মূল্যের নীচে থাকে, তখন সমস্ত পজিশন খালি থাকে।

এই সমগ্র কৌশলটি শতাংশ এবং বহু-সময়-ফ্রেম স্টপ ব্যবহারের সমন্বয়ে স্টপ ম্যানেজমেন্টকে আরও ব্যাপক এবং সুনির্দিষ্ট করে তোলে।

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

  • শতকরা হিমায়িত হিমায়িত ব্যবহার করুন, নির্দিষ্ট অনুপাত অনুযায়ী হিমায়িত করুন, খুব তাড়াতাড়ি হিমায়িত হওয়া বা অল্প হিমায়িত হওয়া এড়াতে।

  • মাল্টিটাইম ফ্রেম বিশ্লেষণের মাধ্যমে, স্টপ-অফ মূল্য নির্ধারণ করা এবং স্টপ-অফ পয়েন্ট নির্বাচন করা।

  • মাল্টি-লেভেল স্ট্রোক, স্ট্রোকের ঝুঁকি কমাতে বিভিন্ন স্তরে স্ট্রোক করা যায়।

  • স্টপ লস প্রাইস সেট করুন এবং নিচের দিকে ঝুঁকি নিয়ন্ত্রণ করুন।

  • শতকরা স্ট্রিং এবং মাল্টি টাইম ফ্রেম স্ট্রিংয়ের সমন্বয়, স্ট্রিং আরও ব্যাপক এবং সুনির্দিষ্ট।

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

  • শতকরা হারটি প্যারামিটার সেটিংয়ের উপর নির্ভর করে, যদি প্যারামিটারটি ভুলভাবে সেট করা হয় তবে এটি খুব তাড়াতাড়ি বা খুব দেরিতে থামতে পারে।

  • মাল্টিটাইম ফ্রেম বিশ্লেষণ গড়রেখার উপর নির্ভর করে, গড়রেখার কিছুটা পিছিয়ে রয়েছে, এটি বিপরীত হতে পারে।

  • ভুলভাবে স্টপ সেট করলে অপ্রয়োজনীয় ক্ষতি হতে পারে।

  • সঠিকভাবে অনুকূলিতকরণের পরামিতি প্রয়োজন, যাতে শতাংশ স্টপ এবং মাল্টি-টাইম ফ্রেম স্টপ সর্বোত্তম মিল হয়।

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

  • আপনি আরো গড় পরিমাপ পরীক্ষা করতে পারেন, এবং একটি ভাল গড় পরিমাপ হিসাবে একটি সমালোচনামূলক স্টপ মূল্য নির্বাচন করতে পারেন।

  • মডেল ভবিষ্যদ্বাণী পদ্ধতির চেষ্টা করা যেতে পারে, যা মূল্যের গুরুত্বপূর্ণ অঞ্চলগুলিকে স্টপ-অফ মূল্য হিসাবে পূর্বাভাস দেয়।

  • আরও কিছু স্টপিং নিয়ম যেমন, প্রত্যাশিত স্টপিং অনুপাত, সরানো স্টপিং ইত্যাদি চালু করা যেতে পারে, যাতে স্টপিং আরও ব্যাপক হয়।

  • বিভিন্ন পজিশনের জন্য সর্বোত্তম শতাংশ বন্ধের পরামিতি পরীক্ষা করা যায়।

  • রিটার্নের মাধ্যমে স্টপ-অফ প্যারামিটারগুলিকে অপ্টিমাইজ করা যেতে পারে, যা সামগ্রিক ঝুঁকি-লাভের তুলনায় ভাল।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-10-22 00:00:00
end: 2023-10-29 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TrendCrypto2022
//@version=5
// strategy("Take profit Multi timeframe", overlay=true, margin_long=100, margin_short=100)
takepercent  = input.bool(title="Take profit %", defval=true ,group="Set up take profit")
takemtf  = input.bool(title="Take profit Multi timeframe", defval=false ,group="Set up take profit")

//Paste your strategy at here. This is example strategy. I use WaveTrend indicator

//WaveTrend indicator
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
oblv1 = input(60, "Over Bought Lv 1")
oblv2 = input(53, "Over Bought Lv 2")
oslv1 = input(-60, "Over Sold Lv 1")
oslv2 = input(-53, "Over Sold Lv 2")
 
ap = hlc3 
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)
 
wt1 = tci
wt2 = ta.sma(wt1,4)

//Strategy
buy = ta.crossover(wt1, wt2) and wt1 < -40
if (buy)
    strategy.entry("Long", strategy.long)


//Resistant in time D and 4H
ema_len1 = input.int(title='Ema1', defval=100, group='Take profit Mtf')
ema_len2 = input.int(title='Ema2', defval=200, group='Take profit Mtf')
src = input.source(title='Source', defval=close, group='Take profit Mtf')
tf1 = input.timeframe(title='Time frame 1', defval='240', group='Take profit Mtf')
tf2 = input.timeframe(title='Time frame 2', defval='D', group='Take profit Mtf')
htf_ma1 = ta.ema(src, ema_len1)
htf_ma2 = ta.ema(src, ema_len2)
ema1 = request.security(syminfo.tickerid, tf1, htf_ma1)
ema2 = request.security(syminfo.tickerid, tf1, htf_ma2)
ema3 = request.security(syminfo.tickerid, tf2, htf_ma1)
ema4 = request.security(syminfo.tickerid, tf2, htf_ma2)

//Plot
plotema1 = plot(ema1, color=color.new(color.silver, 0), style=plot.style_line, linewidth=1, offset=0, title='Ema100 4h', display=display.none)
plotema2 = plot(ema2, color=color.new(color.silver, 0), style=plot.style_line, linewidth=1, offset=0, title='Ema200 4h', display=display.none)
plotema3 = plot(ema3, color=color.new(color.orange, 20), style=plot.style_line, linewidth=1, offset=0, title='Ema100 D', display=display.none)
plotema4 = plot(ema4, color=color.new(color.orange, 20), style=plot.style_line, linewidth=1, offset=0, title='Ema200 D', display=display.none)

//Label take profit multitime frame
var label labelema1 = na
label.delete(labelema1)
labelema1 := label.new(x=time + 120, y=ema1, text='\n*****Ema100 4H: ' + str.tostring(math.round(ema1,4)) + '', color=color.new(#000000, 100), textcolor =  color.yellow, size=size.small, style=label.style_label_left, xloc=xloc.bar_time, yloc=yloc.price)

var label labelema2 = na
label.delete(labelema2)
labelema2 := label.new(x=time + 120, y=ema2, text='\n*****Ema200 4H: ' + str.tostring(math.round(ema2,4)) + '', color=color.new(#000000, 100), textcolor = color.yellow, size=size.small, style=label.style_label_left, xloc=xloc.bar_time, yloc=yloc.price)

var label labelema3 = na
label.delete(labelema3)
labelema3 := label.new(x=time + 120, y=ema3, text='\n*****Ema100 1D: ' + str.tostring(math.round(ema3,4)) + '', color=color.new(#000000, 100), textcolor = color.yellow, size=size.small, style=label.style_label_left, xloc=xloc.bar_time, yloc=yloc.price)

var label labelema4 = na
label.delete(labelema4)
labelema4 := label.new(x=time + 120, y=ema4, text='\n*****Ema200 1D: ' + str.tostring(math.round(ema4,4)) + '', color=color.new(#000000, 100), textcolor = color.yellow, size=size.small, style=label.style_label_left, xloc=xloc.bar_time, yloc=yloc.price)

//Set up take profit %
percent(pcnt) =>
    strategy.position_size != 0 ? math.round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
TP1=input.float(3, title="TP1 %", step=0.1, group="Take profit %")
TP2=input.float(5, title="TP2 %", step=1, group="Take profit %")
TP3=input.float(6, title="TP3 %", step=1, group="Take profit %")
TP4=input.float(8, title="TP4 %", step=1, group="Take profit %")

SL=input.float(5, title="Stop Loss %", step=1, group="Take profit %")
qty1=input.float(5, title="% Close At TP1", step=1, group="Take profit %")
qty2=input.float(5, title="% Close At TP2", step=1, group="Take profit %")
qty3=input.float(5, title="% Close At TP3", step=1, group="Take profit %")
qty4=input.float(5, title="% Close At TP4", step=1, group="Take profit %")
lossPnt_L = percent(SL)

//Set up take profit multi timeframe
a = array.from((ema1), (ema2), (ema3), (ema4))
tpmtf1 = array.min(a)
tpmtf2 = array.min(a, 2)
tpmtf3 = array.min(a, 3)
tpmtf4 = array.min(a, 4)
//Set up exit
long_sl_level = strategy.position_avg_price - lossPnt_L*syminfo.mintick
if takepercent == true
    strategy.exit("TP1%", "Long", qty_percent = qty1, profit = percent(TP1), loss = lossPnt_L)
    strategy.exit("TP2%", "Long", qty_percent = qty2, profit = percent(TP2), loss = lossPnt_L)
    strategy.exit("TP3%", "Long", qty_percent = qty3, profit = percent(TP3), loss = lossPnt_L)
    strategy.exit("TP4%", "Long", qty_percent = qty4, profit = percent(TP3), loss = lossPnt_L)
    strategy.close_all(when= ta.crossunder(wt1, wt2) and wt1 > 0, comment="Close All")


if takemtf == true and array.max(a, 1) > strategy.position_avg_price
    strategy.exit("TP1Mtf", "Long", qty_percent = qty1, limit = tpmtf1, stop = long_sl_level)
    strategy.exit("TP2Mtf", "Long", qty_percent = qty2, limit = tpmtf2, stop = long_sl_level)
    strategy.exit("TP3Mtf", "Long", qty_percent = qty3, limit = tpmtf3, stop = long_sl_level)
    strategy.close_all(when= ta.crossunder(wt1, wt2) and wt1 > 0, comment="Close All")

// Plot TP & SL
long_tp1_level = strategy.position_avg_price + percent(TP1)*syminfo.mintick
long_tp2_level = strategy.position_avg_price + percent(TP2)*syminfo.mintick
long_tp3_level = strategy.position_avg_price + percent(TP3)*syminfo.mintick
long_tp4_level = strategy.position_avg_price + percent(TP4)*syminfo.mintick

plot(strategy.position_size > 0 ? long_sl_level : na, color=color.red, style=plot.style_linebr, title="SL Long")

plot(strategy.position_size > 0 ? long_tp1_level : na, color=color.lime, style=plot.style_linebr, title="Long TP1%")
plot(strategy.position_size > 0 ? long_tp2_level : na, color=color.lime, style=plot.style_linebr, title="Long TP2%")
plot(strategy.position_size > 0 ? long_tp3_level : na, color=color.lime, style=plot.style_linebr, title="Long TP3%")
plot(strategy.position_size > 0 ? long_tp4_level : na, color=color.lime, style=plot.style_linebr, title="Long TP4%")

plot(strategy.position_size > 0 ? tpmtf1 : na, color=color.orange, style=plot.style_linebr, title="Long TP1Mtf", display = display.none)
plot(strategy.position_size > 0 ? tpmtf2 : na, color=color.orange, style=plot.style_linebr, title="Long TP2Mtf", display = display.none)
plot(strategy.position_size > 0 ? tpmtf3 : na, color=color.orange, style=plot.style_linebr, title="Long TP3Mtf", display = display.none)

//Label TP
if strategy.position_size > 0
    var label labellongtp1 = na
    label.delete(labellongtp1)
    labellongtp1 := label.new(x=time + 120, y=long_tp1_level, text='\nTP1: ' + str.tostring(math.round(long_tp1_level,2)) + '', color=color.new(#000000, 100), textcolor = color.lime, size=size.small, style=label.style_label_left, xloc=xloc.bar_time, yloc=yloc.price)
     
    var label labellongtp2 = na
    label.delete(labellongtp2)
    labellongtp2 := label.new(x=time + 120, y=long_tp2_level, text='\nTP2: ' + str.tostring(math.round(long_tp2_level,2)) + '', color=color.new(#000000, 100), textcolor = color.lime, size=size.small, style=label.style_label_left, xloc=xloc.bar_time, yloc=yloc.price)
     
    var label labellongtp3 = na
    label.delete(labellongtp3)
    labellongtp3 := label.new(x=time + 120, y=long_tp3_level, text='\nTP3: ' + str.tostring(math.round(long_tp3_level,2)) + '', color=color.new(#000000, 100), textcolor = color.lime, size=size.small, style=label.style_label_left, xloc=xloc.bar_time, yloc=yloc.price)
        
    var label labellongtp4 = na
    label.delete(labellongtp4)
    labellongtp4 := label.new(x=time + 120, y=long_tp4_level, text='\nTP4: ' + str.tostring(math.round(long_tp4_level,2)) + '', color=color.new(#000000, 100), textcolor = color.lime, size=size.small, style=label.style_label_left, xloc=xloc.bar_time, yloc=yloc.price)