স্থানান্তর ব্যবধান কৌশল


সৃষ্টির তারিখ: 2023-12-29 17:03:27 অবশেষে সংশোধন করুন: 2023-12-29 17:03:27
অনুলিপি: 1 ক্লিকের সংখ্যা: 846
1
ফোকাস
1621
অনুসারী

স্থানান্তর ব্যবধান কৌশল

ওভারভিউ

একটি ট্রানজিশনাল ব্যাপ্তি কৌশল হল একটি সংক্ষিপ্ত লাইন ট্রেডিং কৌশল যা মূল্যের ওঠানামা ব্যাপ্তির উপর ভিত্তি করে। এটি একটি নির্দিষ্ট সময়ের মধ্যে দামের উত্পন্ন ওঠানামা ব্যাপ্তি ব্যবহার করে বাজারের প্রবণতা নির্ধারণ করে এবং ব্যাপ্তিটি ভেঙে যাওয়ার সময় ওভার / শূন্য প্রবেশ করে।

কৌশল নীতি

এই কৌশলটি গত N রুট K লাইনের সর্বোচ্চ এবং সর্বনিম্ন মূল্য গণনা করে দামের একটি ওঠানামা তৈরি করে। যখন সর্বশেষ K লাইনটি এই অঞ্চলে প্রবেশ করে, তখন ট্রেডিং সিগন্যাল তৈরি করে।

বিশেষ করে, কৌশলটি সর্বশেষ N-রুট K-লাইন ((নিয়ন্ত্রিত প্যারামিটার N) এর সর্বোচ্চ এবং সর্বনিম্ন মূল্যকে ধারাবাহিকভাবে ট্র্যাক করে, যার মধ্যেঃ

  • সর্বনিম্ন মূল্য = সর্বনিম্ন পয়েন্ট N-রুট K-রেখার মধ্যে
  • সর্বোচ্চ মূল্য = অতীতের সর্বোচ্চ পয়েন্ট

এইভাবে, দামের একটি স্প্যান তৈরি করা হয়।

যখন সর্বশেষ K লাইন বন্ধের দাম সর্বোচ্চ দামের চেয়ে বেশি হয়, তখন এটি একটি ব্রেকিংয়ের নির্দেশ দেয় এবং একটি মাল্টিসিগন্যাল তৈরি করে। যখন সর্বশেষ K লাইন বন্ধের দাম সর্বনিম্ন দামের চেয়ে কম হয়, তখন এটি একটি ব্রেকিংয়ের নির্দেশ দেয় এবং একটি শূন্যস্থান তৈরি করে।

এছাড়াও, রঙিন ফিল্টার এবং একটি সত্তা ফিল্টার যুক্ত করা হয়েছে। রঙিন ফিল্টারটি K- লাইনটির রঙের উপর ভিত্তি করে সংকেতগুলি ফিল্টার করে; সত্তা ফিল্টারটি K- লাইন সত্তার আকারের উপর ভিত্তি করে সংকেতগুলি ফিল্টার করে। এটি কিছু মিথ্যা সংকেত ফিল্টার করতে পারে।

কৌশলগত সুবিধা

এই কৌশলটির সুবিধাগুলো হলঃ

  1. দামের ব্যাপ্তি ধরুন, ট্রেন্ডের বিপরীত দিকগুলি নির্ণয় করুন, এবং সঠিকভাবে অতিরিক্ত ফাঁকা করুন
  2. রঙিন ফিল্টার এবং বাস্তব ফিল্টার, যা মিথ্যা সংকেত ফিল্টার করতে পারে
  3. নীতি লজিক সহজ এবং স্পষ্ট, সহজেই বোঝা যায় এবং প্যারামিটারগুলি সামঞ্জস্য করা যায়
  4. নীতিগুলি অপ্টিমাইজ করার জন্য অনেকগুলি প্যারামিটার রয়েছে

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

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. ভুল প্যারামিটার সেট করলে ট্রেডিং ফ্রিকোয়েন্সি ও ট্রেডিং ফি বেশি হতে পারে
  2. ভুলভাবে সেট করা ব্যাপ্তি, যার ফলে অনেকগুলি মিথ্যা সংকেত ব্যাপ্তি অতিক্রম করতে পারে
  3. প্রসঙ্গত, এপ্রিলের শেষের দিকে এপ্রিলের শেষের দিকে এপ্রিলের শেষের দিকে এপ্রিলের শেষের দিকে এপ্রিলের শেষের দিকে এপ্রিলের শুরুতে এপ্রিলের শেষ পর্যন্ত।
  4. দামের ফাঁক মোকাবেলা করতে অক্ষম

এই ঝুঁকিগুলি দূরত্বের প্যারামিটারগুলিকে সামঞ্জস্য করে এবং সংকেত ফিল্টারিংয়ের শর্তগুলিকে অনুকূলিত করে হ্রাস করা যেতে পারে।

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

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

  1. একটি স্থির N-root K-রেখার পরিবর্তে গতিশীলভাবে দামের ব্যাপ্তি সামঞ্জস্য করে
  2. স্টপ লজিক যুক্ত করুন, ক্ষতির ঝুঁকি হ্রাস করুন
  3. ফিল্টার প্যারামিটার অপ্টিমাইজ করুন এবং সংকেতের গুণমান উন্নত করুন
  4. দামের ফাঁক হ্যান্ডলিং লজিক যুক্ত করুন
  5. একাধিক সময়কালের বিচার সংকেত একত্রিত করে, ফাঁস হওয়া এড়াতে

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's Transient Zones Strategy v1.0", shorttitle = "TZ 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(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")

usecol = input(true, defval = true, title = "Use Color-Filter")
usebod = input(true, defval = true, title = "Use Body-Filter")

h_left = input(title = "H left", defval = 10)
h_right = -1
sample_period = input(title = "Sample bars for % TZ",  defval = 5000)
show_ptz = input(title = "Show PTZ", type = bool, defval = true)
show_channel = input(title = "Show channel", type = bool, defval = true)

fromyear = input(2018, defval = 2018, 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")

//By Jurij w/ TZ percent occurrence by SPYderCrusher

//barCount = nz(barCount[1]) + 1
//check history and realtime PTZ
h_left_low = lowest(h_left)
h_left_high = highest(h_left)
newlow = low <= h_left_low
newhigh = high >= h_left_high
plotshape(newlow and show_ptz, style=shape.triangledown, location=location.belowbar, color=red)
plotshape(newhigh and show_ptz, style=shape.triangleup, location=location.abovebar, color=green)
channel_high = plot(show_channel ? h_left_low : 0, color=silver)
channel_low = plot (show_channel ? h_left_high : 0, color=silver)

//check true TZ back in history
central_bar_low = low[h_right + 1]
central_bar_high = high[h_right + 1]
full_zone_low = lowest(h_left + h_right + 1)
full_zone_high = highest(h_left + h_right + 1)
central_bar_is_highest = central_bar_high >= full_zone_high
central_bar_is_lowest = central_bar_low <= full_zone_low
plotarrow(central_bar_is_highest ? -1 : 0, offset=-h_right-1)
plotarrow(central_bar_is_lowest ? 1 : 0, offset=-h_right-1)

//Color Filter
bar = close > open ? 1 : close < open ? -1 : 0

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 3 or usebod == false

//Signals
up1 = central_bar_is_lowest and body and (bar == -1 or usecol == false)
dn1 = central_bar_is_highest and body and (bar == 1 or usecol == false)
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body

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

if up1
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()