چگونه ربات تریدر با زبان پایتون بنویسیم - قسمت اول: نمودار های مالی

چگونه ربات تریدر با زبان پایتون بنویسیم - قسمت اول: نمودار های مالی

چرا ربات معامله گر (تریدر) بنویسیم؟

بعد از حدود دو سال ترید(Trade) کردن، یکی از سخت ترین چالش‌های آن را کنترل احساسات یافتم. سود بیشتر و ضرر کمتر، دو احساس از احساسات پایه ای انسان که ترس و طمع را تحریک می‌کنند. ترس از دست دادن سرمایه و طمع بدست آوردن بیشتر آن، باعث گرفتن تصمیماتی بی منطق و خلاف برنامه و در اکثر وقت ها پرضرر می شود. حال راه حل این مسئله چیست؟ یا باید سعی کنم مانند مرتاض های هندی، با سال ها تلاش بر تمام احساسات انسانی خود غلبه کنم، یا اینکه سعی کنم از ابزاری استفاده کنم که بتوانم در آن کاملا منطق خود را بدون دخالت احساسات پیاده کنم. دقیقا مثل یک ربات!

در این مطلب سعی می کنیم به شما مهارت های لازم برای نوشتن یک ربات تریدر را با زبان پایتون آموزش دهیم. در قسمت اول و دوم به معرفی و بحث در مورد مقدمات می پردازیم، و در قسمت سوم درگیر برنامه نویسی و پیاده سازی ربات می‌شویم.

آشنایی با نمودار های بازار مالی

در بازار های مالی از چند نوع نمودار استفاده می شود که رایج ترین آن ها، نمودار شمعی یا candle chart است. در این نمودار، جهت مثبت محور ایکس(X) در راستای زمان است و جهت مثبت محور وای(Y) در راستای افزایش قیمت بر حسب واحد است. سعی می کنیم مفاهیم را به صورت کلید واژه بیان کنیم تا ساده تر باشد و بهتر در حافظه بماند.

عکس 1:نمونه ای از یک نمودار شمعی

شمع یا کندل (candle):

  • واحد زمانی: هر کدام از این کندل ها یک واحد زمانی را شامل می‌شوند، این واحد به انتخاب خود ماست ولی عموما واحدهای محبوب میان تریدر‌ها، واحد 5 دقیقه‌ای، 15 دقیقه ای، یک ساعته و یک روزه است.
  • چهار عدد اصلی: هر یک از این کندل ها 4 قیمت مهم را به ما نشان می‌دهند؛ قیمت در شروع و پایان واحد زمانی، و قیمتِ حداقل و حداکثر که به این حداقل و حداکثر سایه یا شَدو (shadow) نیز می‌گویند و به صورت خط‌های نازکی در بالا و پایین ستون اصلی قیمت ظاهر می‌شوند.
  • انواع کندل ها: دو نوع کندل وجود دارد، کندل سبز یا کندل صعودی که نشان دهنده این است که قیمت پایانی بیشتر از قیمت شروع در واحد زمانی است، و کندل قرمز یا نزولی که نشان دهنده این است که قیمت پایانی، کمتر از قیمت شروع است.
عکس 2: این عکس نمونه یک کندل است

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

جفت یا پیر (pair):

جفت در بازارهای مالی به معنی آن است که واحد قیمت ما چیست. به عنوان مثال ما می‌توانیم قیمت یک عدد پراید را بر حسب ریال ایران ببینیم، یا می‌توانیم قیمت آن را بر حسب دلار آمریکا ببینیم یا حتی می‌توانیم قیمت آن را بر حسب هر گرم طلا ببینیم. چند نکته خیلی مهم در مورد جفت‌ها حائز اهمیت است:

  • خرید و فروش با کالای گران‌بهاتر به جای واحد رایج:

