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