মুভিং এভারেজ ডাবল ট্র্যাক বুল-বেয়ার কৌশল


সৃষ্টির তারিখ: 2023-11-06 16:25:01 অবশেষে সংশোধন করুন: 2023-11-06 16:25:01
অনুলিপি: 1 ক্লিকের সংখ্যা: 649
1
ফোকাস
1621
অনুসারী

মুভিং এভারেজ ডাবল ট্র্যাক বুল-বেয়ার কৌশল

ওভারভিউ

এই কৌশলটি একটি প্রধান প্রযুক্তিগত সূচক হিসাবে গ্রাবাল মুভিং এভারেজ ব্যবহার করে, বুলিন বন্ড ডাবল রেলের সাথে মিলিত হয়, যা বাজারের প্রবণতা সনাক্ত করার জন্য একটি ব্রেকার কৌশল। দামগুলি যখন বুলিন বন্ডের ট্র্যাকটি ভেঙে যায় তখন কম দেখায়, যখন দামগুলি বুলিন বন্ডের ট্র্যাকটি ভেঙে যায় তখন বেশি দেখায়, এটি জনপ্রিয় ডাবল রেলের ব্রেকিং সিস্টেমের অন্তর্ভুক্ত।

কৌশল নীতি

  1. চূর্ণবিচূর্ণ চলমান গড় গণনা করুন (CBMA): স্বনির্ধারিত ইএমএ মসৃণ চূর্ণবিচূর্ণ চলমান গড় ব্যবহার করে, দামের পরিবর্তনগুলি কার্যকরভাবে ট্র্যাক করতে পারে।

  2. ব্রিন বন্ড প্যারামিটার সেট করুনঃ মধ্যম রেল হিসাবে চূর্ণবিচূর্ণ চলমান গড় বেছে নিন, এবং স্ট্যান্ডার্ড বিপর্যয় stomach গুণক সেট আপ করুন যা বাজারের সাথে সামঞ্জস্যপূর্ণ।

  3. ব্রেকিং লেনদেনঃ দামের উপর দিয়ে ট্রেনে উঠার সময় উর্ধ্বমুখী হওয়া এবং নীচে নেমে যাওয়ার সময় উচ্চতর হওয়া, প্রবণতা অনুসরণকারী ব্রেকার কৌশল ব্যবহার করা।

  4. ক্যান্সেল ফ্ল্যাশ অর্ডার মোড ব্যবহার করে, শুধুমাত্র একদিকে লেনদেন করা যায়।

  5. ফিক্সড ট্রেডিং ভলিউম সেট করুন যা তহবিলের উপর নির্ভর করে।

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

  1. গ্লাসফ্রেম মুভিং এভারেজ (জিএমএ) মূল্যের উপর কার্যকরভাবে নজর রাখতে সাহায্য করে।

  2. ইএমএ অ্যালগরিদমের সাথে অভিযোজিত, এটি চলমান গড়ের রিয়েল-টাইম ব্যবহারের জন্য অনুকূলিতকরণ করে।

  3. বুলিন তার রেলপথের উপরে ও নীচে একটি স্পষ্ট সংকেত দিয়েছিল যে তার রেলপথটি ভেঙে যাবে।

  4. ট্রেন্ড ট্র্যাকিং মোড ব্যবহার করুন, whipsaw এড়িয়ে চলুন।

  5. ফিক্সড ট্রেডিং ভলিউম একক ক্ষতি নিয়ন্ত্রণ করতে পারে।

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

  1. ব্রিনের প্যারামিটার সেটিংটি অপ্টিমাইজ করা দরকার, কারণ এটি বড় বা ছোট হতে পারে।

  2. ব্রেকিং সিগন্যালের ফলে ভুয়া ব্রেকিং হতে পারে।

  3. ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস সেট করা প্রয়োজন।

  4. স্থির ট্রেডিং ভলিউম বাজার অনুযায়ী পজিশন সামঞ্জস্য করতে পারে না।

  5. “এটি একটি স্বল্প সময়ের ব্যবসায়, এবং আমি মনে করি এটি একটি বড় ব্যবসায়ের মতো।

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

  1. ডায়নামিকভাবে ব্রিন ব্যান্ডের প্যারামিটারগুলিকে অপ্টিমাইজ করা হয়েছে যাতে ব্রিন ব্যান্ডটি বাজারের পরিস্থিতির জন্য আরও উপযুক্ত হয়।

  2. মিথ্যে ব্রেকিং এড়াতে আরও সূচক যুক্ত করুন।

  3. ট্র্যাকিং স্টপ লস যোগ করুন লাভ লক করতে

  4. আপনি যদি আপনার ট্রেডিং অ্যাকাউন্টকে হোল্ডিং ট্রেডিংয়ের সাথে যুক্ত করেন তবে আপনি আরও বেশি লাভ করতে পারেন।

  5. পজিশন ম্যানেজমেন্ট সিস্টেমে যোগদান করুন

সারসংক্ষেপ

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

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

//@version=4
strategy(title="CBMA Bollinger Bands Strategy directed [ChuckBanger]", shorttitle="CBMA BB CB", 
   overlay=true )


length = input(title="Length", type=input.integer, defval=12, minval=1)
regular = input(title="Regular BB Or CBMA?", type=input.bool, defval=false)
src = input(title="Source", type=input.source, defval=close)
mult = input(title="Multipler", type=input.float, defval=2.3, minval=.001, maxval=50, step=.1)
emaLen = input(title="EMA Length", type=input.integer, defval=11, minval=1)
emaGL = input(title="EMA Gain Limit", type=input.integer, defval=50, minval=1)
highlight = input(title="Highlight On/Off", type=input.bool, defval=true)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)

strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

//strategy.risk.max_drawdown(50, strategy.percent_of_equity)

calc_hma(src, length) =>
    hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
    hullma

calc_cbma(price, length, emaLength, emaGainLimit) =>
    alpha = 2 / (emaLength + 1)
    ema = ema(price, emaLength)
    int leastError = 1000000
    
    float ec = 0
    float bestGain = 0
    
    for i = emaGainLimit to emaGainLimit
        gain = i / 10
        ec := alpha * ( ema + gain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1])
        error = price - ec
        if (abs(error) < leastError)
            leastError = abs(error)
            bestGain = gain
    
    ec := alpha * ( ema + bestGain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1])
    hull = calc_hma(price, length)
    
    cbma = (ec + hull) / 2
    cbma

cbma = calc_cbma(src, length, emaLen, emaGL)
basis = regular ? sma(src, length) : cbma
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
cbmaColor = fixnan(highlight and not regular ? cbma > high ? color.purple : cbma < low ? color.aqua : na : color.red)
plot(basis, color=cbmaColor)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)

if (crossover(src, lower))
    strategy.entry("CBMA_BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="CBMA_BBandLE")
else
    strategy.cancel(id="CBMA_BBandLE")

if (crossunder(src, upper))
    strategy.entry("CBMA_BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="CBMA_BBandSE")
else
    strategy.cancel(id="CBMA_BBandSE")