فرض کنید که ما می‌خواهیم سرمایه ما همیشه به طلا باشد. یعنی به جای این که برای خرید و فروش‌های خود از ریال یا دلار استفاده کنیم، تمام دارایی خود را به طلا تبدیل می کنیم و با طلا می خریم و به طلا می فروشیم. در این حالت می‌توانیم ارز میانی برای معاملات را حذف کنیم. ولی برای انجام این کار لازم است که شرایطی فراهم شود که بشود با طلا خرید یا به طلا فروخت. به عنوان مثال باید فروشنده ها نیز قبول کنند که به جای پول نقد، از ما طلا دریافت کنند، و یا باید خریداری باشد که حاضر باشد به جای پول نقد به ما طلا بدهد.

  • صرافی‌ها این فضا را برای ما فراهم می‌کنند و حتی نمودار‌های قیمت برای جفت‌های گوناگون را در اختیار ما قرار می‌دهند.
  • هر جفتی وجود ندارد! در صرافی‌های مختلف ارزها یا موجودیت‌هایی که به عنوان واحد استفاده می‌شوند واحد های معروف و معتبری هستند که افراد زیادی می خواهند دارایی‌های خود را به با آن نگه‌دارند. به عنوان مثال در فضای رمز ارز‌ها(Cryptocurrency)، بیت‌کوین(Bitcoin) و اتریوم(Ethereum) در اکثر صرافی ها به عنوان واحد میانی قابل قبول هستند.

حجم معاملات:

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

عکس 3: نمودار بیت کوین بر حسب دلار که در پایین آن حجم معاملات نیز نمایش داده شده است.

صرافی:

برای خرید و فروش رمزارز‌ها، ما به یک واسط نیاز داریم تا بتوانیم به عنوان مثال بیت‌کوین خریداری کنیم. این امر شبیه خرید و فروش دلار از صرافی‌های میدان فردوسی تهران است. تعدادی نکته در مورد صرافی‌ها وجود دارد که در ادامه به آن‌ها می‌پردازیم:

  • حجم معاملات در صرافی: در صرافی‌های مختلف، رمزارز‌ها با حجم‌های گوناگونی در روز معامله می‌شوند. به عنوان مثال اگر به سایت بایننس(Binance) بروید، در نمودار بیت‌کوین به دلار (گفته می‌شود جفت ارز بیت‌کوین/دلار) مشاهده می‌کنید که در 24 ساعت گذشته، حدودا 29 هزار واحد بیت‌کوین معامله شده است که با توجه به میانگین قیمت روز بیت‌کوین، مبلغی بالغ بر یک میلیارد و صد و سی و یک میلیون دلار می‌شود.
  • درآمد صرافی: شاید برای‌تان سوال پیش بیاید که منبع درآمد صرافی، که در آن فارغ از بقیه رمزارز‌ها، فقط بیت‌کوین یک میلیارد دلار معامله شده است چیست. در پاسخ به این سوال می‌گویم: کارمزدی کمتر از دو دهم درصد در هر معامله. شاید به نظر کم بیاید اما اگر کارمزدی که بایننس در کمترین حالت از فقط معامله‌های بیت‌کوین در سیستم خود بدست آورده است را بررسی کنیم، به عددی حدود دو میلیون دلار در روز می‌رسیم!
  • موجودی صرافی: دقیقا مانند صرافی‌های میدان فردوسی که گاهی دلار دارند یا ندارد، یا بعضی از آن‌ها ارز‌هایی می‌فروشند که بقیه ندارند، صرافی‌های فضای رمزارز‌ها هم هر کدام تعداد محدودی رمز‌ارز برای معامله دارند که معمولا در لیستی در سایت خود آن رمز‌ارزها را نمایش می‌دهند.
  • API: اگر هدف ما نوشتن رباتی است که بتوانیم در صرافی‌ها به صورت خودکار خرید و فروش کنیم، لازم است که صرافی ما امکان اتوماتیک ترید کردن را برای ما از طریق API فراهم کرده باشد.
  • صرافی‌های مطرح جهانی در حوزه رمزارز‌ها:
  • صرافی‌های با کیفیت داخلی در حوزه رمزارز‌ها:

