نحوه محاسبه صحیح نشانگر تبدیل فیشر

ساخت وبلاگ

من در حال نوشتن یک کتابخانه تجزیه و تحلیل فنی کوچک هستم که از مواردی تشکیل شده است که در TA-Lib در دسترس نیستند. من با نمونه ای که در Ctrader پیدا کردم شروع کردم و آن را با کد موجود در نسخه TradingView هماهنگ کردم. در اینجا کد اسکریپت کاج از TradingView آورده شده است:

len = input(9, minval=1, title="Length") high_ = highest(hl2, len) low_ = lowest(hl2, len) round_(val) => val>. 99؟. 999: وال<.99 ? -.999 : val value = 0.0 value := round_(.66 * ((hl2 - low_) / max(high_ - low_, .001) - .5) + .67 * nz(value[1])) fish1 = 0.0 fish1 := .5 * log((1 + value) / max(1 - value, .001)) + .5 * nz(fish1[1]) fish2 = fish1[1] 

در اینجا تلاش من برای اجرای شاخص است:

 کلاس عمومی فیشرترنسفرم: نشانگر پایگاهاعشاری عمومی [] ماشهاعشاری _maxhigh ؛اعشاری _minlow ؛اعشاری خصوصی _Value1 ؛اعشاری خصوصی _lastValue1 ؛عمومی ماهیگیری (شمع های ienumerable ، طول int): پایه (شمع)محافظت شده از Void Initialize ()Public Override Compute Compute (int startIndex = 0 ، int؟ endIndex = null)_minLow = Series.Average.Lowest(Length, index); _maxHigh = Series.Average.Highest(Length, index); _value1 = Maths.Normalize(0.66m * ((Maths.Divide(Series.Average[index] - _minLow, Math.Max(_maxHigh - _minLow, 0.001m)) - 0.5m) + 0.67m * _lastValue1)); _lastValue1 = _value1; Fish[index] = 0.5m * Maths.Log(Maths.Divide(1 + _value1, Math.Max(1 - _value1, .001m))) + 0.5m * Fish[index - 1]; Trigger[index] = Fish[index - 1];>>> 

کلاس IndicatorBase و Candleseries کلاس ریاضی را یاری می کند مشکل مقادیر خروجی در محدوده مورد انتظار به نظر می رسد ، با این حال فیشر تبدیل می شود که متقاطع من با آنچه در نسخه TradingView از شاخص می بینم مطابقت ندارد. سوال چگونه می توانم نشانگر تبدیل فیشر را در C#به درستی پیاده سازی کنم؟من می خواهم این را با خروجی Transform Fisher TradingView مطابقت دهد. آنچه من می دانم داده های خود را در برابر سایر شاخص ها که شخصاً نوشته ام و شاخص های TA-LIB را بررسی کرده ام و آن شاخص ها از آزمون های واحد من عبور می کنند. من همچنین داده های خود را در برابر شمع داده های TradingView توسط شمع بررسی کرده ام و دریافتم که داده های من مطابق انتظار مطابقت دارند. بنابراین من گمان نمی کنم که داده های من مسئله باشد.

مشخصات

enter image description here

CSV Data - NFLX 5 دقیقه AGG در تصویر زیر کد تبدیل فیشر در بالا است که به نمودار TradingView اعمال می شود. هدف من مطابقت با این خروجی تا حد امکان است. Fisher Cyan Trigger Magenta خروجی های انتظار می رود: متقاطع در 15:30 ET تکمیل شد

  • ارزش تقریبی فیشر 2. 86 است
  • مقدار تقریبی محرک 1. 79 است

 

متقاطع در ساعت 10:45 ET به پایان رسید

  • ارزش تقریبی فیش ر-3. 67 است
  • مقدار تقریبی محر ک-3. 10 است

خروجی های واقعی من:

متقاطع در 15:30 ET به پایان رسید

  • ارزش فیشر من 1. 64 است
  • مقدار ماشه من 1. 99 است

متقاطع در ساعت 10:45 ET به پایان رسید

  • ارزش فیشر م ن-1. 63 است
  • مقدار ماشه م ن-2. 00 است

فضل

برای آسانتر کردن زندگی شما ، من یک برنامه کنسول کوچک را با تست های واحد عبور و ناکامی کامل می کنم. تمام آزمایشات واحد در برابر همان مجموعه داده انجام می شود. تست های واحد عبور از یک نشانگر متوسط حرکت ساده در حال کار است. تست های واحد شکست خلاف شاخص تبدیل فیشر مورد نظر است.

به شما کمک کنید تا تست های فیشرترسفرم را پشت سر بگذارم و من به فضل اعطا می کنم.

enter image description here

اگر به منابع یا اطلاعات اضافی نیاز دارید ، فقط نظر دهید.

پاسخ های جایگزین که من در نظر می گیرم

  • Fishertransform کار خود را در C# ارسال کنید
  • توضیح دهید که چرا فیشرتانسفرم من در واقع همانطور که انتظار می رود کار می کند
فارکس به زبان ساده...
ما را در سایت فارکس به زبان ساده دنبال می کنید

برچسب : نویسنده : طاهره ایرانی بازدید : <-PostHit-> تاريخ : سه شنبه 3 مرداد 1402 ساعت: 16:17