মাল্টি টাইমফ্রেম TEMA ক্রসওভারের উপর ভিত্তি করে কৌশল অনুসরণ করে প্রবণতা

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

img

সারসংক্ষেপ

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

কৌশলগত যুক্তি

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

যখন উচ্চতর টাইমফ্রেম টিইএমএ দ্রুত লাইন ধীর লাইনের উপরে অতিক্রম করে, যখন নিম্নতর টাইমফ্রেম টিইএমএ দ্রুত লাইন ধীর লাইনের উপরে অতিক্রম করে তখন একটি দীর্ঘ এন্ট্রি ট্রিগার করা যেতে পারে; যখন দ্রুত লাইন ধীর লাইনের নীচে অতিক্রম করে তখন একটি প্রস্থান সংকেত দেওয়া হয়। একইভাবে, যখন উচ্চতর টাইমফ্রেম দ্রুত লাইন ধীর লাইনের নীচে পড়ে, তখন নিম্নতর টাইমফ্রেম টিইএমএ হ্রাস ক্রসওভারে একটি সংক্ষিপ্ত এন্ট্রি ট্রিগার করা হয় এবং যখন একটি উত্থান ক্রসওভার ঘটে তখন প্রস্থান করা হয়।

সুবিধা

  1. TEMA ক্রসওভারের উপর ভিত্তি করে, গোলমাল হস্তক্ষেপ এড়ায়
  2. মাল্টি টাইমফ্রেম ডিজাইন উচ্চ এবং নিম্ন চক্র একত্রিত করে, নির্ভুলতা উন্নত
  3. শুধুমাত্র দীর্ঘ, শুধুমাত্র সংক্ষিপ্ত বা উভয় দিকের জন্য নমনীয় কনফিগারেশন
  4. সহজ নিয়ম, সহজেই বোঝা এবং বাস্তবায়ন করা

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

  1. টিইএমএ-র বিলম্বিত প্রভাব রয়েছে, প্রাথমিক মূল্য পরিবর্তন মিস করতে পারে
  2. উচ্চতর টিএফ-এর উপর স্বল্পমেয়াদী সংশোধন অপ্রয়োজনীয় বিপরীত ট্রেডিংয়ের কারণ হতে পারে
  3. ভুল উচ্চতর TF সেটিং প্রকৃত প্রবণতা প্রতিফলিত করতে ব্যর্থ
  4. ভুলভাবে নিম্ন TF সেটিং করলে স্টপ লস ঝুঁকি বাড়বে

ঝুঁকি সমাধানঃ

  1. ভারসাম্য জন্য সূক্ষ্ম সুর TEMA পরামিতি
  2. স্টপ লস মার্জিনকে হালকা করুন
  3. উচ্চ নিম্ন চক্র সেটিংস অপ্টিমাইজ করুন
  4. পরীক্ষার পরামিতির দৃঢ়তা পণ্য জুড়ে

উন্নতির সুযোগ

  1. সংবেদনশীলতা অপ্টিমাইজেশান জন্য গতিশীলভাবে TEMA পরামিতি সামঞ্জস্য
  2. প্রবণতা মিস করা এড়াতে গতি ফিল্টার যোগ করুন
  3. ডায়নামিক স্টপ লস সাইজিংয়ের জন্য ভোলাটিলিটি ইনডেক্স যোগ করুন
  4. প্যারামিটার অপ্টিমাইজেশনের জন্য মেশিন লার্নিং

সংক্ষিপ্তসার

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