این سایت ها سایت های پیشنهادی بنده هستند و من صرفا از آنها استفاده کردم، پذیرش ریسک استفاده از آنها به خودتان بستگی دارد.

اکنون یک مثالی ببینیم تا بفهمیم که چگونه باید این نمودار ها را خوانده و تحلیل کنیم.

عکس 4: نمونه ای دیگر از یک کندل چارت

عکس بالا قیمت و حجم معاملات انجام شده بیت‌کوین را در چند ماه گذشته بر حسب دلار در صرافی بایننس نمایش میدهد. همانطور که مشاهده می‌کنید، قیمت با کندل‌های سبز به بالا رفته و با کندل های قرمز به پایین آمده است. ستونهای پایین عکس، نمایش دهنده حجم معاملات در هر کندل است. خط افقی سبز رنگی که در وسط نمودار مشاهده میکنید، قیمت آخرین معامله‌ای است که انجام شده است، فارغ از حجم آن. بازه زمانی هر کندل، همانطور که در قسمت بالا سمت چپ مشخص است، («D »Daily) است، و به معنای یک روز. پس هر کندل ما در ابتدای روز شروع شده، به یک حداقل و حداکثری رسیده، و در پایان روز بسته شده است. هر چقدر یک کندل بلند‌تر باشد، نشان می‌دهد که میزان تغییر قیمت در آن واحد زمانی بیشتر بوده است. رنگ ستون‌های حجم معاملات، هم‌رنگ کندل مربوط به خود است. پایین آمدن قیمت، به معنای تقاضای بیشتر بازار به فروش، و بالا رفتن قیمت به معنای تقاضای بیشتر به خرید است. 

آشنایی با مفاهیم خرید و فروش(trade) و معامله‌گر(trader):

خرید و فروش یا ترید به معنای این است که فردی کالایی را به دلیل کسب سود از فروش آن کالا در آینده تهیه می‌کند، و هدف نهایی وی فروش یا تعویض آن با کالایی با ارزش‌تر است. شاید تا 100 سال پیش معنا و استفاده از این واژه کاملا متعلق به تاجران بود، اما در سال‌های اخیر با توجه به رشد چشم گیر بازار‌های مالی، تقریبا این واژه منحصر به افرادی شده است که در بازار های مالی فعالیت می کنند. 

برای این که بتوانیم با مفهوم ترید در بازار‌های مالی آشنا شویم، نیاز داریم که مفاهیم زیر را با هم بررسی کنیم:

مفهوم «فروش» (short)

صرافی‌های مطرح معمولا در صفحه خرید و فروش یک رمزارز، قبل از هر اتفاقی دو گزینه به ما می‌دهند: خرید و فروش. خب همه مفهوم خرید یک رمز‌ارز را می دانیم، اما چگونه می‌توانیم قبل از اینکه رمز‌ارزی را داشته باشیم آن را بفروشیم؟ به این شکل به مطلب نگاه کنید که صرافی مقداری رمز ارز (به عنوان مثال بیت‌کوین) به شما قرض می دهد تا آن را برایش بفروشید. و وقتی که شما مجددا می‌خرید، آن رمز‌ارز به صرافی بازگشته و شما از معامله‌ای که کرده‌اید سود یا ضرر می‌برید. مثالی خوب در این مورد این است که پسرخاله طلاساز شما به شما می‌گوید که قیمت طلا قرار است که به مقدار چشم گیری کاهش یابد، و از شما می‌خواهد که تمام 100 گرم طلایی را که دارید، در اختیار وی قرار دهید تا او این طلا‌ها را به قیمت مثلا گرمی یک میلیون و دویست تومان بفروشد و آخر هفته آن ها را مجددا به قیمت یک میلیون و صد هزار تومان خریداری کند. در این اتفاق 10 میلیون سود حاصل می‌شود و شما همچنان طلای خود را در آخر هفته دارید، در این حالت پسر خاله شما اصل پول را به همراه مقداری سود به شما می دهد و بقیه را برای خود نگه می دارد. در این حالت صرافی همانند ما، و تریدر همانند پسرخاله است. تفاوت مثال پسرخاله با صرافی این است که شما در سود و زیان، شریک پسرخاله خود هستید، اما صرافی در صورت ضرر شریک شما نیست و حقش را از حساب شما کم می‌کند.

