পরিমাণগত কৌশল এমএ শক্তি এবং দুর্বলতা প্রবণতা ট্র্যাকিং


সৃষ্টির তারিখ: 2024-01-19 16:50:13 অবশেষে সংশোধন করুন: 2024-01-19 16:50:13
অনুলিপি: 3 ক্লিকের সংখ্যা: 609
1
ফোকাস
1617
অনুসারী

পরিমাণগত কৌশল এমএ শক্তি এবং দুর্বলতা প্রবণতা ট্র্যাকিং

ওভারভিউ

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

কৌশল নীতি

  1. 5 দিন, 10 দিন, 20 দিন ইত্যাদি একাধিক গ্রুপের এমএ গণনা করুন, দাম প্রতিটি এমএকে অতিক্রম করে কিনা তা নির্ধারণ করুন, ব্রেক মার্কগুলি অতিক্রম করুন, এবং পয়েন্টগুলি পিচ এমএ শক্তির স্তর গঠন করে।
  2. এমএ শক্তির উপর মুভিং এভারেজ প্রয়োগ করুন, গড় লাইন সূচক গঠন করুন, গড় লাইনটি খালি রয়েছে তা বিচার করুন, ট্রেডিং সংকেত তৈরি করুন
  3. ট্র্যাকিং চক্রের পরামিতিগুলি কনফিগার করা যায়ঃ স্বল্পমেয়াদী এমএ গ্রুপ, দীর্ঘমেয়াদী গড় লাইন চক্র, পজিশন খোলার শর্ত ইত্যাদি।

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

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

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

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

  1. প্রত্যাহারের ঝুঁকি রয়েছে। যখন সংক্ষিপ্ত লাইনটি গড়ের নীচে দীর্ঘ লাইনটি অতিক্রম করে তখন প্রত্যাহারের ঝুঁকি বেশি থাকে। স্টপ লস দ্বারা একক ক্ষতি হ্রাস করা যেতে পারে।
  2. বিপরীতমুখী ঝুঁকি রয়েছে। বাজারের দীর্ঘমেয়াদী কার্যক্রম অবশ্যই সংশোধন করা হবে, কৌশলটি অবশ্যই সময়মতো থামাতে হবে Exiting। বড় চক্রের শেষে সিদ্ধান্ত নেওয়ার জন্য তরঙ্গবন্দর, চ্যানেল ইত্যাদি প্রযুক্তির সাথে মিলিত হওয়ার পরামর্শ দেওয়া হয়, বিপরীতমুখী ঝুঁকি নিয়ন্ত্রণ করতে।
  3. প্যারামিটার ঝুঁকি. ভুল প্যারামিটার কনফিগারেশন একটি ভুল সংকেত হতে পারে. প্যারামিটারগুলি বিভিন্ন জাতের জন্য উপযুক্ত করা উচিত যাতে প্যারামিটারগুলি স্থিতিশীল থাকে।

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

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-19 00:00:00
end: 2024-01-18 00:00:00
period: 1h
basePeriod: 15m
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/
// © HeWhoMustNotBeNamed

//@version=4
strategy("MA Strength Strategy", overlay=false, initial_capital = 20000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, pyramiding = 1, commission_value = 0.01)
MAType = input(title="Moving Average Type", defval="ema", options=["ema", "sma", "hma", "rma", "vwma", "wma"])
LookbackPeriod = input(10, step=10)

IndexMAType = input(title="Moving Average Type", defval="hma", options=["ema", "sma", "hma", "rma", "vwma", "wma"])
IndexMAPeriod = input(200, step=10)

considerTrendDirection = input(true)
considerTrendDirectionForExit = input(true)
offset = input(1, step=1)
tradeDirection = input(title="Trade Direction", defval=strategy.direction.long, options=[strategy.direction.all, strategy.direction.long, strategy.direction.short])
i_startTime = input(defval = timestamp("01 Jan 2010 00:00 +0000"), title = "Start Time", type = input.time)
i_endTime = input(defval = timestamp("01 Jan 2099 00:00 +0000"), title = "End Time", type = input.time)
inDateRange = true

f_getMovingAverage(source, MAType, length)=>
    ma = sma(source, length)
    if(MAType == "ema")
        ma := ema(source,length)
    if(MAType == "hma")
        ma := hma(source,length)
    if(MAType == "rma")
        ma := rma(source,length)
    if(MAType == "vwma")
        ma := vwma(source,length)
    if(MAType == "wma")
        ma := wma(source,length)
    ma
    

f_getMaAlignment(MAType, includePartiallyAligned)=>
    ma5 = f_getMovingAverage(close,MAType,5)
    ma10 = f_getMovingAverage(close,MAType,10)
    ma20 = f_getMovingAverage(close,MAType,20)
    ma30 = f_getMovingAverage(close,MAType,30)
    ma50 = f_getMovingAverage(close,MAType,50)
    ma100 = f_getMovingAverage(close,MAType,100)
    ma200 = f_getMovingAverage(close,MAType,200)

    upwardScore = 0.0
    upwardScore := close > ma5? upwardScore+1.10:upwardScore
    upwardScore := ma5 > ma10? upwardScore+1.10:upwardScore
    upwardScore := ma10 > ma20? upwardScore+1.10:upwardScore
    upwardScore := ma20 > ma30? upwardScore+1.10:upwardScore
    upwardScore := ma30 > ma50? upwardScore+1.15:upwardScore
    upwardScore := ma50 > ma100? upwardScore+1.20:upwardScore
    upwardScore := ma100 > ma200? upwardScore+1.25:upwardScore
    
    upwards = close > ma5 and ma5 > ma10 and ma10 > ma20 and ma20 > ma30 and ma30 > ma50 and ma50 > ma100 and ma100 > ma200
    downwards = close < ma5 and ma5 < ma10 and ma10 < ma20 and ma20 < ma30 and ma30 < ma50 and ma50 < ma100 and ma100 < ma200
    trendStrength = upwards?1:downwards?-1:includePartiallyAligned ? (upwardScore > 6? 0.5: upwardScore < 2?-0.5:upwardScore>4?0.25:-0.25) : 0
    [trendStrength, upwardScore]
    
includePartiallyAligned = true
[trendStrength, upwardScore] = f_getMaAlignment(MAType, includePartiallyAligned)

upwardSum = sum(upwardScore, LookbackPeriod)

indexSma = f_getMovingAverage(upwardSum,IndexMAType,IndexMAPeriod)

plot(upwardSum, title="Moving Average Strength", color=color.green, linewidth=2, style=plot.style_linebr)
plot(indexSma, title="Strength MA", color=color.red, linewidth=1, style=plot.style_linebr)
buyCondition = crossover(upwardSum,indexSma) and (upwardSum > upwardSum[offset] or not considerTrendDirection) 
sellCondition = crossunder(upwardSum,indexSma) and (upwardSum < upwardSum[offset]  or not considerTrendDirection)

exitBuyCondition = crossunder(upwardSum,indexSma)
exitSellCondition = crossover(upwardSum,indexSma) 
strategy.risk.allow_entry_in(tradeDirection)
strategy.entry("Buy", strategy.long, when= inDateRange and buyCondition, oca_name="oca_buy")
strategy.close("Buy", when = considerTrendDirectionForExit? sellCondition : exitBuyCondition)
strategy.entry("Sell", strategy.short, when= inDateRange and sellCondition, oca_name="oca_sell")
strategy.close( "Sell", when = considerTrendDirectionForExit? buyCondition : exitSellCondition)