תוכן העניינים[להתחבא][הופעה]
ענף שמאוד מעניין את מי שמחפש עבודה הוא מסחר במטבעות. עסקי תוכנה מקבלים בקשות מסוחרים ברחבי העולם לספק פלטפורמת מסחר שיכולה להעריך במהירות וביעילות נתונים על זיווג מטבעות.
פלטפורמת מסחר היא תוכנה המסופקת לסוחרים ומשקיעים על ידי ארגונים פיננסיים מסוימים, כגון בנקים וברוקרים.
פלטפורמות מסחר בעצם מאפשרות למשקיעים ולסוחרים לבצע עסקאות ולפקח עין על החשבונות שלהם. פונקציות אחרות המסייעות למשקיעים בקבלת החלטות השקעה נכללות לעתים קרובות במערכות מסחר.
ציטוטים בזמן אמת, תרשימים אינטראקטיביים, מגוון כלי גרפים, עדכוני חדשות חיים ומחקר מובחר הם כמה דוגמאות ליכולות אלה.
ניתן לעצב פלטפורמות גם עבור שווקים מסוימים, כגון אלה של מניות, מטבעות, אופציות או חוזים עתידיים.
במשך יותר מעשור, מערכות מסחר אוטומטיות, הידועות גם בשם מסחר אלגוריתמי, תפסו את מרכז הבמה של תעשיית המסחר.
"מערכת מסחר", המכונה לפעמים "אסטרטגיית מסחר", היא לא יותר מאוסף כללים המוחלים על נתוני הקלט כדי לספק אותות כניסה ויציאה של קניה/מכירה. למרות העובדה שיצירת אסטרטגיית מסחר עשויה להיראות פשוטה, היא לא!
המוחות מאחורי אסטרטגיית מסחר כמותית מכונים "כמויות" בתחום המסחר האלגוריתמי שכן פיתוח אסטרטגיית מסחר טובה מחייב מחקר כמותי מקיף.
העיצוב הבסיסי של מערכות מסחר אוטומטיות עבר שינויים מהותיים במהלך עשר השנים האחרונות והוא עדיין משתנה.
תעשיית המסחר האלגוריתמי הפכה למוקד להתפתחויות בטכנולוגיות מחשבים ורשתות מכיוון שהפך הכרחי לעסקים, במיוחד אלה המשתמשים במערכות מסחר בתדירות גבוהה, לחדש בטכנולוגיה כדי להתחרות בעולם המסחר האלגוריתמי.
נדון בפלטפורמת המסחר עיצוב מערכת במאמר זה. המפרטים הבסיסיים של פלטפורמת מסחר כוללים את הארכיטקטורה שלה, הפרוטוקולים וההוראות ליצירת מערכת מסחר אוטומטית משלך.
דרישות תוכנת מסחר אוטומטי ברמה בסיסית
הפתרון הטוב ביותר הוא זה שעומד לחלוטין בדרישות התוכנה. המפרטים העיקריים של תוכנות מסחר אוטומטיות הם:
- מדרגיות (יכולת המערכת להתמודד עם נפח גדל של בקשות ועומס עבודה);
- ריבוי עיבודים וביצועים מצוינים;
- בטיחות ואבטחה (איך הוא מגיב להפרות או תקיפות שמגיעות בפתאומיות ושומר מפני כניסה בלתי חוקית);
- יכולת פעולה הדדית (היכולת של מערכת ליצור אינטראקציה עם מערכות אחרות);
- אמינות (איך זה פותר כשלים ופועל למרות בעיות).
מערכות מסחר אלגוריתמיות דורשות עבודה מיומנת ביותר ותשומת לב זהירה. קל יותר להבין את הדרישות הפונקציונליות של המערכת כאשר יש דרישות ברורות שאינן פונקציונליות. הם משמשים כסטנדרטים שולטים עבור צוותי פיתוח תוכנה כדי לבסס ולהגדיר את איכות המוצר.
המאפיינים הפונקציונליים של פלטפורמת המסחר כוללים
התמיכה המוצלחת של שיטות תשלום שונות, שירותי אירוח ענן מאובטח, כלי ניתוח נתונים רבי עוצמה, ניהול סיכונים, הצעות מחיר מדויקות וסוגי תרשימים מתאימים הם כולם צרכים פונקציונליים חשובים.
להלן כמה תכונות בסיסיות של פלטפורמות מסחר אוטומטיות שכל הסוחרים שמים לב אליהן היטב:
לוח מחוונים המציג נתונים סטטיסטיים
לצורך ביצוע בחינה בזמן אמת של שערי מטבעות על פני מספר אזורי זמן, על הפלטפורמה להריץ עדכונים רציפים, להפעיל נתונים מהרבה גרפים ולתפעל דפי מחירים.
אימות
שיטת האימות המהירה אך האמינה יוצרת תחילה דימוי של פלטפורמה בטוחה ומאמץ הנדסי מובחר.
תוכנת מסחר יכולה לתמוך בגישה ממספר חשבונות, בדומה לפלטפורמות מסחר בקוד פתוח עם אימות דו-גורמי (באמצעות SMS או Google Authenticator, למשל), אבל אתה יכול גם לקבל מערכת עם גישה מופעלת באמצעות דואר אלקטרוני, מספר טלפון או אחר דרכים רק לקבוצה קטנה של סוחרים.
Newsfeed
לפני קבלת החלטות פיננסיות, זה קריטי לעשות את המחקר שלך. כדי למנוע טעויות שנגרמו כתוצאה מבורות, סוחרים יכולים ליהנות מחדשות נוחות, סקירות רלוונטיות ותובנות על שוקי המטבעות בעולם, שכולם זמינים באופן מיידי בפלטפורמות המסחר שלהם.
פונקציונליות למנהלים ומשתמשים נוחה
במערכת כזו, היכולת לנהל הכל במהירות בלחיצה אחת היא חיונית. זה כולל ניהול עסקאות, הזמנות ממתינות והוגשו, חשבונות אישיים, אינדיקציות על התקדמות ההזמנה ובקשות של לקוחות.
זה מאפשר קבלת החלטות בפרק הזמן הקצר ביותר ומבטיח גישה רציפה למידע חיוני.
שימוש בהודעות דחיפה
משתמשים צופים שפלטפורמות המסחר יהיו נגישות מסביב לשעון ויקבלו עדכונים על כל בעיות אבטחה או על השינויים האחרונים.
אתה יכול להתעדכן באמצעות התראות הניתנות להתאמה אישית, שכן פלטפורמת המסחר עוקבת אחר אירועים כלכליים, תנודות מחירים, התפתחות שוק, אינדיקטורים טכניים וכו', ושולחת עדכונים לגבי מצב המניה שלך.
מזומנים ותשלומים
פונקציה זו נדרשת על מנת לבצע פעולות מסחר, לעקוב אחר תנועת המזומנים ולמשוך במהירות ובבטחה כסף מחשבונך האישי באמצעות כרטיס אשראי, PayPal או העברה בנקאית פשוטה.
כאשר בקשת המשיכה שלך תסתיים לעיבוד, תקבל הודעה.
הארכיטקטורה של מערכת המסחר האוטומטית
המנוע שמבצע את ההיגיון של קבלת החלטות בפלטפורמת המסחר האוטומטית, הידוע גם כמנוע 'Complex Event Processing', או CEP, יהיה בתוך האפליקציה לשרת.
שכבת היישום היא בעצם א ממשק משתמש לצפייה ואספקת פרמטרים ל-CEP. למרות ששכבת היישומים היא בעיקר תצוגה, בדיקות סיכונים מסוימות (שהפכו כעת לפעולות זוללות משאבים עקב בעיית קנה המידה) ניתנות להורדה לשכבת האפליקציה, במיוחד אלה הכרוכים בשפיות של קלט המשתמש, כגון שגיאות אצבע שומן.
מצב מסקרן נובע מבעיית המדרגיות במערכת מסחר אוטומטית.
בואו נדמיין שאירוע נתוני שוק יחיד מעובד על ידי 100 לוגיקה נפרדת (כפי שנדון בדוגמה הקודמת). עבור רוב 100 יחידות הלוגיקה, נניח החישוב של יוונים עבור אופציות, יכולים להיות רכיבים נפוצים של חישובים מורכבים שיש לבצע.
החישוב המדויק הזהה יבוצע על ידי כל יחידה אם כל לוגיקה הייתה פועלת באופן עצמאי, דבר שיבזבז משאבי עיבוד.
חישובים מיותרים מורכבים מחולקים לעתים קרובות למנועי חישוב שונים המספקים את היוונים כקלט ל-CEP במערכת המסחר האוטומטית כדי למקסם את יתירות החישוב.
נכון לעכשיו, מערכת ניהול סיכונים נפרדת (RMS) בתוך מנהל ההזמנות (OM) מבצעת את הערכות הסיכונים הנותרות במערכת מסחר אוטומטית זמן קצר לפני שחרור הזמנה.
מכיוון שקיימת רק מערכת RMS אחת לניהול סיכונים בכל היחידות/האסטרטגיות הלוגיות, בעבר, 100 סוחרים נפרדים שלטו בסיכון שלהם. זה נובע מבעיית קנה המידה.
עם זאת, הערכות סיכונים מסוימות יכולות להיות בלעדיות לאסטרטגיות מסוימות, בעוד שאחרות עשויות להתבצע בכל השיטות.
כתוצאה מכך, ה-RMS עצמו מורכב מ-RMS גלובלי (GRMS) ו-RMS ברמת האסטרטגיה (SLRMS). ניתן היה לראות את ה-SLRMS וה-GRMS גם דרך ממשק משתמש (UI).
הבה נעבור כעת יותר לרכיבי השרת.
מתאם שוק
Exchange או כל ספק אחר של נתוני שוק מעביר נתונים בפורמט שלו. שפה זו עשויה להיות מובנת למערכת המסחר האלגוריתמית שלך או לא.
Exchange נותן לך גישה ל-API (ממשק עיצוב יישומים) שבו תוכל להשתמש כדי לתכנת ולבנות מתאם משלך כדי להפוך את פורמט הנתונים לפורמט שהמערכת שלך יכולה להבין.
מנוע עיבוד אירועים מורכב
המוח של הגישה שלך נמצא בסעיף זה. ברגע שיש לך את הנתונים, עליך להשתמש בהם בהתאם לתוכנית שלך, הדורשת לבצע חישובים סטטיסטיים שונים, לערוך השוואות עם נתוני עבר וקבלת החלטות שיובילו ליצירת פקודות.
בלוק זה נבנה באמצעות סוג ההזמנה וכמות ההזמנה. בפשטות, אירוע מורכב הוא אוסף של אירועים נכנסים. אלה מורכבים מחדשות, תנועות שוק, מגמות בבורסה וכו'.
השלמת פעולות מחשוב באירועים מסובכים במהירות מכונה עיבוד אירועים מורכב. פעולות של מערכת מסחר אוטומטיות יכולות לכלול איתור דפוסים מורכבים, יצירת קורלציות ויצירת קשרים כמו סיבתיות וזמן בין כל מידע נכנס.
מערכת ניתוב הזמנות
באמצעות ממשקי ה-API של הבורסה, ההזמנה מוצפנת בשפה שהבורסה יכולה להבין. הבורסה מציעה ממשקי API מקוריים וממשקי FIX API, שני סוגים שונים של ממשקי API.
ממשקי API מקוריים מתוכננים במיוחד עבור בורסה נתונה. ערכת הנחיות המכונה פרוטוקול FIX (החלפת מידע פיננסי) משמשת מספר בורסות כדי להקל ולשפר את זרימת הנתונים בשווקי האבטחה.
בחלק שאחרי זה, נסביר יותר על FIX. אם כלכלה פתוחה, אנשים יכולים להגיש פקודות באמצעות מערכת מסחר אוטומטית לבורסות או ללא בורסות, ו-ORP אמור להיות מסוגל לטפל בהזמנות שהולכות בכיוונים רבים.
כאן, אנו רוצים להדגיש כי אות ההזמנה יכול להתבצע באופן ידני על ידי אדם או באופן אוטומטי. הסעיף האחרון הוא מה שאנו מתייחסים אליו כ"מערכת מסחר אוטומטית".
מודול מנהל ההזמנות כולל מספר טכניקות ביצוע המבצעות את הזמנות הקנייה/מכירה בהתאם להיגיון שנקבע מראש.
ניהול סיכונים
מכיוון שמערכות מסחר אוטומטיות פועלות ללא מעורבות אנושית, יש צורך בניתוחי סיכונים קפדניים כדי להבטיח שמערכות המסחר פועלות כמתוכנן.
ניהול סיכונים לקוי או היעדר בדיקות סיכונים עבור חברה כמותית עלולים לגרום להפסדים משמעותיים בלתי ניתנים להשבתה. כתוצאה מכך, כל מערכת מסחר אוטומטית חייבת להיות בעלת מערכת ניהול סיכונים (RMS).
פיתוח פרוטוקול למערכות מסחר אוטומטיות
על מנת להתחבר למספר יעדים משרת בודד, מה שהתאפשר בזכות יכולתה של הארכיטקטורה להתאים אסטרטגיות רבות לכל שרת.
כדי להעביר הזמנות למספר יעדים ולקבל נתונים ממספר רב של מרכזיות, מנהל ההזמנות, אפוא, שיכן מספר מתאמים.
תפקידו של כל מתאם הוא לשמש כמתורגמן בין פרוטוקול התקשורת הפנימי של המערכת לבין הפרוטוקול שהבורסה מבינה. לפיכך, יהיה צורך במספר מתאמים עבור מספר חילופים.
מכיוון שלכל בורסה יש פרוטוקול המותאם ליכולות שהיא מציעה, יש ליצור מתאם חדש ולחבר אותו לארכיטקטורה כדי להוסיף בורסה חדשה למערכת המסחר האוטומטית.
פרוטוקולים סטנדרטיים פותחו על מנת למנוע את כאב הראש הזה של הכנסת מתאם. פרוטוקול FIX הוא הידוע מכולם.
זמן היציאה לשוק לחיבור ליעד חדש מתקצר משמעותית, מה שלא רק מאפשר להתחבר למספר יעדים בתנועה.
מערכת המסחר האוטומטית יכולה ליצור אינטראקציה בקלות עם ספקים אחרים לצורך ניתוח או הזנות של נתוני שוק הודות לקיומם של פרוטוקולים נפוצים.
כתוצאה מכך, השוק הופך להיות יעיל ביותר מכיוון שאין עוד הגבלה על שילוב עם מיקום או מוכר חדש.
בנוסף, הסימולציה נעשית מאוד פשוטה מכיוון שכל מה שצריך כדי להתחבר לסימולטור באמצעות פרוטוקול FIX הוא להוציא הזמנות ולקבל נתונים מהשוק האמיתי.
ניתן ליצור את הסימולטור עצמו באופן פנימי או לרכוש ממקור אחר. בדומה לנתוני שוק חיים, ניתן להפעיל מחדש ערכות נתונים מוקלטות הודות למתאמים ללא תלות במקור הנתונים.
מתעוררות ארכיטקטורות עם חביון נמוך
האסטרטגיות יכולות כעת להעריך כמויות אדירות של נתונים בזמן אמת ולבצע בחירות מסחר מהירות הודות למרכיבי היסוד של מערכת מסחר אוטומטית.
כתוצאה מפיתוח פרוטוקולי תקשורת סטנדרטיים בתעשייה כמו FIX, כעת קל יותר לבנות דסק מסחר אלגוריתמי או מערכת מסחר אוטומטית, מה שהגביר את התחרות בשוק המסחר האלגוריתמי.
הדגש עבר להורדת זמן ההשהיה לקבלת החלטות כאשר השרתים צברו יותר זיכרון וקצבי שעון מהירים יותר.
הפחתת זמן האחזור הייתה הכרחית לאורך זמן ממגוון סיבות, כולל:
- רק בסביבת חביון נמוכה הטכניקה הגיונית.
- תחרות מבטלת אותך אם אתה לא מספיק מהיר בהישרדות המשחק הכי חזק
Colocation הפך להכרח מוחלט במערכת מסחר אוטומטית עבור כל שיטה בתדירות גבוהה הכוללת יעד יחיד.
אבל מערכות מרובות יעדים דורשות הכנה מדוקדקת. לפני בחירה כזו יש לקחת בחשבון משתנים כמו משך זמן התגובה להזמנה של היעד וכיצד הוא משתווה למשך הפינג בין שני היעדים.
על מנת להפחית את ההשהיה הכוללת של מערכת מסחר אוטומטית, השהיה ברשת היא בדרך כלל הדבר הראשון שיש לטפל בו. אבל אפשר לשפר את הארכיטקטורה בהרבה דרכים אחרות.
חביון עיבוד רשת
חביון עיבוד רשת הוא העיכוב שמציגים נתבים, מתגים וכו'. מספר הקפיצות שנדרש לחבילה לעבור מנקודה A לנקודה B תהיה הרמה הבאה של אופטימיזציה בתכנון של מערכת מסחר אוטומטית.
הופ מתואר כקטע מהנתיב בין מקור החבילה ליעד שבו היא אינה עוברת דרך מכשיר פיזי, כגון נתב או מתג.
למה שאנו מתייחסים אליו כ-microbursts יכול להיות גם השפעה על זמן ההשהיה של פעולות הרשת.
זינוק מהיר בקצב העברת הנתונים שעלול להשפיע או לא להשפיע על קצב העברת הנתונים הממוצע מכונה מיקרו-פרץ.
מכיוון שמערכות מסחר אוטומטיות מבוססות על כללים, כולן יגיבו באופן אחיד לאותה אירוע. מיקרו-פרץ של העברת נתונים בין המשתתפים לבין היעד יכול להתרחש כתוצאה ממספר מערכות משתתפות ששולחות פקודות בו-זמנית.
חביון יישום
זמן האחזור של אפליקציה של מערכת מסחר אוטומטית הוא מדד לזמן שלוקח לעבד בקשה. זה תלוי במספר החבילות, בעיבוד המוקדש ללוגיקה של האפליקציה, במורכבות החישוב בשימוש, ביעילות התכנות וכו'.
למערכת תהיה בדרך כלל פחות עיכוב יישומים ככל שמספר המעבדים שלה גדל. עם תדרי שעון גבוהים יותר, הדבר נכון.
הרבה מערכות מסחר אוטומטיות מרוויחות מהקצאת ליבות CPU לחלקים קריטיים של התוכנית, כמו ההיגיון של האסטרטגיה, למשל. על ידי כך, ההליך אינו מוסיף את ההשהיה הנובעת מהחלפת ליבות.
בדומה לזה, אם גישה של מערכת מסחר אוטומטית הייתה מתוכנתת תוך מחשבה על גדלי מטמון וקרבה לגישה לזיכרון, יהיו מספר כניסות למטמון זיכרון, מה שיפחית עוד יותר את זמן ההשהיה.
מערכות רבות עושות זאת על ידי אופטימיזציה של הקוד לארכיטקטורת המעבד המסוימת, מה שנעשה על ידי שימוש בשפות תכנות ברמה נמוכה מאוד.
באמצעות מערכי שערים הניתנים לתכנות מלא, חלק מהעסקים אפילו הרחיק לכת עד כדי צריבת חישובים מסובכים על חומרה (FPGA).
בדיקות
בדיקה, שהיא הפעולה של זיהוי פגמים ביישומי תוכנה, אי אפשר להמעיט בערכו, במיוחד בפינטק. בשל האפשרות להפסד כספי, הטכנולוגיה הפיננסית לא יכולה להרשות לעצמה פגמים.
ככל שמהנדסי אבטחת איכות יכולים לזהות יותר פגמים, כך גדל הסיכוי שהמוצר המוגמר יתפקד כראוי. בהתאם למשרד שמפתח את פלטפורמת המסחר או לצרכי הלקוח, מבנה תהליך הבדיקה כולל:
הבסיס של בדיקות פונקציונליות הוא יצירת קלט וניתוח התוצאות. עם שימוש בכרטיסים כוזבים, מופעלים מקרי בדיקת יישומים פיננסיים. כרטיסים אלו מבקשים לשפר את האמינות, היעילות והדיוק של התשלומים.
גילוי המהירות, המדרגיות והיציבות של המערכת מתבצעת באמצעות בדיקות ביצועים. המהירות של אפליקציה מוערכת על מנת להבין באיזו מהירות היא מגיבה, ומדרגיות שלה מציינת בכמה משתמשים היא יכולה לתמוך בו זמנית מבלי לקרוס.
בנוסף, יציבות מדגימה אם האפליקציה פועלת כהלכה בעומסים שונים או אם יש פגמים פוטנציאליים.
זה יכול להיות מעבר ליכולות של סוחר קמעונאי יחיד לבנות מערכת מסחר אוטומטית לחלוטין. מערכות מסחר אוטומטיות, המוצעות בשווקים על בסיס מנוי, הן אופציה לסוחרים המעוניינים לחקור את הטכניקה האלגוריתמית של המסחר.
בניית מערכות מסחר אוטונומיות משלך
סוחרים מתחילים יכולים לפתח טכניקות מסחר אלגוריתמיות משלהם ולעסוק במסחר מוצלח בשוק. כמתווה כללי, ניתן להשתמש בשלבים המפורטים להלן ליצירת אסטרטגיית מסחר אלגוריתמית:
- צור קונספט מסחר שלדעתך יצליח בשווקים פעילים באמצעות הדמיון שלך או שיטה. הרעיון יכול להיגזר מתצפיות שוק משלך, ספרי מסחר, מאמרים אקדמיים, בלוגי מסחר, פורומי מסחר או כל מקור אחר.
- אסוף את המידע הדרוש - תצטרך נתונים היסטוריים כדי לבדוק את ההשערה שלך. מידע זה זמין מספקי נתונים בתשלום או אתרים כמו Google Finance.
- כתיבת תוכנית דורשת שימוש בכלים כמו תכנות Excel, Python או R. ברגע שיש לך את הנתונים, תוכל להתחיל בקידוד הגישה שלך.
- בדיקת תפיסת המסחר שלך מול נתונים היסטוריים לאחר קידוד נקראת בדיקה לאחור של הגישה שלך. בדיקה חוזרת כרוכה באופטימיזציה של קלט, קביעת יעדי רווח ופקודות סטופ-הפסד, גודל עמדה ומשימות קשורות אחרות.
- נייר מסחר באסטרטגיה שלך - לאחר שלב הבדיקות האחוריות, הכרחי לסחור בנייר באסטרטגיה שלך. זה יכלול בדיקת התוכנית שלך באמצעות סימולטור המדמה שוק. לשיטת המסחר בנייר, ישנם ברוקרים המספקים פלטפורמת מסחר אלגוריתמית.
- אם הגישה שלך משתלמת לאחר מסחר בנייר, אתה יכול ליישם אותה במצבים אמיתיים. אתה יכול ליצור חשבון מסחר עם ברוקר אמין שמציע מסחר אלגוריתמי.
עם כל שנה שעוברת, יש יותר בורסות המאפשרות מסחר אלגוריתמי לסוחרים מקצועיים וקמעונאים כאחד, ויותר ויותר סוחרים משתמשים במסחר אלגוריתמי.
סיכום
זה היה מאמר יסודי על ארכיטקטורת מערכת מסחר אוטומטית שאנו בטוחים שסיפקה הבנה מעמיקה ביותר של הרכיבים המעורבים, כמו גם המכשולים הרבים שמפתחי ארכיטקטורה צריכים להתמודד/להתגבר עליהם כדי לעצב מערכת מסחר אוטומטית חזקה.
עשיתי כמיטב יכולתי לתת לך סקירה כללית של מערכת המסחר האוטומטית, אבל יש הרבה יותר שקורים מתחת למכסה המנוע. אני מקווה שתמצא את החומר הזה מועיל ותשתמש בו.
השאירו תגובה