استفاده از API در فارکس
کاربرد API در ربات های تریدر و معاملات الگوریتمی چیست؟
رابط برنامه نویسی (API) مجموعه ای از کد برنامه نویسی است که داده ها را جستجو می کند ، پاسخ ها را تحلیل کرده و دستورالعمل ها را بین یک سیستم عامل نرم افزاری ارسال می کند. از API ها به طور گسترده در ارائه خدمات برنامه نویسی نرم افزار استفاده می شود و جزو بهترین ابزار بروکر فارکس برای ایرانیان 2022 می باشد.
به زبانی ساده تر شما اگر بخواهید یک اتومبیل را طراحی کنید، دیگر لازم به ساخت لامپ و یا چرخ ندارید!! زیرا لامپ و چرخ چندین سال پیش کشف شده و توسعه یافته اند و شما نیازی به ساختن دوباره ی آنها ندارید و فقط کافی است از آنها استفاده کنید…. در واقع API ها هم به همین شکل عمل میکنند و شما لازم نیست بسیاری از ویژگی های نرم افزارتان را دوباره کد نویسی کنید و از کد های از قبل آماده شده توسط شرکت ها و یا برنامه های محبوب استفاده میکنید.
API ها به دلیل سهولت در انجام کار ها بسیار محبوب شده اند ، شرکت هایی مانند Facebook ، Amazon ، SalesForce و… API های خود را طراحی کرده اند که به بقیه ی شرکت ها اجازه می دهد بدون نیاز به استفاده از اکوسیستم اصلی برنامه به برخی از خدمات و ویژگی ها دسترسی داشته باشند. این پارادایم جدید منجر به پیشرفت چشمگیر و رشد صنعت برنامه نویسی شد و برخی از کارشناسان آن را “اقتصاد API” می نامند.
کاربرد API در برنامه نویسی MQL و ربات های تریدر
در حوزه بازارهای مالی و معاملات ، می توان از یک API برای ایجاد ارتباط بین مجموعه ای از الگوریتم های معاملات خودکار و پلتفرم کارگزاری با هدف به دست آوردن قیمت های واقعی و داده های قیمت گذاری یا انجام معاملات الکترونیکی استفاده کرد.
با ظهور سیستم های معاملاتی اتوماتیک، API ها محبوبیت بیشتری پیدا کرده اند. در گذشته ، تریدر های خرده فروش مجبور می شدند فرصت های معاملاتی را در یک برنامه به صورت دستی بررسی کنند و به طور جداگانه در کارگزاری خود معاملات را ثبت کنند.
اکنون بسیاری از کارگزاری ها API هایی را ارائه می دهند. این امر به تریدر ها این امکان را می دهد که نرم افزار معاملاتی خود را مستقیماً به حساب کارگزاری متصل کنند تا داده های بازار مانند نمودار ، قیمت ، زمان و… را مشاهده کنند. معامله گران حتی می توانند برنامه های خود را با استفاده از زبان های برنامه نویسی مانند پایتون توسعه دهند و معاملات را با استفاده از API کارگزار انجام دهند.
API در برنامه نویسی MQL و ربات های بورس و معاملات الگوریتمی
بسیاری از تریدر ها از نرم افزار های معاملاتی فارکس که برای داده های قیمت گذاری و توانایی انجام معاملات نیاز به دسترسی به API های کارگزار دارند ، استفاده می کنند. به عنوان مثال ، MetaTrader یکی از محبوب ترین برنامه های معاملات ارزی (فارکس) است. این پلتفرم معاملاتی برای اطمینان از قیمت گذاری در زمان واقعی و انجام معاملات نیاز به دسترسی API دارد.
تعداد بسیار زیادی از تریدر ها با استفاده از زبان های برنامه نویسی مانند پایتون و MQL ربات های تریدر شخصی خود را توسعه می دهند. به همین دلیل به روشی برای دسترسی به داده ها مانند نمودار ، قیمت ، زمان و… نیاز دارند.
با وجود مزایای بسیار زیاد API ، خطرات زیادی هم وجود دارد که باید در نظر گرفته شود. بیشتر API ها به صورت رایگان در اختیار مشتریان کارگزاری قرار می گیرند. اما مواردی وجود دارد که ممکن است باعث شود تریدر هزینه ای اضافی را پرداخت کند.
برنامه نویسان و تریدر ها همچنین باید از هرگونه محدودیت API ، از جمله خرابی ها و عدم دسترسی، که می تواند تأثیر قابل توجهی در نتایج معاملات داشته باشد آگاه باشند.
همچنین استفاده از API های عمومی باعث میشود هکر ها و کرکر های نرم افزار، توانایی بیشتری نسبت به کرک کردن و دور زدن برنامه ی شما داشته باشند. زیرا API های عمومی اگر باگی داشته باشند به سرعت در سطح اینترنت پخش میشود. همچنین به دلیل عمومی بودن ، افراد زیادی روی آنها کار میکنند و به راحتی باگ های آن قابل انتشار است. البته این مورد هم بااستفاده از روش های امنیت نرم افزار مانند packer ها و obfuscate قابل حل شدن است.
API های کارگزاری ها و بروکر ها
مشهورترین کارگزارانی که از دسترسی API در بازارهای سهام و آتی پشتیبانی می کنند شامل TradeStation ، TDAmeritrade و InteractiveBrokers هستند. اما بسیاری از کارگزاران کوچکتر با گذشت زمان خود را در این زمینه داده توسعه داده اند.
بسیاری از کارگزاری ها دسترسی آنلاین را به API های خود ارائه می دهند ، توسعه دهندگان می توانند بطور دقیق نحوه احراز هویت با API ، داده هایی را که برای ثبت سفارش لازم است ، نحوه ثبت سفارش از طریق API و سایر جزئیات تکنیکالی را بدانند.
برخی از کارگزاری ها کتابخانه هایی(کتابخانه یا اصطلاحا لایبری Library به مجموعه ای از توابع ، الگوریتم ها و API ها گفته میشود که برای دسترسی سریع تر در اختیار عموم گذاشته میشود) را به زبان های برنامه نویسی مختلف ارائه می دهند تا دسترسی به API آنها آسان تر شود.
به عنوان مثال ، یک کارگزاری ممکن است یک کتابخانه پایتون را منتشر کرده باشد؛ که مجموعه ای از توابع و الگوریتم ها، با روش های مختلف برای استفاده و فراخوانی برای انجام معاملات به جای نوشتن دوباره آنها را به کاربرانش ارائه بدهد. این امر می تواند به تسریع در توسعه سیستم عامل ها و پلت فرم های معاملاتی کمک بسزایی بکند و توسعه ی آنها توسط بقیه شرکت ها هزینه ی کم تری را برای کار گذاری رقم بزند.
آموزش ساخت ربات های معامله گر با پایتون (API)
امروزه معاملات در بازارهای مالی به یکی از سرمایه گذاریهای پر سود تبدیل شده است. در این بازارها سرعت و دقت در تحلیل و انجام معاملات از اهمیت بالایی برخوردار است. از همین رو بسیاری از معامله گران در صدد استفاده از رباتهای معاملهگر برای تحلیل و انجام معاملات در بازارهایی مثل بازارهای فارکس بر میآیند. در معاملات الگوریتمی استراتژیهای معاملاتی توسط زبانهای برنامهنویسی مختلفی مثل پایتون، ام کیو ال و… به کدهایی تبدیل میشوند که رباتهای معامله گر هستند.
یکی از زبانهای مهم برنامهنویسی رباتهای معاملاتی، زبان برنامهنویسی پایتون است. طراحی و برنامهنویسی پایتون برای رباتهای معاملهگر api، بستر خوبی برای آموزش، خودکارسازی و سپس پردازش برنامههای ربات به معامله گران میدهد.
در برنامهنویسی رباتهای معامله گر با زبان پایتون به جای ورود دستی هر عبارت، میتوان اسکریپتی نوشت که تمامی عملیات را در ربات معاملهگر محاسبه، ضبط و شبیهسازی میکند. این کار به معامله گران این امکان را میدهد که به سرعت استراتژی خود را تجسم نموده، شبیهسازی کرده و تست کنند، همچنین برنامه و منطق آن را اصلاح نمایند.
ربات تجاری پایتون چیست؟
ربات معاملاتی نرم افزاری است که به API صرافی مورد نظرمعامله گر متصل میشود تا به طور خودکار با آن تعامل داشته باشد و براساس تجزیه و تحلیل دادههای بازار معاملات را از طرف معاملهگر انجام میدهد. زمانی که شرایط بازار با مجموعهای از معیارهای از پیش تعریف شده مطابقت داشته باشد، ربات دارایی را خرید/فروش میکند.
واژه (API (Application Programming Interface به معنای «رابط برنامهنویسی اپلیکیشن» است. در واقع API رابطی است که برای دریافت و ارسال اطلاعات در یک نرم افزار از آن استفاده می شود. برای اتصال به صرافی مورد نظر فقط باید API صرافی موردنظر به ربات معاملهگر داده شود. بعد از دادن API به ربات معامله گر، صرافی به ربات معامله گر متصل شده و معاملات خود را آغاز میکند.
در این مقاله به شما نشان داده میشود که چگونه با کدهای ساده زبان پایتون، دادههای بازار را بخوانید، سهام بخرید و بفروشید، و منطق الگوریتم معاملاتی خود را برنامه ریزی کنید. البته به خاطر داشته باشید که این آموزش برای کسب درآمد میلیاردی از رباتهای معاملاتی ارائه نمی شود.
سلب مسئولیت: هیچ یک از مواردی که در این مقاله وجود دارد نباید توصیه سرمایهگذاری در نظر گرفته شود. مقاله فوق هیچ نوع توصیه یا پیشنهاد معاملاتی در مورد نحوه سرمایه گذاری، نحوه معامله، نوع دارایی سرمایهگذاری یا پیشنهاداتی در مورد نحوه استفاده از رباتهای معاملاتی یا الگوریتمهای معاملاتی ارائه نمیدهد! همیشه قبل از سرمایهگذاری تحقیق خود را انجام دهید و همیشه (!) فقط آنچه را سرمایهگذاری کنید که توانایی از دست دادنش را دارید! حتما این را در نظر بگیرید که بک تستها نشان دهنده نتایج آینده نیستند.
قبل از شروع طراحی یک ربات معاملاتی با پایتون ابتدا به تعریف چند اصطلاح مفید میپردازیم:
- تجارت کاغذی: معامله اوراق بهادار با پول مجازی برای اهداف آموزشی یا آزمایشی.
- بک تست: آزمایش یک الگوریتم معاملاتی در برابر دادههای بازار گذشته به منظور ارزیابی اثربخشی آن.
- میانگین متحرک: میانگین مقدار معینی از ورودیهای اخیر در مجموعهای از داده ها.
- S&P 500: شاخص بازار سهام متشکل از ۵۰۰ شرکت بزرگ فهرست شده در بازار بورس آمریکا
- قیمت پایانی: قیمت نهایی اوراق بهادار در طول یک واحد زمان
- Good ‘Til Cancel (GTC): زمانی که معاملهای انجام میدهید، ممکن است فوراً انجام نشود. یک کارگزار به تلاش و اجرای یک معامله GTC تا زمانی که آن را لغو نکنید، ادامه خواهد داد.
قبل از شروع تجارت با رباتهای معاملهگر به یک کلید API نیاز است.
نصب API
پروژه فوق، API معاملاتی که قرار است از آن استفاده کنیم Alpaca نام دارد و یکی از بصریترین APIهای معاملاتی است. از آدرس زیر میتوانید API آلپاکا را دانلود کنید.
http:// alpaca.markets/
Alpaca در بخش رایگان خود، شامل دادههای معاملات مجازی و واقعی و دادههای بازار گذشته و زنده است. همچنین دارای یک رابط کاربری فوق العاده تمیز و کتابخانه پایتون است.
اگر قصد دارید اسکریپت پایتون خود را در رایانه خود اجرا کنید، باید ربات تجاری خود را در فضای ابری مستقر کنید. برای این کار از Codesphere استفاده میکنیم:
http://codesphere.com/
از آنجایی که بخش ابتدایی- انتهایی Codesphere یک IDE است، میتوانیم ربات خود را مستقیماً روی پلتفرم توسعه دهیم. با این حال، اگر میخواهید برنامهنویسی را روی دستگاه خود انجام دهید، میتوانید GitHub خود را به Codesphere متصل کرده و سپس آن را مستقر کنید.
تنها فضای نصب که واقعاً قبل از شروع کدنویسی به آن نیاز داریم، ایجاد محیط پیپ (pipenv shell) است.
سپس Alpaca API را نصب کنید.
pipenv install alpaca_trade_api
ما همچنین باید یک حساب Alpaca رایگان ایجاد کنیم و سپس وارد حساب تجارت مجازی خود شویم.
به کلید API خود در سمت راست توجه کنید. هنگامی که برای اولین بار حساب خود را باز میکنید، از شما خواسته میشود یک کلید ایجاد کنید و کلید عمومی و خصوصی به شما نشان داده میشود. بعدا به این کلیدهای عمومی و خصوصی نیاز خواهیم داشت.
خرید و فروش سهام با کتابخانه Alpaca Trading در پایتون
سپس میتوانیم کتابخانه Alpaca Trading خود را راهاندازی کنیم و خرید و فروش سهام را در زبان پایتون بدین صورت طراحی کنیم.
import alpaca_trade_api as tradeapi
SEC_KEY = ” # Enter Your Secret Key Here
PUB_KEY = ” # Enter Your Public Key Her
BASE_URL = ‘https://paper-api.alpaca.markets’ # This is the base URL for paper trading
api = tradeapi.REST(key_id= PUB_KEY, secret_key=SEC_KEY, base_url=BASE_URL) # For real trading, don’t enter a base_url
# Buy a stock
api.submit_order(
symbol=’SPY’; # Replace with the ticker of the stock you want to buy
qty=1,
side=’buy’,
type=’market’,
time_in_force=’gtc’ # Good ’til cancelled
)
# Sell a stock(Just change side to ‘sell’)
api.submit_order(
symbol=’SPY’,
qty=1,
side=’sell’,
type=’market’,
time_in_force=’gtc’
)
طراحی استراتژی
در این مثال استراتژی ما این است که زمانی که میانگین متحرک ۵ دقیقه از قیمت ما عبور کرد، خرید و فروش کنیم. هرچند این با یک استراتژی معاملاتی خوب فاصله دارد، اما منطقی نسبتاً ساده است و به ما اجازه میدهد تا روی ساختار کلی یک ربات معاملاتی تمرکز کنیم.
در مثال بالا، خط قرمز قیمت سهام و خط آبی میانگین متحرک است. وقتی میانگین متحرک از قیمت عبور کرد، ما قصد داریم سهمی از سهام خود را بخریم. سپس سهام را نگه میداریم تا زمانی که میانگین متحرک دوباره عبور کند و از قیمت بالاتر رود. . زمانی که این اتفاق افتاد، سهم خود را میفروشیم و سپس منتظر سیگنال خرید بعدی خواهیم بود.
در این مقاله، SPY را معامله میکنیم، که شاخصی است که S&P 500 را دنبال میکند و هر بار فقط یک سهم را معامله میکنیم.
جمعبندی
ربات معاملاتی نرم افزاری است که به API صرافی مورد نظرمعامله گر متصل میشود تا به طور خودکار با آن تعامل داشته باشد. برای اتصال به صرافی مورد نظر باید API صرافی موردنظر را به ربات معاملهگر داد. هر چند استفاده از Alpaca API برای راه اندازی رباتهای معاملهگر توصیه میشود، اما زمانی که میخواهید با پول واقعی معامله کنید، بسیار مراقب باشد، چرا که یک خطا در کدهای نوشته شده میتواند خطرات زیادی بر سرمایه شما داشته باشد.
منبع مقاله:
https://itsca-brokers.com/forex/brokers-for-iranian/