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