میزان ریسک

به صورت کلی ترید در فضای رمزارز‌ها جزو پر ریسک‌ترین انواع سرمایه گذاری است، اما ریسک در خود بازار‌های مالی به عواملی بستگی دارد که آن‌ها را بررسی می‌کنیم.

میزان ریسک در بحث تریدینگ در حوزه رمزارز‌ها به دو عامل بستگی دارد. به نوع بازاری که قصد معامله در آن را دارید و نوع معامله‌ای که قصد انجام آن را دارید.

  • بازار مالی:

ریسک بازارهای مالی با یکدیگر متفاوت است. به عنوان مثال 5 درصد تغییرات قیمت دلار به یورو در یک روز امری بعید است، در صورتی که کاهش ده درصدی قیمت یک رمزارز در یک روز امری عادی به حساب می‌آید. بورس شرکت‌ها، بورس فلز‌های ارزشمند، نفت، و ده‌ها بازار مالی دیگر وجود دارد که بازار رمزارز‌ها پر‌ریسک‌ترین بین آن‌ها به حساب می‌آید.

  • اهرم یا لورج (leverage):

بعضی از صرافی‌ها امکان خرید با مارجین(margin) را به شما می‌دهند. این امر به این معناست که شما می‌توانید تا چند برابر دارایی خود، مثلا با اهرم 10(به معنی ده برابر) خرید کنید. به عنوان مثال اگر شما 100 دلار داشته باشید، با لورج ده، می‌توانید تا سقف 1000 دلار بیت‌کوین بخرید. جذاب است مگر نه؟! اما نکته اینجاست که در صورت خرید با لورج شما با ده برابر تمام دارایی خود خرید کرده‌اید، پس اگر قیمت بیت‌کوین 10 درصد بالا برود، شما صد در صد سود می‌کنید(ده درصد 1000 دلار برابر می شود با 100 دلار). اما اگر قیمت بیت‌کوین 10% پایین بیاید، شما صد در صد ضرر می‌کنید و دارایی شما صفر می شود. در این مثال شما مارجین یا حاشیه امنیت 10% دارید. یعنی اگر قیمت ده درصد افت کند، شما تمام دارایی خود را از دست خواهید داد و به اصطلاح، لیکوییدیت(liquidate) می‌شوید. سایت بایننس در بعضی از رمزارز‌ها لورج 50، در بعضی دیگر 75، و حتی در بعضی لورج 100 می‌دهد. اما استفاده از این حالت فقط برای احمق هاست! لورج 100 یعنی مارجین یک درصد! یعنی اگر قیمت بیت‌کوین یک درصد پایین بیاید تمام پول شما از دست خواهد رفت. 

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

انواع تحلیل در بازار‌های مالی

بازارهای مالی معمولا به دو صورت اساسی تحلیل می‌شوند. تحلیل فنی یا تکنیکال(technical)، و تحلیل بنیادی یا فاندامنتال(fundamental). به عنوان مثال در مورد بیت‌کوین، تحلیل نمودار قیمت بیت‌کوین با استفاده از ریاضی است، و پیگیری و بررسی تاثیر خبرها روی قیمت بیت‌کوین نیز تحلیل فاندامنتال می‌شود. نکاتی در مورد هر کدام مطرح می کنیم:

تحلیل فاندامنتال:

مهم‌ترین مسئله در مورد تحلیل فاندامنتال این است که به حواشی و کانال‌های پر‌سرو صدا توجه نکنید. سعی کنید اخبار مربوطه را بخوانید و تحلیل کنید که آیا این خبر تاثیر مثبت روی قیمت بیت‌کوین خواهد داشت یا خیر. 

