ম্যাকডি ভবিষ্যৎ পথ পূর্বাভাস কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১২-১৩ ১৭ঃ২১ঃ৪৪
ট্যাগঃ

img

সারসংক্ষেপ

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

কৌশল নীতি

  1. ম্যাকডি লাইন এবং সিগন্যাল লাইনের উত্থান এবং পতন নির্ধারণের জন্য ম্যাকডি সূচকের পার্থক্য (ঐতিহাসিক মান) গণনা করুন।
  2. ম্যাকডি ইন্ডিকেটরের ভবিষ্যৎ প্রবণতা বিচার করতে এবং মূল্যের প্রবণতা পূর্বাভাস দেওয়ার জন্য কল অপশন সেট করে ৪ ঘন্টার সময়সীমার মধ্যে ম্যাকডি ইন্ডিকেটরের ভবিষ্যৎ মান ব্যবহার করুন।
  3. যখন ম্যাকডি সূচক পার্থক্য শূন্যের চেয়ে বড় হয় (একটি ষাঁড়ের বাজারকে উপস্থাপন করে) এবং এটি বাড়তে থাকবে বলে আশা করা হচ্ছে; যখন ম্যাকডি সূচক পার্থক্য শূন্যের চেয়ে কম হয় (একটি ভাল বাজারকে উপস্থাপন করে) এবং এটি হ্রাস পেতে থাকবে বলে আশা করা হচ্ছে তখন শর্ট যান।
  4. কৌশলটি ট্রেন্ড অনুসরণ এবং ট্রেন্ড বিপরীত ট্রেডিং উভয় শৈলীকে একত্রিত করে, ট্রেন্ডগুলি ক্যাপচার করে এবং একই সাথে ট্রেন্ড বিপরীত পয়েন্টগুলিও দখল করে।

সুবিধা বিশ্লেষণ

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

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

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

অপ্টিমাইজেশান নির্দেশাবলী

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

সিদ্ধান্ত

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


/*backtest
start: 2023-12-05 00:00:00
end: 2023-12-12 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © x11joe
strategy(title="MacD (Future Known or Unknown) Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

//OPTIONAL:: Allow only entries in the long or short position
allowOnlyLong = input(title="Allow position ONLY in LONG",type=input.bool, defval=false)
allowOnlyShort = input(title="Allow position ONLY in SHORT",type=input.bool, defval=false)


strategy.risk.allow_entry_in(allowOnlyLong ? strategy.direction.long : allowOnlyShort ? strategy.direction.short : strategy.direction.all) // There will be no short entries, only exits from long.

// Create MacD inputs
fastLen = input(title="MacD Fast Length", type=input.integer, defval=12)
slowLen = input(title="MacD Slow Length", type=input.integer, defval=26)
sigLen  = input(title="MacD Signal Length", type=input.integer, defval=9)

// Get MACD values
[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)
hist = macdLine - signalLine

useFuture = input(title="Use The Future?",type=input.bool,defval=true)

macDState(resolutionType) =>
    hist_from_resolution = security(syminfo.tickerid, resolutionType, hist,barmerge.gaps_off, barmerge.lookahead_on)
    Green_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution > 0
    Green_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution > 0
    Red_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution <= 0
    Red_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution <= 0
    result=0
    if(Green_IsUp)
        result := 1
    if(Green_IsDown)
        result := 2
    if(Red_IsDown)
        result := 3
    if(Red_IsUp)
        result := 4
    result

macDStateNonFuture(resolutionType) =>
    hist_from_resolution = security(syminfo.tickerid, resolutionType, hist,barmerge.gaps_off, barmerge.lookahead_off)
    Green_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution > 0
    Green_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution > 0
    Red_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution <= 0
    Red_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution <= 0
    result=0
    if(Green_IsUp)
        result := 1
    if(Green_IsDown)
        result := 2
    if(Red_IsDown)
        result := 3
    if(Red_IsUp)
        result := 4
    result

// === INPUT BACKTEST RANGE ===
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 = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, 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
window()  => time >= start and time <= finish ? true : false // create function "within window of time"
// === INPUT BACKTEST RANGE END ===

//Get FUTURE or NON FUTURE data
macDState240=useFuture ? macDState("240") : macDStateNonFuture("240") //1 is green up, 2 if green down, 3 is red, 4 is red up

//Fill in the GAPS
if(macDState240==0)
    macDState240:=macDState240[1]

//Plot Positions
plot(close,color= macDState240==1 ? color.green : macDState240==2 ? color.purple : macDState240==3 ? color.red : color.yellow,linewidth=4,style=plot.style_histogram,transp=50)

if(useFuture)
    strategy.entry("buy_1",long=true,when=window() and (macDState240==4 or macDState240==1))
    strategy.close("buy_1",when=window() and macDState240==3 and macDState240[1]==4)
    strategy.entry("sell_1",long=false,when=window() and macDState240==2)
else
    strategy.entry("buy_1",long=true,when=window() and (macDState240==4 or macDState240==1))//If we are in a red macD trending downwards MacD or in a MacD getting out of Red going upward.
    strategy.close("buy_1",when=window() and macDState240==3 and macDState240[1]==4)//If the state is going upwards from red but we are predicting back to red...
    strategy.entry("sell_1",long=false,when=window() and macDState240==2)//If we are predicting the uptrend to end soon.


আরো