به یک مسئله گیر کرده اید؟

ساخت وبلاگ

question-mark

Lightrun Answers برای کاهش Googling ثابت که همراه با اشکال زدایی از کتابخانه های شخص ثالث است ، طراحی شده است. این پیوندها را به تمام مکانهایی که ممکن است در هنگام شکار یک اشکال سخت به آنها نگاه کنید ، جمع می کند.

و اگر در پایان هنوز گیر کرده اید ، ما خوشحالیم که به یک تماس می پردازیم تا ببینیم چگونه می توانیم کمک کنیم.

با یک متخصص پاسخ های Lightrun صحبت کنید

مقدار ADX از افزونه بسیار متفاوت از TradingView ، فقط من است یا من مقداری ورودی را خراب کردم؟

شرح صدور

بنابراین ابتدا این مشکل در چندین افزونه و کد ادامه دارد. من عاشق کتابخانه pandas_ta هستم ، بنابراین امیدوار بود که بتوانیم در اینجا راه حلی پیدا کنیم.

اول از همه در اینجا تفاوت در مقادیر است:imageimage

در اینجا کد من است:

def que_copy (تیک): ticker_data = pd. dataframe. copy (df [df ["ticker"] == Ticker] ، Deep = false) ticker_data. set_index ('Date' ، inplace = true) Ticker_Data test_data = ell_copy (""mrpl ") test_data [" adx "] = ta. adx (high = test_data. high ، low = test_data. low ، close = test_data. close) [" adx_14 "] test_data [" admp_14 "] = ta. adx (بالا = =test_data. high ، low = test_data. low ، close = test_data. close) ["dmp_14"] test_data ["admn_14"] = ta. adx (high = test_data. high ، low = test_data. low ، close = test_data. close)["dmn_14"] test_data. loc ["2022-04-19 15: 15: 00+05: 30":] 

image

داده های عملکرد "هر نسخه" به این روش بازگردانده می شود

image

پس از افزودن داده های ADX

امیدوارم که این کافی باشد ، متوجه شدم که کد موجود در TradingView با آنچه در اینجا استفاده می کنیم متفاوت است. آیا دلیلش آن است؟آیا تلویزیون از فرمول دیگری برای ADX استفاده می کند؟

من خیلی رمزگذار نیستم که به کمک شما تکیه می کنم.

لطفا کمک کنید و متشکرم

موضوع تحلیلی

  • حالت:
  • یک سال پیش ایجاد شده است
  • نظرات: 13 (5 توسط نگهبانان)

نظرات برتر GitHub

1 واکنش هاکوماکو اظهار داشت ، 20 ژوئیه 2022

دلیل تفاوت ADX متفاوت است در حالی که TradingView مقدار اولیه را متفاوت می کند ، Pands-Ta چنین نمی کند.

من اخیراً با این مسئله روبرو شدم و در مورد جزئیات شاخص های ADX نمی دانم ، اما فهمیدم که با نگاه کردن به کد ، تفاوت از کجا ناشی می شود.

همانطور که ممکن است بدانید ، RMA برای به دست آوردن مقدار فعلی به مقدار قبلی بستگی دارد. به نظر می رسد نحوه تعیین مقدار اول RMA متفاوت است اما TradingView از میانگین مقادیر استفاده می کند.

در زیر بلوک کد عملکرد ADX آورده شده است. نسخه (Master ، Dev) مهم نیست ، زیرا به نظر نمی رسد که هر دو ارزش اول را داشته باشند.

def adx( high: Series, low: Series, close: Series, length: Int = None, lensig: Int = None, scalar: IntFloat = None, mamode: str = None, drift: Int = None, offset: Int = None, **kwargs: DictLike ) >dataFrame :. k = scalar / atr_ dmp = k * ma (mamode ، pos ، طول = طول) dmn = k * ma (mamode ، neg ، طول = طول) dx = scalar * (dmp - dmn) . abs () / (dmp +dmn) adx = ma (mamode ، dx ، طول = lensig). 

تمام DMP ، DMN و ADX به روش MA ("RMA" ،.) بستگی دارد.

اگر به عملکرد عمیق تر بپردازید ، اساساً از روش pandas. dataframe. ewm استفاده می کند.

این پارامتر تنظیم شده پیش فرض را دارد که باید به آن توجه کنید.

Setting it to True acts as the following: $y_t = frac + (1 - alpha)^2 x_ + … + (1 - alpha)^t x_0>$

FALSE همان چیزی است که ما می خواهیم (برای همگام سازی با TradingView): $ شروع شروع y_0 & = x_0 y_t & = (1 - alpha) y_ + alpha x_t ، end end $ $

به نظر می رسد راهی برای دستیابی به قسمت $ y_0 = x_0 $ ارائه نمی دهد ، و من هم نتوانستم آن را پیدا کنم.(شخصی این سؤال را در Stackoverflow پرسید)

برای کار در این زمینه ... شما باید مقادیر ورودی را کمی هک کنید تا نتیجه مطلوب بدست آورید:

 # مقدار اولیه را روی جمع () "طول" تنظیم کنید. pos. iloc [طول 1] = pos [: طول] . sum () pos [: طول 1] = 0 neg. iloc [طول 1] = neg [: طول] . sum () neg [: طول-1] = 0. dmp = k * pos. ewm (alpha = alpha ، تنظیم = false ، min_periods = طول) . mean () dmn = k * neg. ewm (alpha = alpha ، تنظیم = false ، min_periods = طول) . mean () 

ADX کمی مشکل تر است. به طول هر دو مقدار DMP و DMN (حداقل برای TradingView) نیاز دارد. اگر داده های شما از 06-19 شروع شود ، اولین VAUE از ADX در 07-16 ظاهر می شود که 27 روز بعد با فرض اینکه طول آن به 14 تنظیم شده است.

 بشر# مقدار اولیه را روی جمع () "طول" تنظیم کنید. dx = dx. shift (-l طول) dx. iloc [طول 1] = dx [: طول] . sum () dx [: طو ل-1] = 0 adx = dx. ewm (alpha = alpha ، تنظیم = false ،min_periods = طول) . mean () adx = adx. shift (طول) # Rollback 

من مطمئن نیستم که این یک اشکال یا چیز دیگری محسوب می شود ، اما امیدوارم توضیحات من کمک کند.

خبرهای فارکس...
ما را در سایت خبرهای فارکس دنبال می کنید

برچسب : نویسنده : شهره لرستانی بازدید : 31 تاريخ : چهارشنبه 15 شهريور 1402 ساعت: 8:46