একাধিক সূচকের উপর ভিত্তি করে কৌশল অনুসরণের প্রবণতা


সৃষ্টির তারিখ: 2023-12-27 17:15:45 অবশেষে সংশোধন করুন: 2023-12-27 17:15:45
অনুলিপি: 1 ক্লিকের সংখ্যা: 599
1
ফোকাস
1623
অনুসারী

একাধিক সূচকের উপর ভিত্তি করে কৌশল অনুসরণের প্রবণতা

ওভারভিউ

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

কৌশল নীতি

  1. ফিশার রূপান্তর সূচক মূল্য পরিবর্তনের প্রবণতা এবং শক্তি নির্ধারণ করে। যখন 4 টি ফিশার লাইন একই সাথে রঙ পরিবর্তন করে তখন একটি লেনদেনের সংকেত দেওয়া হয়।
  2. WMA মূল প্রবণতার দিক নির্ণয় করে। RSI মিথ্যা সংকেতগুলিকে ফিল্টার করে।
  3. OBV সূচকটি প্রবণতা সনাক্ত করতে ব্যবহৃত হয়।

বিশেষ করে, ফিশার রূপান্তর সূচকটিতে 1x, 2x, 4x এবং 8x 4 লাইন রয়েছে। যখন 4 লাইন একই সাথে উপরের দিকে সবুজ হয়ে যায় তখন একটি মাল্টিসিগন্যাল তৈরি হয় এবং 4 লাইন একই সাথে নীচের দিকে লাল হয়ে গেলে একটি ফাঁকা সংকেত তৈরি হয়। ডাব্লুএমএ বড় প্রবণতা দিক নির্ধারণ করে, যদি সূচকটি উপরের দিকে থাকে তবে এটি কুসংস্কারপূর্ণ এবং নীচে এটি কুসংস্কারপূর্ণ বলে বিবেচিত হয়। OBV প্রবণতা দিকনির্ধারণের জন্য ব্যবহৃত হয়। তুলনামূলকভাবে দুর্বল সূচক আরএসআই ফিল্টার মিথ্যা সংকেত।

সামর্থ্য বিশ্লেষণ

এই কৌশলটির সুবিধাগুলো হলঃ

  1. ফিশার রূপান্তর সূচক দৃ strong় বিচারক, যখন 4 টি ফিশার লাইন একসাথে রঙ পরিবর্তন করে, একটি প্রবণতা বিপরীত হওয়ার সম্ভাবনা রয়েছে তা নিশ্চিত করে।
  2. ডাব্লুএমএ মূল প্রবণতার দিকনির্দেশনা দেয় এবং বিপরীতমুখী ট্রেডিং এড়ায়।
  3. OBV সূচক প্রবণতা নিশ্চিত করে এবং প্রবণতাহীন বাজারে মিথ্যা ব্রেকডাউন এড়ায়।
  4. RSI সূচকটি ভুয়া সংকেতগুলিকে ফিল্টার করে এবং সংকেতের নির্ভরযোগ্যতা নিশ্চিত করে।

একাধিক সূচকের সমন্বয় প্রয়োগের মাধ্যমে ট্রেডিং সিগন্যালের সঠিকতা এবং নির্ভরযোগ্যতা নিশ্চিত করা এবং প্রবণতা অনুসরণ করার ক্ষমতা রয়েছে, যা আরও ভাল কৌশলগত প্রভাব অর্জন করতে পারে।

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

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. ফিশার লাইনটি একটি মিথ্যা সংকেত তৈরি করতে পারে যদি বাজারটি পুনরুদ্ধার হয়।
  2. WMA প্যারামিটার সেটিং ভুল হলে বিচার accurancy প্রভাবিত হতে পারে।
  3. ফিশার ট্রান্সফরমার সূচক সুপার সংক্ষিপ্ত রেখার জন্য খারাপ।
  4. এই কৌশলটি ব্যবহার করে, আপনি যদি আপনার নেটওয়ার্কের সংযোগ বিচ্ছিন্ন করে দেন, তাহলে আপনি বিপুল পরিমাণ অর্থ হারাবেন।

