জিগজ্যাগ ভিত্তিক ট্রেন্ড অনুসরণকারী কৌশল

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

img

সারসংক্ষেপ

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

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

এই কৌশলটি মূলত দামের প্রবণতা দিক নির্ধারণের জন্য জিগজ্যাগ সূচক ব্যবহার করে। জিগজ্যাগ বাজার গোলমাল ফিল্টার করতে পারে এবং মূল দামের ওঠানামা দিকগুলি সনাক্ত করতে পারে। এটি যখন দাম নতুন উচ্চতা বা নিম্নতায় পৌঁছে তখন এটি ট্রেডিং সংকেত তৈরি করে।

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

কৌশলটি জিগজ্যাগ মানের উপর ভিত্তি করে প্রবণতা দিক নির্ধারণ করে। যখন জিগজ্যাগ বৃদ্ধি পায়, এটি একটি আপ ট্রেন্ড নির্দেশ করে। যখন জিগজ্যাগ পড়ে, এটি একটি ডাউন ট্রেন্ড নির্দেশ করে। যখন জিগজ্যাগ প্রবণতা দিক অনুসরণ করার জন্য ঘুরে আসে তখন কৌশলটি অবস্থানগুলি খোলে।

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

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

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

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

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

নিম্নলিখিত উপায়ে ঝুঁকি কমাতে পারেঃ

  • প্রবণতা বিপরীত ঝুঁকি সনাক্ত করতে অন্যান্য সূচকগুলির সংমিশ্রণ।
  • হোল্ডিং পিরিয়ড সংক্ষিপ্ত করা, সময়মত স্টপ লস।
  • একক ক্ষতির আকার সীমিত করার জন্য ঝুঁকি ব্যবস্থাপনা যোগ করা।
  • মেশিন লার্নিং মডেল যোগ করে স্থিতিশীলতা বাড়ানো।

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

কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ

  1. একক ক্ষতির ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস যোগ করুন, যেমন ট্রেলিং স্টপ বা স্টপ লিমিট অর্ডার।

  2. প্রবণতা বিপরীত সনাক্তকরণ প্রক্রিয়া যোগ করুন, যেমন এমএসিডি, চলমান গড়। বিপরীত সনাক্ত করা হলে অবস্থান বন্ধ করুন।

  3. পুনরায় প্রবেশের মডিউল যোগ করুন। প্রবণতা অব্যাহত থাকলে পিরামিড অবস্থান।

  4. প্রবণতা সনাক্তকরণে সহায়তা করার জন্য LSTM এর মতো মেশিন লার্নিং মডেল যুক্ত করুন।

  5. ড্রডাউন বা কেরলেশন তত্ত্বের উপর ভিত্তি করে মূলধন ব্যবস্থাপনা অপ্টিমাইজ করা।

  6. ব্যাকটেস্টিং এবং রেফারেন্সিং দক্ষতার মাধ্যমে জিগজ্যাগ সময়ের মতো প্যারামিটারগুলি ব্যাপকভাবে অনুকূলিত করুন।

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

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


/*backtest
start: 2022-10-23 00:00:00
end: 2023-04-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's ZZ Strategy v1.0", shorttitle = "ZZ str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf = input('W', title='Timeframe for ZigZag')
showzz = input(false, defval = false, title = "Show ZigZag")
showbg = input(false, defval = false, title = "Show Background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//ZigZag
zigzag() =>
    _isUp = close >= open
    _isDown = close <= open
    _direction = _isUp[1] and _isDown ? -1 : _isDown[1] and _isUp ? 1 : nz(_direction[1])
    _zigzag = _isUp[1] and _isDown and _direction[1] != -1 ? highest(2) : _isDown[1] and _isUp and _direction[1] != 1 ? lowest(2) : na
useAltTF = true
zz = useAltTF ? (change(time(tf)) != 0 ? request.security(syminfo.tickerid, tf, zigzag()) : na) : zigzag()
zzcolor = showzz ? black : na
plot(zz, title = 'ZigZag', color = zzcolor, linewidth = 2)

//Levels
dot = zz > 0 ? zz : dot[1]
uplevel = dot > dot[1] ? dot : uplevel[1]
dnlevel = dot < dot[1] ? dot : dnlevel[1]
colorup = close[1] < uplevel[1] and uplevel == uplevel[1] ? lime : na
colordn = close[1] > dnlevel[1] and dnlevel == dnlevel[1] ? red : na
plot(uplevel, color = colorup, linewidth = 3)
plot(dnlevel, color = colordn, linewidth = 3)

//Background
size = strategy.position_size
bgcol = showbg == false ? na : size != size[1] ? blue : na
bgcolor(bgcol, transp = 50)

//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]

if uplevel > 0 and dnlevel > 0
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = uplevel + syminfo.mintick)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnlevel - syminfo.mintick)

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

আরো