এই কৌশলটি ট্রেন্ড সনাক্তকরণ এবং ট্রেড সিগন্যালের জন্য হেকিন-আশি মোমবাতি এবং পিএসএআর সূচককে একত্রিত করে। এটি ট্রেন্ড বিপরীত সনাক্তকরণের জন্য পিএসএরের সাথে হেকিন-আশি গোলমাল ফিল্টারিং ব্যবহার করে, মাঝারি-দীর্ঘমেয়াদী প্রবণতা ক্যাপচার করার লক্ষ্যে।
কৌশলগত যুক্তি:
হিসাব করুন হেকিন-আশি খোলা, বন্ধ, উচ্চ এবং নিম্ন।
মোমবাতি রঙ অন্তর্বর্তীকালীন ষাঁড় / ভালুক প্রবণতা নির্ধারণ করে।
পিএসএআর গণনা করুন এবং হেকিন-আশি মূল্য অতিক্রম করার সময় প্রবণতা বিপরীততা চিহ্নিত করুন।
PSAR ডাউনট্রেন্ডে লম্বা এবং PSAR আপট্রেন্ডে শর্ট।
নতুন উচ্চতা/নিম্নতা এবং ত্বরণ ফ্যাক্টরের উপর ভিত্তি করে পিএসএআর অভিযোজিত হয়।
উপকারিতা:
সংমিশ্রণ নির্ভুলতা উন্নত করে - হেইকিন-আশি গোলমাল ফিল্টার করে, পিএসএআর বিপরীতমুখী ধারণ করে।
পরিবর্তিত বাজারের অবস্থার সাথে সামঞ্জস্যপূর্ণ PSAR।
স্পষ্ট নিয়ম প্যারামিটার অপ্টিমাইজেশান উপকার.
ঝুঁকি:
হেইকিন-আশি এবং পিএসএআর-এর পিছিয়ে থাকা সেরা এন্ট্রিগুলি মিস করতে পারে।
পিএসএআর অস্থির প্রবণতা মধ্যে মিথ্যা সংকেত প্রবণ।
হুইপসাউয়ের বিরুদ্ধে প্রতিরক্ষা করার জন্য কঠোর ঝুঁকি ব্যবস্থাপনা প্রয়োজন।
সংক্ষেপে, এই কৌশলটি প্রবণতা প্রসঙ্গের জন্য হেইকিন-আশিকে পিএসএআর-এর সাথে টাইমিংয়ের জন্য জোড়া দেয়। বিলম্ব এবং মিথ্যা সংকেতগুলির জন্য সতর্কতার প্রয়োজন হয় তবে দীর্ঘমেয়াদী স্থিতিশীল লাভের জন্য অপ্টিমাইজেশনের মাধ্যমে এটি কাটিয়ে উঠতে পারে।
/*backtest start: 2023-08-12 00:00:00 end: 2023-09-11 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("QuantNomad - Heikin-Ashi PSAR Strategy", shorttitle = "HA-PSAR[QN]", overlay = false) //////////// // INPUTS // start = input(0.02, title = "PSAR Start") increment = input(0.02, title = "PSAR Increment") maximum = input(0.2, title = "PSAR Max") start_year = input(2018, 'Start Year', input.integer) start_month = input(1, 'Start Month', input.integer) start_day = input(1, 'Start Day', input.integer) end_year = input(2100, 'End Year', input.integer) end_month = input(1, 'End Month', input.integer) end_day = input(1, 'End Day', input.integer) date_start = timestamp(start_year, start_month, start_day, 00, 00) date_end = timestamp(end_year, end_month, end_day, 00, 00) // if time is in correct period time_cond = time >= date_start and time <= date_end // Calculation HA Values haopen = 0.0 haclose = (open + high + low + close) / 4 haopen := na(haopen[1]) ? (open + close) / 2 : (haopen[1] + haclose[1]) / 2 hahigh = max(high, max(haopen, haclose)) halow = min(low, min(haopen, haclose)) // HA colors hacolor = haclose > haopen ? color.green : color.red psar = 0.0 // PSAR af = 0.0 // Acceleration Factor trend_dir = 0 // Current direction of PSAR ep = 0.0 // Extreme point trend_bars = 0 sar_long_to_short = trend_dir[1] == 1 and haclose <= psar[1] // PSAR switches from long to short sar_short_to_long = trend_dir[1] == -1 and haclose >= psar[1] // PSAR switches from short to long trend_change = barstate.isfirst[1] or sar_long_to_short or sar_short_to_long // Calculate trend direction trend_dir := barstate.isfirst[1] and haclose[1] > haopen[1] ? 1 : barstate.isfirst[1] and haclose[1] <= haopen[1] ? -1 : sar_long_to_short ? -1 : sar_short_to_long ? 1 : nz(trend_dir[1]) trend_bars := sar_long_to_short ? -1 : sar_short_to_long ? 1 : trend_dir == 1 ? nz(trend_bars[1]) + 1 : trend_dir == -1 ? nz(trend_bars[1]) - 1 : nz(trend_bars[1]) // Calculate Acceleration Factor af := trend_change ? start : (trend_dir == 1 and hahigh > ep[1]) or (trend_dir == -1 and low < ep[1]) ? min(maximum, af[1] + increment) : af[1] // Calculate extreme point ep := trend_change and trend_dir == 1 ? hahigh : trend_change and trend_dir == -1 ? halow : trend_dir == 1 ? max(ep[1], hahigh) : min(ep[1], halow) // Calculate PSAR psar := barstate.isfirst[1] and haclose[1] > haopen[1] ? halow[1] : barstate.isfirst[1] and haclose[1] <= haopen[1] ? hahigh[1] : trend_change ? ep[1] : trend_dir == 1 ? psar[1] + af * (ep - psar[1]) : psar[1] - af * (psar[1] - ep) plotcandle(haopen, hahigh, halow, haclose, title = "HA", color = hacolor) plot(psar, style=plot.style_cross, color=trend_dir == 1 ? color.green : color.red, linewidth = 2) // Strategy strategy.entry("long", true, when = sar_short_to_long and time_cond) strategy.entry("short", false, when = sar_long_to_short and time_cond)