ঝুঁকি কমানোর জন্য, আরএসআই প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করা যেতে পারে, ডাব্লুএমএ চক্রের প্যারামিটারগুলি অনুকূলিতকরণ করা যেতে পারে।

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

এই কৌশলটি আরও উন্নত করা যেতে পারে নিম্নলিখিত উপায়েঃ

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

সারসংক্ষেপ

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

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

//@version=5
//author Sdover0123
strategy(title='FTR, WMA, OBV & RSI Strat', shorttitle='FTR WMA, OBV, RSI',overlay=false, default_qty_type=strategy.percent_of_equity, initial_capital = 100, default_qty_value=100, commission_value = 0.06, pyramiding = 3)
Len = input.int(10, minval=1, group ="Fisher Transform")
mult1 = input.int(1, minval=1, group ="Fisher Transform")
mult2 = input.int(2, minval=1, group ="Fisher Transform")
mult3 = input.int(4, minval=1, group ="Fisher Transform")
mult4 = input.int(8, minval=1, group ="Fisher Transform")
fish(Length, timeMultiplier) =>
    var nValue1 = 0.0
    var nValue2 = 0.0
    var nFish = 0.0
    xHL2 = hl2
    xMaxH = ta.highest(xHL2, Length * timeMultiplier)
    xMinL = ta.lowest(xHL2, Length * timeMultiplier)
    nValue1 := 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])
    if nValue1 > .99
        nValue2 := .999
        nValue2
    else if nValue1 < -.99
        nValue2 := -.999
        nValue2
    else
        nValue2 := nValue1
        nValue2
    nFish := 0.5 * math.log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])
    nFish
Fisher1 = fish(Len, mult1)
Fisher2 = fish(Len, mult2)
Fisher4 = fish(Len, mult3)
Fisher8 = fish(Len, mult4)

rsiLength = input.int(14, minval=1, group ="Moving Averages")
rsiVal = (ta.rsi(close, rsiLength) - 50) / 10
avg = strategy.position_avg_price

wma(source, length) =>
    sum = 0.0
    for i = 0 to length - 1
        sum := sum + source[i] * (length - i)
    wma = sum / (length * (length + 1) / 2)
    wma

wmaLength = input.int(10, "WMA Length", minval=1, group ="Moving Averages")
wmaClose = wma(close, wmaLength)
// Determine if WMA is bullish or bearish
isWmaBullish = wmaClose > wmaClose[1]
isWmaBearish = wmaClose < wmaClose[1]

//OBV 
src = close
length = input.int(20, title="OBV Length", group="On-Balance Volume")
obv1(src) =>
    change_1 = ta.change(src)
    ta.cum(ta.change(src) > 0 ? volume : change_1 < 0 ? -volume : 0 * volume)*0.01