/*backtest
start: 2023-01-01 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
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/
// © Seltzer_

//@version=4
strategy(title="TEMA Cross +HTF Backtest", shorttitle="TEMA_X_+HTF_BT", overlay=true)

orderType = input("Longs+Shorts",title="What type of Orders", options=["Longs+Shorts","LongsOnly","ShortsOnly"])
isLong   = (orderType != "ShortsOnly")
isShort  = (orderType != "LongsOnly")

// Backtest Section {

// Backtest inputs
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=2020, title="From Year", minval=2010)
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)

// Define backtest timewindow
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)  // backtest finish window
window() => true

// }

//TEMA Section {

//LTF Section
xLength = input(20, minval=1, title="Fast Length")
xPrice = close
xEMA1 = ema(xPrice, xLength)
xEMA2 = ema(xEMA1, xLength)
xEMA3 = ema(xEMA2, xLength)
xnRes = (3 * xEMA1) - (3 * xEMA2) + xEMA3
xnResP = plot(xnRes, color=color.green, linewidth=2, title="TEMA1")

yLength = input(60, minval=1, title="Slow Length")
yPrice = close
yEMA1 = ema(yPrice, yLength)
yEMA2 = ema(yEMA1, yLength)
yEMA3 = ema(yEMA2, yLength)
ynRes = (3 * yEMA1) - (3 * yEMA2) + yEMA3
ynResP = plot(ynRes, color=color.red, linewidth=2, title="TEMA2")

fill(xnResP, ynResP, color=xnRes > ynRes ? color.green : color.red, transp=65, editable=true)

//HTF Section
HTFres = input(defval="D", type=input.resolution, title="HTF Resolution")

HTFxLength = input(5, minval=1, title="HTF Fast Length")
HTFxPrice = close
HTFxEMA1 = security(syminfo.tickerid, HTFres, ema(HTFxPrice, HTFxLength), barmerge.gaps_off, barmerge.lookahead_on)
HTFxEMA2 = security(syminfo.tickerid, HTFres, ema(HTFxEMA1, HTFxLength), barmerge.gaps_off, barmerge.lookahead_on)
HTFxEMA3 = security(syminfo.tickerid, HTFres, ema(HTFxEMA2, HTFxLength), barmerge.gaps_off, barmerge.lookahead_on)
HTFxnRes = (3 * HTFxEMA1) - (3 * HTFxEMA2) + HTFxEMA3
HTFxnResP = plot(HTFxnRes, color=color.yellow, linewidth=1,transp=30, title="TEMA1")

HTFyLength = input(15, minval=1, title="HTF Slow Length")
HTFyPrice = close
HTFyEMA1 = security(syminfo.tickerid, HTFres, ema(HTFyPrice, HTFyLength), barmerge.gaps_off, barmerge.lookahead_on)
HTFyEMA2 = security(syminfo.tickerid, HTFres, ema(HTFyEMA1, HTFyLength), barmerge.gaps_off, barmerge.lookahead_on)
HTFyEMA3 = security(syminfo.tickerid, HTFres, ema(HTFyEMA2, HTFyLength), barmerge.gaps_off, barmerge.lookahead_on)
HTFynRes = (3 * HTFyEMA1) - (3 * HTFyEMA2) + HTFyEMA3
HTFynResP = plot(HTFynRes, color=color.purple, linewidth=1, transp=30, title="TEMA2")

fill(HTFxnResP, HTFynResP, color=HTFxnRes > HTFynRes ? color.yellow : color.purple, transp=90, editable=true)
bgcolor(HTFxnRes > HTFynRes ? color.yellow : na, transp=90, editable=true)
bgcolor(HTFxnRes < HTFynRes ? color.purple : na, transp=90, editable=true)

// }

// Buy and Sell Triggers
LongEntryAlert = xnRes > ynRes and HTFxnRes > HTFynRes and window()
LongCloseAlert = xnRes < ynRes and window()
ShortEntryAlert = xnRes < ynRes and HTFxnRes < HTFynRes and window()
ShortCloseAlert = xnRes > ynRes

// Entry & Exit signals
if isLong
    strategy.entry("Long", strategy.long, when = LongEntryAlert)
    strategy.close("Long", when = LongCloseAlert)

if isShort
    strategy.entry("Short", strategy.short, when = ShortEntryAlert)
    strategy.close("Short", when = ShortCloseAlert)

আরো