وقتی به سهام نگاه می کنیم به چه چیزی نگاه می کنیم؟
ابزارهای اساسی برای شروع سریع با سهام چیست؟
چگونه می دانیم چه موقع باید وارد بازار سهام شویم و از آن خارج شویم؟
با توجه به سهولت در تنظیم حساب های تجاری در وسط همه گیر ، بسیاری به سرمایه گذاری شخصی روی آورده اند. و اگر این مقاله را می خوانید ، پس تبریک می گویم ، این اولین قدم شما برای یادگیری خواهد بود.
اگر می خواهید تجارت کنید ، برای شروع باید این سؤالات را بپرسید:
- چه سهام برای خرید؟(ارزش)
- چه موقع سهام را بخرید یا بفروشید؟(تکانه)
من اولین سؤال را در سرمایه گذاری ارزش پوشش داده ام. بنابراین در این نشریه ، من به تعریف حرکت در شاخص های کلیدی بازار (KMI) می پردازم.
هدف از این انتشار این است که شما یک روش برای تجزیه و تحلیل حرکت سهام با KMI با استفاده از کد سریع و کثیف پایتون را درک کنید. فقط 10 دقیقه برای خواندن این مقاله - یا حتی بهتر ، مشارکت کنید. سپس می توانید یک نگاه اجمالی سریع برای کدگذاری اولین تحلیل مالی خود با KMI داشته باشید.
بیش از 3 سال سرمایه گذاری ، من 62 ٪ از بازده سهام سهام را دریافت کرده ام. این روش ساده است و شامل آرامش خاطر است که اغلب سرمایه گذاران پرخطر را از بین می برد.
افشای اطلاعات: این بازتاب نتایج سرمایه گذاری شخصی من در مورد روش سرمایه گذاری ارزش در طی سه سال گذشته است. این پست به معنای راه اندازی دستور کار خارج از اشتراک و بازتاب شخصی نیست. اگر به دنبال نقطه شروع برای تجزیه و تحلیل سهام با داده هستید. در اینجا چند دستورالعمل از من آورده شده است.
در 12 دقیقه: تجزیه و تحلیل سهام با پاندا و Scikit-Lea
قیمت سهام را به سرعت با پایتون تجزیه و تحلیل ، تجسم و پیش بینی کنید
داشبورد سرمایه گذاری ارزش با پیتون سوپ زیبا و داش پایتون
مروری بر خراش وب با تجسم سریع برای سرمایه گذاری ارزش
دستورالعمل ها
نوت بوک
در این آموزش من یک دفترچه Google Colab (colaboratory) ارائه می دهم تا یک بازپرداخت تجزیه و تحلیل داده ها را برای شما فراهم کنم تا خودتان با آن بازی کنید. این کد ، خروجی و متن توصیفی را در یک سند ترکیب می کند - آموزش بیشتر.
stocksmarketindicators
توضیحات ویرایش
You can just click “Runtime>همه را در Google Colab اجرا کنید تا تمام کدها را اجرا کنید و نمودارها را تولید کنید. همچنین می توانید با تعریف پیوند جدید GitHub در متغیر پیوند ، مخزن پرونده را تغییر دهید.
در آخر ، می توانید تمام نمودارهایی را که ایجاد کرده اید با عدم استفاده از خط زیر ذخیره کنید."عنوان" متغیر را برای نامگذاری عنوان تصویر تعریف کنید.
plt. savefig (f.png ')
داده های واردات
من داده های CSV قیمت سهام Google Raj Shah را وام گرفتم که به طور عمومی در GitHub میزبان است. کد و نمودارها در زیر ارائه شده است.
واردات پاندا به عنوان PDدرخواست های وارداتوارد کردن numpy به عنوان npوارد کردن matplotlib. pyplot به عنوان pltDateTime را به عنوان dt وارد کنید# احساس راحتی کنید که پیوند را به هر چیزی که می خواهید تغییر دهید یا شاید وب را به ارزش خود بکشید.پیوند = ‘https://raw. githubusercontent.com/raj-shah14/predicting-google-stock-prices/master/google_stock_price_train. csv 'r = درخواست ها. get (پیوند ، هدرها =)pandas_data = pd. read_csv (پیوند)چاپ (pandas_data)
تمیز کردن داده ها
در بیشتر تجزیه و تحلیل شاخص های کلیدی ، خوب است که داده ها را برای بسته شدن شکاف تاریخ های گمشده در داده های سهام نجس ، ارسال و بازگرداندن داده ها انجام دهید. این برای جلوگیری از انتشار مقادیر تهی در تجزیه و تحلیل ما و استفاده از نزدیکترین مجموعه داده آینده موجود برای پوشش تاریخ های گمشده است.
# رو به جلو/عقب تاریخ های گمشده را پر کنیدdef ffill_bfill (قیمت):prices_temp = prices. copy ()prices_temp = prices_temp. fillna (روش = 'ffill')prices_temp = prices_temp. fillna (روش = 'bfill')بازگشت قیمت_تمپ
میانگین حرکت ساده (SMA)
SMA ابزاری است که معمولاً توسط بسیاری از تحلیلگران برای پیش بینی تغییرات قیمت امنیتی استفاده می شود. برای شناسایی روندها و چرخه های کلی ، قیمت ها را در یک پنجره به طور متوسط می کند. این از طریق میانگین نورد قیمت عادی سهام محاسبه می شود. هر نقطه داده به طور متوسط در هر دوره از پنجره نورد به طور متوسط است.
چرا این کار می کند؟
SMA در تعیین اینکه آیا قیمت دارایی افزایش خواهد یافت یا با نگاه کردن به میانگین میانگین برای هر پنجره ، کمک می کند. میانگین های کوتاه مدت نسبتاً سریع به تغییرات قیمت در هر بورس اوراق بهادار پاسخ می دهند در حالی که میانگین طولانی مدت نسبت به واکنش در برابر تغییرات قیمت کند است.
از نظر برنامه ای ، ما فرمول را به شرح زیر محاسبه می کنیم:
قیمت ها (نرمال) . rolling (پنجره) . mean ()با سیگنال ها: * Overbought signals: Price/SMA Ratio>1. 05* سیگنال های Oversold: نسبت قیمت/SMA<0.95(Stockscharts.com):
ما می توانیم SMA را با استفاده از کدهای زیر استخراج کنیم
def get_sma (قیمت ، پنجره):prices_temp = prices. copy ()sma = prices_temp. rolling (پنجره = پنجره) . mean ()sma. columns = [‘sma"]بازگشت SMAdef get_psma (قیمت ، SMA):prices_temp = prices. copy ()PSMA = قیمت_تمپ/SMAPSMA را برگردانیدprice_df ['sma'] = get_sma (price_df ['price'] ، 10)price_df ['psma'] = get_psma (price_df ['price'] ، price_df ['sma'])
Bollinger Bands درصد (BB / BBP)
باندهای بولینگر با ترسیم خطوط با 2 شکاف انحراف استاندارد از میانگین در هر زمان معین ترسیم می شوند. این انحرافات استاندارد با قیمت های عادی مشابه SMA استفاده می شود.
قیمت ها (نرمال) . rolling (پنجره = 20) . std ()
در این حالت ، ما از Bollinger Bands درصد (BBP) استفاده می کنیم زیرا سیگنال خرید و عمل واضح تر است. این قیمت امنیت را متناسب با چقدر نزدیک به BB فوقانی و تحتانی قرار می دهد. با توجه به StockScharts.com ، این سطح اصلی روابط است:
با سیگنال ها: * BBP = (قیمت - باند های پایین) / (باند های فوقانی - باند های پایین) * Overbought scans → BBP>1* اسکن های Oversold → BBP
چرا این کار می کند؟
BBP کار می کند زیرا این امر حاکی از آن است که بیش از حد و شرایط را از بین می برد. این موقعیت های ایده آل را که می خواهیم به دنبال همبستگی موقعیت های کوتاه مدت با مدت میان مدت باشیم ، مشخص می کند. در حالت ایده آل وقتی روند متوسط به پایان رسید ، کوتاه مدت بیش از حد است ، اما وقتی روند متوسط پایین می آید ، کوتاه مدت بیش از حد پیش بینی می شود.
این کار با کمیت قیمت نزدیک به BB فوقانی و پایین آن کار می کند که نشانگر بیش از حد قوی یا بیش از حد قوی است. با استفاده از این ، ما هنوز هم می توانیم روندها را با BB مشخص کنیم ضمن اینکه وضعیت آن را تعیین می کنیم تا اقدامات را در صورت مناسب بودن نقطه ورود انجام دهیم.
def get_bollinger_bands (قیمت ، پنجره ، SMA):prices_temp = prices. copy ()std = prices_temp. rolling (پنجره = پنجره ، min_periods = پنجره) . std ()std. columns = [‘sma"]bb = pd. dataframe (index = prices. index ، ستون ها = ["پایین" ، "بالا"]BB [‘بالایی '] = SMA + STD * 2bb [‘پایین '] = sma - std * 2BB ["قیمت"] = Prices_tempبازگشت BBdef get_bbp (bb):BBP = (BB ["قیمت"] - BB [‘پایین"])/(BB [‘بالایی"] - BB [‘پایین"])bbp_df = bbp. to_frame ()bbp_df. columns = [‘bbp ']BBP_DF را برگردانید
شاخص قدرت نسبی (نشانگر حرکت RSI)
RSI یک نشانگر شتاب برای شناسایی میزان تغییرات قیمت برای سیگنال بیش از حد و بیش از حد است. RSI را می توان به عنوان یک نوسان ساز با 0 تا 100 قرائت نمایش داد و می تواند با 14 دوره استاندارد روز در هفته تنظیم شود.
این فرمول شامل محاسبه حرکت از طریق اختلاف قیمت سهام در یک دوره پنجره با قیمت اولیه به عنوان مخرج است.
RSI = 100-100/(1+متوسط افزایش/میانگین ضرر)سیگنال ها: * Overbought signals = RSI>70* سیگنال های Oversold = RSI
چرا این کار می کند؟
حرکت به ما امکان می دهد سیگنال های نوسان را به صورت برنامه ای شناسایی کنیم. این بدان معنی است که ما می توانیم تشخیص دهیم که آیا شاخص به جلو و عقب تغییر می کند یا خیر. سیگنال ها می توانند هنگامی که به دنبال واگرایی ، نوسان نوسان ساز و صلیب های خط میانی هستیم ، بوجود بیایند.
از طریق این سیگنال ها ، معامله گران می توانند حرکت صعودی و نزولی را شناسایی کنند. این امر به معامله گران این امکان را می دهد تا از احساسات بازار استفاده کنند تا افزایش یا کاهش قیمت سهام را تا زمان نوسان مخالف پیش بینی کنند. این یک مسابقه خوب برای مقایسه با SMA و BBP Short است که نسبتاً سریع به تغییرات قیمت در بازار سهام پاسخ می دهند.
def get_rsi (قیمت ، SD ، دوره = 14):prices_temp = prices. copy ()Prices_temp [‘up '] = 0Prices_temp [‘Down '] = 0Prices_temp [‘RSI '] = 0برای شاخص ، ردیف در قیمت_temp. iterrows ():current_datetime = فهرستprev_day = current_datetime-dt. timedelta (روز = 1)تلاش كردن:if prev_day>= SD:prev_price = prices_temp. loc [prev_day ، "قیمت"]اگر prev_pricePrices_temp. loc [فهرست ، "UP"] = ردیف [‘قیمت"] - prev_priceelif prev_price>ردیف ["قیمت"]:Prices_temp. loc [فهرست ، "پایین"] = prev_price - ردیف ["قیمت"]بجز:ادامه هیدup_ewm = prices_temp [‘up ']. ewm (span = دوره) . mean ()down_ewm = prices_temp [‘down ']. ewm (span = دوره) . mean ()prices_temp [‘rsi '] = دور (up_ewm/(up_ewm+down_ewm) * 100،0)اضافه شده_دیت = SD + dt. Timedelta (روز = (دوره 1))Prices_temp. loc [: اضافه شده_دیت ، "RSI"] = np. nanRetu Prices_temp [[‘RSI ']
price_df ['rsi'] = get_rsi (price_df ، dt. datetime (2008،1،28))
MACD
مشابه RSI ، MACD همچنین از شاخص های حرکت استفاده می کند که روابط بین دو میانگین متحرک را ترسیم می کند. این فرمول 26 دوره از 12 دوره میانگین حرکت نمایی (EMA) را کم می کند. جدا از فرمول MACD ، ما همچنین خط سیگنال را که طی 9 روز EMA محاسبه می شود ، شناسایی می کنیم. اگر MACD از بالای خط سیگنال عبور کند و وقتی MACD از زیر خط سیگنال عبور می کند ، اقدام به خرید می کنیم.
# از سرمایه گذاریMACD = 12 دوره EMA - 26 دوره EMA
چرا این کار می کند؟
MACD خطوط سیگنال را برای شناسایی سیگنال های خرید یا فروش پیشنهاد می کند. معامله گران ممکن است هنگام عبور از خط از خط سیگنال از MACD برای خرید استفاده کنند. این شتاب در نقاط داده را برای شناسایی نقاط ورود مشخص می کند و از استفاده از میانگین متحرک نمایی (EMA) مورد استفاده در پشت سر هم با RSI استفاده می کند تا تصویری واضح تر از حرکت در بازار را ترسیم کند.
def get_macd (قیمت):exp_1 = قیمت. ewm (دهانه = 12 ، تنظیم = غلط) . mean ()exp_2 = قیمت. ewm (دهانه = 26 ، تنظیم = نادرست) . mean ()macd_list = exp_1 - exp_2signal_macd_list = macd_list. ewm (span = 9 ، تنظیم = false) . mean ()macd_df = pd. concat ([macd_list ، signal_macd_list] ، محور = 1)macd_df. columns = ["MACD" ، "سیگنال"]بازگشت MACD_DF
در حجم تعادل (obv)
OBV یک سیگنال مبتنی بر حجم است که از جریان حجمی برای پیش بینی تغییرات قیمت سهام با استفاده از داده های حجمی استفاده می کند. هر چه OBV بالاتر باشد، قیمت ها بالاتر می رود. برعکساین نشان دهنده تقاضاهای بزرگ برای سهام خاص است.
علامت:* وقتی قیمت بسته شدن امروز بالاتر است، OBV فعلی = OBV قبلی + حجم امروز.* وقتی قیمت بسته شدن امروز کمتر است، OBV فعلی = OBV قبلی - حجم امروز.* وقتی قیمت بسته شدن امروز = قیمت بسته شدن دیروز، OBV فعلی = OBV قبلی
چرا این کار می کند؟
OBV بر احساسات جمعیت تأثیر می گذارد که برای پیش بینی نتایج صعودی یا نزولی مفید است. این سیگنال ها را مقایسه می کند که هیستوگرام های حجمی را در پایین نمودارهای قیمت شناسایی می کنند. این به تحلیلگران کمک می کند تا سرمایه گذاران و رابطه بین حجم و قیمت را در یک جدول زمانی متوالی ردیابی کنند. در حالت ایده آل، این می تواند با شاخص های دیگر مانند (SMA، BBP، و RSI) برای پیگیری تغییرات قیمت ها و تعیین روند حرکت قیمت سهام جفت شود.
def get_obv(prices, sd, volume):price_temp = Prices. copy()volume_temp = volume. copy()price_temp. columns = ['قیمت']volume_temp. columns = ['Volume']price_temp['Volume'] = volume_temp['Volume']price_temp['obv'] = 0برای index، ردیف در price_temp. iterrows():تلاش كردن:current_datetime = فهرستprev_day = current_datetime-dt. timedelta (روز = 1)if prev_day>= SD:prev_price = price_temp. loc[prev_day,'Price']prev_obv = price_temp. loc[prev_day,'obv']اگر prev_priceprice_temp. loc[index,'obv'] = prev_obv + ردیف['Volume']elif prev_price>ردیف ["قیمت"]:price_temp. loc[index,'obv'] = prev_obv — ردیف['Volume']دیگر:price_temp. loc[index,'obv'] = prev_obvبجز:ادامه هیدقیمت_دمای بازگشتی[['obv']]
price_df['obv'] = get_obv(price_df[['Price']], dt. datetime(2008, 1, 28), volume_df)
با آن، امیدوارم که بتوانید شروع به جستجوی این سیگنال ها و خرید سهام خود کنید.
کدنویسی و تلاش مبارک :)
درباره نویسنده
وینسنت با سوء استفاده از اینترنت با ML @ Google مبارزه می کند. وینسنت از تجزیه و تحلیل داده های پیشرفته، یادگیری ماشین و مهندسی نرم افزار برای محافظت از کاربران Chrome و Gmail استفاده می کند.
سولی دئو گلوریا
منابع
- Google Graph Mining and Leaing
- گراف شبکه های عصبی در TF و Keras با Spectral
کتاب آموزش بورس...
ما را در سایت کتاب آموزش بورس دنبال می کنید
برچسب : نویسنده : محمود استادمحمد بازدید : 40 تاريخ : دوشنبه 28 فروردين 1402 ساعت: 13:12