os = obv1(src)
obv_osc = os - ta.ema(os, length)
obc_color = (obv_osc > 0 ? color.rgb(0, 255, 8) : color.rgb(255, 0, 0))
plot(obv_osc, color=obc_color, style=plot.style_line, title='OBV-Points', linewidth=2)
plot(obv_osc, color=color.new(#b2b5be, 70), title='OBV', style=plot.style_area)
obvBullFilter = input.float(0.1, minval = 0, maxval = 5, step = 0.01, title ="OBV Bullish minimum value", group="On-Balance Volume")
obvBearFilter = input.float(-0.1, minval = -5, maxval = 0, step = 0.01, title ="OBV Bearish minimum value", group="On-Balance Volume")
obvBull = obv_osc > obvBullFilter
obvBear = obv_osc < obvBearFilter

// Add buy/sell signals
ReversalFilterDown = input.float(-0.7, 'Reversal Down TP Filter', -4, 4, step = 0.01, group = "RSI Level Filters", tooltip = "This is defined by taking the RSI value -50 and /10. When all Fisher lines are changing colour, this will SL/TP the long")
ReversalFilterUp = input.float(0.7, 'Reversal Up TP Filter', -4, 4, step = 0.01, group = "RSI Level Filters", tooltip = "This is defined by taking the RSI value -50 and /10. When all Fisher lines are changing colour, this will SL/TP the short")
RSILevelBuyFilter = input.float(1.66, 'RSI Level Buy Filter', -4, 4, step = 0.01, group = "RSI Level Filters", tooltip = "This is defined by taking the RSI value -50 and /10. Consider negative values")
RSILevelSellFilter = input.float(1, 'RSI Level Sell Filter', -4, 4, step = 0.01, group = "RSI Level Filters", tooltip = "This is defined by taking the RSI value -50 and /10. Consider negative values")
//buys - if breaking out and all Fisher are green and RSI filter value is met 
buySignal = Fisher1 > Fisher1[1] and Fisher2 > Fisher2[1] and Fisher4 > Fisher4[1] and Fisher8 > Fisher8[1] and rsiVal > RSILevelBuyFilter and isWmaBullish and obvBull
ReversalUp = Fisher1 > Fisher1[1] and Fisher2 > Fisher2[1] and Fisher4 > Fisher4[1] and Fisher8 > Fisher8[1] and rsiVal > ReversalFilterUp
//sells - if breaking down and all Fisher are green and RSI filter value is met 
sellSignal = Fisher1 < Fisher1[1] and Fisher2 < Fisher2[1] and Fisher4 < Fisher4[1] and Fisher8 < Fisher8[1] and rsiVal < RSILevelSellFilter and isWmaBearish and obvBear
ReversalDown = Fisher1 < Fisher1[1] and Fisher2 < Fisher2[1] and Fisher4 < Fisher4[1] and Fisher8 < Fisher8[1] and rsiVal < ReversalFilterDown


// Buy and Sell conditions
if buySignal and time>timestamp(2022, 06, 01, 09, 30) and barstate.isconfirmed
    strategy.close("Sell", comment = "Close Short")
    strategy.entry("Buy", strategy.long, comment = "Long")

if sellSignal and time>timestamp(2022, 06, 01, 09, 30) and barstate.isconfirmed
    strategy.close("Buy", comment = "Close Long")
    strategy.entry("Sell", strategy.short, comment = "Short")

if ReversalDown
    strategy.close("Buy", comment = "Close Long")

if ReversalUp
    strategy.close("Sell", comment = "Close Short")

//Plotting
//Fisher
plot(Fisher1, color=Fisher1 > nz(Fisher1[1]) ? color.green : color.rgb(255, 0, 0), title='Fisher TF:1')
plot(Fisher2, color=Fisher2 > nz(Fisher2[1]) ? color.green : color.rgb(255, 0, 0), title='Fisher TF:1', linewidth=2)
plot(Fisher4, color=Fisher4 > nz(Fisher4[1]) ? #008000 : #b60000, title='Fisher TF:1', linewidth=3)
plot(Fisher8, color=Fisher8 > nz(Fisher8[1]) ? #004f00 : #b60000, title='Fisher TF:1', linewidth=3)
//RSI
plot(rsiVal, color=rsiVal < 0 ? color.purple : color.yellow, linewidth=2, title='RSI')

//WMA
plot(isWmaBullish ? -2 : na, color=color.rgb(76, 175, 79, 20), linewidth=3, style=plot.style_linebr, title="WMA Bullish")
plot(isWmaBearish ? -2 : na, color=color.rgb(255, 82, 82, 20), linewidth=3, style=plot.style_linebr, title="WMA Bearish")

//Buy/Sell Signals
plotshape(buySignal, title='Buy Signal', location=location.bottom, color=color.new(color.lime, 0), style=shape.triangleup, size=size.small)
plotshape(sellSignal, title='Sell Signal', location=location.top, color=color.new(color.red, 0), style=shape.triangledown, size=size.small)

//Orientation
hline(RSILevelBuyFilter, color=color.rgb(25, 36, 99, 20), linestyle=hline.style_dotted, linewidth=2)
hline(RSILevelSellFilter, color=color.rgb(111, 27, 27, 20), linestyle=hline.style_dotted, linewidth=2)
hline(0, color=color.rgb(181, 166, 144, 39), linestyle=hline.style_dashed, linewidth=2, title = "Zero Line")
hline(1.5, color=color.rgb(217, 219, 220, 50), linestyle=hline.style_dotted, linewidth=2, title = "1.5 // 65 Line")
hline(-1.5, color=color.rgb(217, 219, 220, 50), linestyle=hline.style_dotted, linewidth=2, title = "-1.5 // 35 Line")