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


সৃষ্টির তারিখ: 2023-10-30 14:51:08 অবশেষে সংশোধন করুন: 2023-10-30 14:51:08
অনুলিপি: 0 ক্লিকের সংখ্যা: 843
1
ফোকাস
1617
অনুসারী

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

ওভারভিউ

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

কৌশল নীতি

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

বিশেষভাবে, কৌশলটি প্রথমে ZigZag মান গণনা করে, যখন দাম একটি উচ্চ উচ্চতা তৈরি করে, তখন ZigZag এই উচ্চ মূল্যের জন্য; যখন দাম একটি নিম্ন নিম্নের জন্য তৈরি করে, তখন ZigZag এই নিম্ন মূল্যের জন্য। এইভাবে, ZigZag মূল্যের মূল ওঠানামার দিকটি পরিষ্কারভাবে প্রতিফলিত করতে পারে।

কৌশলটি ZigZag মানের উপর ভিত্তি করে প্রবণতার দিক নির্ধারণ করে। যখন ZigZag বৃদ্ধি পায়, তখন এটি একটি উচ্চ প্রবণতা দেখায়; যখন ZigZag হ্রাস পায়, তখন এটি একটি নিম্ন প্রবণতা দেখায়। কৌশলটি যখন ZigZag একটি বিপরীতমুখী হয় তখন পজিশন খোলার জন্য ট্রেন্ডের দিকটি অনুসরণ করে।

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

কৌশলগত শক্তি বিশ্লেষণ

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

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

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

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

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

অপ্টিমাইজেশান দিক

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

  1. একক ক্ষতির ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ স্ট্র্যাটেজি যুক্ত করুন। আপনি একটি চলমান স্টপ বা একটি স্টপ স্টপ সেট করতে পারেন।

  2. ট্রেন্ড রিভার্স সিদ্ধান্তের জন্য মেশিন যোগ করা হয়েছে। MACD, মুভিং এভারেজ ইত্যাদির মতো সূচকগুলি যুক্ত করা যেতে পারে, যখন ট্রেন্ড রিভার্স সিদ্ধান্ত নেওয়া হয় তখন পজিশন বন্ধ করা যায়।

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

  4. মেশিন লার্নিং মডেল যুক্ত করুন। এটি এলএসটিএম এর মতো গভীর শিক্ষার মডেলগুলিকে প্রশিক্ষণ দিতে পারে, যা ZigZag কে ট্রেন্ডের দিকনির্দেশনা দিতে সহায়তা করে।

  5. অপ্টিমাইজড তহবিল ব্যবস্থাপনা ব্যবস্থা। আপনি প্রত্যাহার বা প্রাসঙ্গিকতা তত্ত্বের ভিত্তিতে অবস্থানের আকার অপ্টিমাইজ করতে পারেন।

  6. সামগ্রিক অপ্টিমাইজেশান প্যারামিটার সেট করা হয়েছে। আপনি ইতিহাসের পুনরাবৃত্তি এবং 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()