এই কৌশলটি প্রবণতার দিকনির্দেশ নির্ধারণ করতে জিগজ্যাগ সূচক ব্যবহার করে এবং নিশ্চিত হওয়ার পরে প্রবণতা অনুসরণ করে। এটি প্রবণতা অনুসরণকারী কৌশলটির অন্তর্গত।
এই কৌশলটি মূলত দামের প্রবণতা দিক নির্ধারণের জন্য জিগজ্যাগ সূচক ব্যবহার করে। জিগজ্যাগ বাজার গোলমাল ফিল্টার করতে পারে এবং মূল দামের ওঠানামা দিকগুলি সনাক্ত করতে পারে। এটি যখন দাম নতুন উচ্চতা বা নিম্নতায় পৌঁছে তখন এটি ট্রেডিং সংকেত তৈরি করে।
বিশেষত, কৌশলটি প্রথমে জিগজ্যাগ মানগুলি গণনা করে। যখন দামগুলি উচ্চতর উচ্চতায় পৌঁছে যায়, তখন জিগজ্যাগ মানটি উচ্চমূল্যে পরিণত হয়। যখন দামগুলি নিম্নতম স্তরে পৌঁছে যায়, তখন জিগজ্যাগ মানটি নিম্নমূল্যে পরিণত হয়। সুতরাং, জিগজ্যাগ স্পষ্টভাবে মূল দামের ওঠানামা দিক প্রতিফলিত করতে পারে।
কৌশলটি জিগজ্যাগ মানের উপর ভিত্তি করে প্রবণতা দিক নির্ধারণ করে। যখন জিগজ্যাগ বৃদ্ধি পায়, এটি একটি আপ ট্রেন্ড নির্দেশ করে। যখন জিগজ্যাগ পড়ে, এটি একটি ডাউন ট্রেন্ড নির্দেশ করে। যখন জিগজ্যাগ প্রবণতা দিক অনুসরণ করার জন্য ঘুরে আসে তখন কৌশলটি অবস্থানগুলি খোলে।
বিশেষত, কৌশলটি দীর্ঘ হয় যখন জিগজ্যাগ নতুন উচ্চতায় পরিণত হয় এবং যখন জিগজ্যাগ নতুন নিম্নতায় পরিণত হয় তখন সংক্ষিপ্ত হয়। প্রস্থান শর্তটি যখন জিগজ্যাগ আবার ঘুরে আসে। এটি প্রবণতা সনাক্তকরণের জন্য জিগজ্যাগের উপর ভিত্তি করে স্বয়ংক্রিয় ট্রেডিং অর্জন করে।
নিম্নলিখিত উপায়ে ঝুঁকি কমাতে পারেঃ
কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ
একক ক্ষতির ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস যোগ করুন, যেমন ট্রেলিং স্টপ বা স্টপ লিমিট অর্ডার।
প্রবণতা বিপরীত সনাক্তকরণ প্রক্রিয়া যোগ করুন, যেমন এমএসিডি, চলমান গড়। বিপরীত সনাক্ত করা হলে অবস্থান বন্ধ করুন।
পুনরায় প্রবেশের মডিউল যোগ করুন। প্রবণতা অব্যাহত থাকলে পিরামিড অবস্থান।
প্রবণতা সনাক্তকরণে সহায়তা করার জন্য LSTM এর মতো মেশিন লার্নিং মডেল যুক্ত করুন।
ড্রডাউন বা কেরলেশন তত্ত্বের উপর ভিত্তি করে মূলধন ব্যবস্থাপনা অপ্টিমাইজ করা।
ব্যাকটেস্টিং এবং রেফারেন্সিং দক্ষতার মাধ্যমে জিগজ্যাগ সময়ের মতো প্যারামিটারগুলি ব্যাপকভাবে অনুকূলিত করুন।
কৌশলটি জিগজ্যাগ দ্বারা প্রবণতার দিক চিহ্নিত করে এবং প্রবণতাটি বাণিজ্য করে। যুক্তিটি সহজ এবং বাস্তবায়ন করা সহজ। তবে একক সূচকের নির্ভরতা এবং প্রবণতা বিপরীতের মতো ঝুঁকি রয়েছে। আমরা এটিকে আরও শক্তিশালী এবং যুক্তিসঙ্গত করার জন্য স্টপ লস, সহায়ক সূচক, পুনরায় প্রবেশ, মেশিন লার্নিং মডেল ইত্যাদির মাধ্যমে অনুকূল করতে পারি। সঠিক পরামিতি এবং ঝুঁকি নিয়ন্ত্রণের সাথে, এটি কার্যকরভাবে মাঝারি-দীর্ঘমেয়াদী প্রবণতা ট্র্যাক করতে পারে।
/*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()