চ্যানেল ব্রেকথ্রু মুভিং এভারেজ ট্র্যাকিং কৌশল


সৃষ্টির তারিখ: 2024-01-15 12:25:26 অবশেষে সংশোধন করুন: 2024-01-15 12:25:26
অনুলিপি: 0 ক্লিকের সংখ্যা: 639
1
ফোকাস
1617
অনুসারী

চ্যানেল ব্রেকথ্রু মুভিং এভারেজ ট্র্যাকিং কৌশল

ওভারভিউ

এই কৌশলটি একটি মূল্য চ্যানেলের উপর ভিত্তি করে একটি ব্রেকিং কৌশল, যা প্রবেশ এবং প্রস্থান করার জন্য সমান্তরাল সূচক এবং স্টপ / স্টপ ট্র্যাকিংয়ের সাথে মিলিত হয়। এটি উচ্চ এবং নিম্ন মূল্যের সমান্তরাল মূল্য চ্যানেল তৈরি করে, যখন চ্যানেলটি ভেঙে যায় তখন অতিরিক্ত / খালি প্রবেশ করে এবং ঝুঁকি নিয়ন্ত্রণের জন্য একটি নির্দিষ্ট স্টপ বা ট্রেইলিং স্টপ ব্যবহার করে।

কৌশল নীতি

এই কৌশলটি উচ্চ এবং নিম্ন দামের গড় লাইন গণনা করে একটি মূল্য চ্যানেল গঠন করে। বিশেষত, এটি উচ্চ এবং নিম্ন দামের এসএমএ গড় লাইন গণনা করে যা 10 এর দৈর্ঘ্য এবং চ্যানেলের উপরের এবং নীচের ট্রেল তৈরি করে। যখন দাম নীচের ট্রেল থেকে উপরের ট্রেলের দিকে যায়, তখন অতিরিক্ত প্রবেশ করে; যখন দাম উপরের ট্রেল থেকে নীচের ট্রেলের দিকে যায়, তখন খালি প্রবেশ করে।

প্রবেশের পরে, কৌশলটি একটি স্থির স্টপ বা ট্রেইলিং স্টপ ব্যবহার করে একটি অবস্থান থেকে বেরিয়ে আসে। ট্রেইলিং স্টপ দুটি প্যারামিটার নিয়ে গঠিতঃ স্থির স্টপ এবং অ্যাক্টিভিং অফসেট। যখন দামটি অ্যাক্টিভেশন অফসেট পৌঁছে যায়, তখন স্টপটি ট্রেইল করা হয়। এটি লাভের জন্য লক করতে পারে এবং একই সাথে লাভের জন্য জায়গা রাখে।

এই কৌশলটি একই সাথে সময়কালের ফিল্টারিংয়ের সাথে যুক্ত, কেবলমাত্র নির্দিষ্ট historicalতিহাসিক তারিখের মধ্যে ব্যাক-টেস্টিং, যা বিভিন্ন বাজার পর্যায়ে পারফরম্যান্স পরীক্ষা করতে পারে।

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

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

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

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

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

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

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

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

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-21 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Generalized SSL Backtest w/ TSSL", shorttitle="GSSL Backtest", overlay=true )
// Generalized SSL:
//  This is the very first time the SSL indicator, whose acronym I ignore, is on Tradingview. 
//  It is based on moving averages of the highs and lows. 
//  Similar channel indicators can be found, whereas 
//  this one implements the persistency inside the channel, which is rather tricky.
//  The green line is the base line which decides entries and exits, possibly with trailing stops.
//  With respect to the original version, here one can play with different moving averages.
//  The default settings are (10,SMA)
//
// Vitelot/Yanez/Vts March 2019

lb = input(10, title="Lb", minval=1)
maType = input( defval="SMA", title="MA Type", options=["SMA","EMA","HMA","McG","WMA","Tenkan"])

fixedSL = input(title="SL Activation", defval=300)
trailSL = input(title="SL Trigger", defval=1)
fixedTP = input(title="TP Activation", defval=150)
trailTP = input(title="TP Trigger", defval=1)

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth   = input(defval = 6, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 19, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2017)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
startTimeOk()  => true // create function "within window of time" if statement true
// QUANDL:BCHAIN/ETRVU is USD-denominated daily transaction value on BTC blockchain
// QUANDL:BCHAIN/MKTCP is USD-denominated Bitcoin marketcap

hma(sig, n) => // Hull moving average definition
    wma( 2*wma(sig,round(n/2))-wma(sig,n), round(sqrt(n)))

mcg(sig,length) => // Mc Ginley MA definition
    mg = 0.0
    mg := na(mg[1]) ? ema(sig, length) : mg[1] + (sig - mg[1]) / (length * pow(sig/mg[1], 4))

tenkan(sig,len) =>
    0.5*(highest(sig,len)+lowest(sig,len))

ma(t,sig,len) =>
    sss=na
    if t =="SMA"
        sss := sma(sig,len)
    if t == "EMA"
        sss := ema(sig,len)
    if t == "HMA"
        sss := hma(sig,len)
    if t == "McG" // Mc Ginley
        sss := mcg(sig,len)
    if t == "Tenkan"
        sss := tenkan(sig,len)
    if t == "WMA"
        sss := wma(sig,len)
    sss

base(mah, mal) =>
    bbb = na
    inChannel = close<mah and close>mal
    belowChannel = close<mah and close<mal
    bbb := inChannel? bbb[1]: belowChannel? -1: 1
    uuu = bbb==1? mal: mah
    ddd = bbb==1? mah: mal
    [uuu, ddd]

maH = ma(maType, high, lb)
maL = ma(maType, low, lb)

[up, dn] = base(maH,maL)

plot(up, title="High MA", color=lime, linewidth=3)
plot(dn, title="Low MA", color=orange, linewidth=3)

long = crossover(dn,up)
short = crossover(up,dn)

// === STRATEGY - LONG POSITION EXECUTION ===
strategy.entry("Long", strategy.long, when= long and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP) 
strategy.exit("Exit", when= short)
// === STRATEGY - SHORT POSITION EXECUTION ===
strategy.entry("Short", strategy.short, when= short and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= long)