متاسفانه این قسمت، قسمتی است که نمی‌شود با استفاده از ربات، خودکار کرد (البته با استفاده از الگوریتم های هوش مصنوعی می شود که در بحث ما نمی گنجد) و بشدت تاثیر‌گذار است. برای‌تان مثالی از اهمیت آن می‌زنم. یک سال و اندی پیش در سایت بایننس در حال ترید کردن بودم و سود چشم‌گیری بدست آورده بودم که ناگهان با رشد عجیب قیمت بیت‌کوین مواجه شدم. من که از اخبار آگاه نبودم، همواره منتظر بازگشت قیمت و پایین آمدن آن بودم و با اینکه بازار صعودی بود من تمام پول خود را از دست دادم! روش و استراتژی من در یک روز در بازار بدون اخباری خاص درست بود ولی من آگاهی نداشتم که ایلان ماسک در آن روز توییت کرده بود که امکان خرید خودروی تسلا با استفاده از بیت‌کوین فراهم شده است. در آن روز قیمت بیت‌کوین به صورت عجیبی بالا می‌رفت و من نمی‌توانستم بدون دانستن آن خبر تحلیل درستی داشته باشم(البته در حال حاضر ایلان ماسک این نظر را برگرداند، که خودِ برگرداندن این نظر، باعث ریزش سنگین قیمت بیت‌کوین شد).

فرض کنید که می‌خواهید ماهی گیری کنید. تمام عملیات‌های محاسباتی را انجام می‌دهید، کِرم، قلاب ماهی‌گیری و قایق، همه چی را عالی و در بهترین حالت آماده می‌کنید، ولی بررسی اخبار هواشناسی را فراموش می‌کنید. شما به آن جا می‌روید و با این که هزینه کرده‌ و آماده رفته‌اید، به هیچ صیدی دست نمی‌یابید. اهمیت تاثیر اخبار روی بازارهای مالی بشدت زیاد است و باید سعی کنید تحلیل درستی از اخبار روی قیمت ها انجام دهید.

در ادامه چند منبع برای دنبال کردن اخبار رمزارز‌ها برای تحلیل فاندامنتال به شما معرفی خواهم کرد.

در ادامه چند منبع برای دنبال کردن اخبار رمزارز‌ها برای تحلیل فاندامنتال به شما معرفی خواهم کرد.

این دو از سایت‌های معروفِ اخبار در حوزه رمزارز هستند، اما مهم‌تر از این دو، توییت‌ها و پست‌های افراد تاثیرگذار در فضای تکنولوژی است. مانند ایلان ماسک، جف بزوس، و توییت شرکت‌های بزرگ مبنی بر تایید یا رد بیت‌کوین.

اخبار‌های جهانی و بزرگ نیز تاثیرات زیادی روی بازار‌های مالی می‌گذارند. به عنوان مثال حمله ارتش روسیه به خاک اوکراین باعث شد تا قیمت طلا به صورت جهانی به مقدار قابل توجهی بالا برود.

خلاصه اگر قصد ماهی‌گیری کردید، حتما وضعیت آب و هوا را بررسی کنید. این کاری نیست که پشت گوش بیاندازید، شما اگر بهترین و سود ده‌ترین ربات تریدر را هم بنویسید، ممکن است با یک اتفاق فاندامنتال، تمام دارایی شما از بین برود. 

تحلیل تکنیکال: 

در تحلیل تکنیکال، ما صرفا با توجه به اطلاعاتی که درون نمودار یا چارت(chart) قیمت‌ها است، سعی در پیش‌بینی قیمت در آینده می‌کنیم. قسمت اصلی کار ما در ربات تریدر، نوشتن تحلیل تکنیکال است.

در قسمت بعدی راجع به تحلیل تکنیکال صحبت می‌کنیم تا مقدمات لازم برای نوشتن ربات تریدر را گذرانده باشیم.

پیشنهادات بیشتر سکان بلاگ برای شما