שפה אלגוריתמית QPILE לתכנות רובוטי מסחר עבור QUIK.
רובוטים למסחר יכולים להיכתב בשפה ספציפית, בדומה לקוד התוכנית. QPILE הוא אחד מהם, המאמר יתייחס לשפה זו, ישווה את שפות QPILE ו-
LUA , וגם יספק דוגמאות לרובוטים בשפה זו.
מידע כללי על QPILE
QPILE הוא קיצור המייצג QUIK Programmable Interface and Logic Environment.
זוהי סדרה של פקודות המתפרשות על ידי תחנת העבודה QUIK. הוא משמש בעיקר לחישוב מחיר תיקי ניירות ערך. השפה משמשת גם עבור:
- חישוב מחדש דינמי של מחיר נכסי הלקוחות על שולחן העבודה של הברוקר ובתיקים שלהם. במקרה האחרון, גם המחיר הכולל שלהם מחושב מחדש;
- מציאת אינדיקטורים חסרים באמצעות אלגוריתמים ונתונים משלהם להלוואת מרווחים;
- פיתוח אסטרטגיית מסחר נכונה.
השפה מתארת את מבנה הטבלה: מינוי עמודות ושורות, נוסחאות. באחרון, ניתן להשתמש בפעולות מתמטיות, משתנים, נתונים מטבלאות אחרות לחישוב. קוד התוכנית שנטען משרת QUIK או מהדיסק של המשתמש מעובד על ידי מתורגמן השפה, שמחשב את הערכים בנוסחאות. לטבלאות של תוכנית אחת יש מקור נתונים אחד, אך החישובים אינם משוכפלים ואינם משפיעים על יעילות המערכת. בעבודה עם טבלאות QUIK, לטבלאות ב-QPILE יש פונקציות סטנדרטיות. QUIK במקום העבודה מצויד במפרק קוד QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm השפה מאפשרת לתאר טבלאות חדשות במבנה נתון, להדגיש תאים עם ערכים מסוימים, לחשב שדות על סמך ביטויים מתמטיים ולוגיים. המשתמש יקבל התראות בצורה של אות קול או הודעת טקסט. ניתן לערוך טבלאות ב-QPILE, להדפיס, להעתיק, לייצא באמצעות שרת ODBC ו-DDE. הנתונים הראשוניים הם מטבלאות QUIK:
- עסקאות, לרבות לביצוע ולא אישיות;
- הזמנות, לרבות פקודות סטופ, לעסקאות ללא מרשם ולהזמנות – דוחות לעסקאות בעסקאות פשרה;
- “תיק לקוח”, “קנה/מכירה”
- נתונים מעמדות המשתתף לפי כסף, חשבונות מסחר, מכשיר.
לא ניתן להעתיק טבלאות המבוססות על QPILE לקובץ טקסט דרך תפריט ההקשר ולייצא למערכות ניתוח טכני, ולא ניתן לפתח תרשימים על בסיסן. לא ניתן לסנן או למיין טבלאות מבוססות QPILE.
עבודה עם שולחן
כדי לטעון את קוד התוכנית, עליך לבחור בתפריט השירותים ולאחר מכן ב-QPILE scripts. אתה יכול גם להשתמש בשילוב Ctrl+F11. לאחר שתצטרך ללחוץ על “הוסף” ובחר את הקובץ הרצוי. יש לו סיומת qpl ושמה יופיע ברשימת הסקריפטים הזמינים.
- שם שולחן;
- מספר עמודות ולקוחות;
- רשימת מזהים ולקוחות;
- רשימת הפרמטרים וקוד המקור של הקובץ.
QPILE בונה
סוגי מידע
- מחרוזת – מיתר.
- כפול הוא מספר נקודה צפה.
- אוסף – אוסף.
- מפה – מערך אסוציאטיבי – רצף של זוגות המאפשר לקבל מידע לפי מפתח.
ביטויים
מופעלות פעולות החשבון של חיבור, חיסור, כפל, חילוק. נעשה שימוש גם בביטויים הלוגיים “ו”, “או”, שווה, יותר, פחות, אי-שוויון, בנייה מותנית “אם … אז …”.
פונקציות
פונקציות יכולות להיות ממוקמות בכל מקום בתוכנית ויש להן שמות שונים. בסך הכל, 18 קבוצות של פונקציות ופונקציות מתמטיות זמינות לקבלת ערכי טבלאות ופרמטרים, מערכים אסוציאטיביים, רשימת טבלאות ומשימות אחרות. כיתה א:
- פונקציות מתמטיות המאפשרות להחזיר את הערך של הסינוס, הקוסינוס, הטנגנס, הקוטנגנט של הארגומנט, לחשב את המעריך של הארגומנט, ליצור מספר אקראי וכו’.
- פקודות כלליות : NEW_GLOBAL לאתחול משתנה גלובלי ו-MESSAGE לפתיחת הודעות.
פונקציות לעבוד איתן:
- אוספי חפצים (אוסף) . הם מאפשרים לך ליצור אוסף חדש, להחזיר את מספר האלמנטים הנדרש, להחליף או להכניס את הערכים הרצויים.
- מערכים אסוציאטיביים (MAP) . עזרה ליצור ולנהל את המערך.
- קבצים – עבודה עם קבצי טקסט, שמירה על יומן יומן של התוכנה. שם הקובץ עשוי להכיל את הנתיב אליו.
- מיתרים .
- גרפים . פונקציות GET_CANDLE כדי לגשת לנתוני נרות ו-GET_CANDLE EX להחזרת מערך אסוציאטיבי.
- יישומים . יצירת פקודות ושליחתן למערכת המסחר.
- תגיות . הבנייה וההתקנה שלהם על התרשים. הוספה, מחיקה של אחת או כל התוויות, קבלת והגדרת פרמטרים עבור תווית ספציפית.
יש גם פונקציות עבור:
- לגישה לשורות של טבלאות QUIK שרירותיות ולרשימות של פרמטרים זמינים . גישה לנתוני טבלאות מקום העבודה. אלה כוללים GET_ITEM להחזרת ה-MAP ו-GET_NUMBER_OF להחזרת מספר הערכים.
- לעבוד עם טבלה הניתנת לתכנות . פקודות אלו פועלות על הטבלה OWN. ניתן לקרוא אותו על ידי הפונקציות הסטנדרטיות מהפסקה הקודמת ועל ידי פונקציות אלו. קבוצה זו כוללת פקודות להוספה, שינוי ומחיקה של שורה עם אינדקס, וניקוי מוחלט של הטבלה OWN.
כדי לקבל ערכים השתמש:
- טבלאות של עסקאות שוטפות . קבלת פרמטרי חילופי מידע באמצעות פקודות GET_PARAM (_EX).
- ציטוט חלונות . השגת הערכים של ציטוטי מכשירים.
- טבלאות של עמדות לפי מכשירים וכסף . השגת נתונים על לקוח, חברה, מכשיר, חשבון פקדון לפי קוד.
פונקציות שירות – החזרת תאריך סשן המסחר הנוכחי, סדרות אסוציאטיביות, תאריך ושעה נוכחיים, קביעת מצב החיבור, הפסקת מצב החישוב.
תוכניות איתור באגים
שליטה שלב אחר שלב על פעולת התוכנית מתבצעת בחלון “ניפוי באגים”. הוא נפתח מתפריט ההקשר “התחל חישוב במצב ניפוי באגים”. ניתן לפתוח אותו גם עם הפקודה breakpoint() וששורת התוכנית תסומן באדום. החלון מכיל שדות עם קוד תוכנית וערכי משתנים. בתחתית החלון ישנם כפתורים “השלב הבא”, “המשך ביצוע”, “עצור חישוב”. לחיצה על F5 תמשיך את ביצוע התוכנית, השילוב Shift + F5 יפסיק איתור באגים, מקש F10 יפנה לשורה הבאה.
QPILE או LUA?
LUA היא שפת תכנות חדשה ליצירת רובוטים למסחר. כמו QPILE, הוא מיושם במסוף QUIK. https://articles.opexflow.com/programming/lua.htm אתר המוקדש לפיתוח רובוטי מסחר למסחר מציג את היתרונות של שפת LUA על פני QPILE. אז, הוא יכול לתפקד כסקריפט ובית-קוד לא מהול, מצויד בכלי מפתחים ומנגנוני תכנות מונחה עצמים. ניתן לחבר אובייקטים שנכתבו בשפות תכנות אחרות לתוכניות LUA. LUA מספק 8 סוגי נתונים, כולל metatables. שפת LUA היא רב-הליכי, מהירה ועסקאות ואירועי מסוף הם אסינכרוניים. LUA נפוץ יותר מ-QPILE, ונכתבו עבורו הרחבות רבות.
שפת QPILE הוצאה משימוש כעת. מומחים בפורומים ממליצים להשתמש ב-LUA. למרות שעדיין נעשה שימוש בתוכניות שימושיות ויעילות.
עם זאת, שפת QPILE פשוטה בהשוואה ל-LUA, כך שאם אין לכם ניסיון בתכנות, עדיף לבחור ב-QPILE. בשפה זו, אתה יכול לכתוב רובוט פשוט אם אתה לא צריך לבצע חישובים מורכבים.
כיצד ליצור רובוט מסחר ב-QPILE?
כדי ליצור יועץ מסחר, תזדקק לתוכניות הבאות:
- ITS Quik.
- עורך קוד פנקס++.
- מדריך ל-QPILE.
- תוסף XML לזיהוי קוד ב-Notepad++.
הורד והתקן את התוכנות הללו. אפשר את תחביר השפה על ידי הצבת userDefineLang.xml בנתיב C:\Users\User\AppData\Roaming\Notepad++\
לבלוק “הגדרות משתמש” מתווספות המשתנים NUMBER ו-INTERVAL, אשר ישמשו בפונקציה של השגת N הפסים האחרונים. הפונקציה DATETIME מגדירה את התאריך והשעה של השרת, ומתוכה נקראות פונקציות התאריך והשעה הנוכחיות CURDATE ו-CURTIME. השעה הנוכחית מומרה למספר בשורה 24. שורה 26 קובעת את הזמן שבו האלגוריתם יפעל מ-10:00:01 עד 18:40:00 UTC.
רובוטים למסחר ב-QPILE – פתרונות מוכנים
רובוט ממוצע נע
רובוט הדגמה לא מתאים למסחר אמיתי.
מחשבון עמדה נ’ מורושקין
תוכנית לחישוב רמות המשיכה המקסימלית המותרת והיעד לפוזיציות ארוכות וקצרות במחירי ביקוש והצעות נוכחיים. הרמות מחושבות עבור 2 ערכים של נפח כניסת המיקום. הרובוט מוצא את נפח הפוזיציה המותר בעת הקצאת הוראת סטופ בשלב אחד ממחיר הפתיחה עם חישוב פתיחת פוזיציה בכיוון הצמיחה של הסרגל. הרמות שנמצאו מוזנות לחלון הטרמינל, אשר משתקפות לאחר מכן בטבלת המחירים. עסקאות קבועות עבור מכשיר נתון. אם עמדה נפתחת, הרובוט מתחיל לחשב את הפרמטרים שלו. בהתאם לשינוי במיקום, ההזמנות שהוקצו מותאמות.
מסנן נפח
רובוט פורטפוליו לחישוב הממוצע האריתמטי של הנפח עבור נרות והשוואתו למוצר הממוצע לפי מקדם X. עובד נכון עם תרשימים משורטטים בפרק הזמן שנבחר.
אפשרויות יוונים
פורטפוליו לחישוב והצגת “יוונים” של אפשרויות. זה שונה משיטת Black-Showers.
רובוט מסחר TRIX עבור QUIK
התוכנית מבוססת על מחוון TRIX. כאשר המחוון נסגר מעל קו האפס, הרמה שצוינה, הרובוט לוקח את המיקום הארוך. הפוזיציה נסגרת על ידי Take Profit, Stop Loss או עצור נגרר.
M4 Preprocessor
תוכנית לעבודה עם QPILE ו-Lua. כולל ארכיונים עם קבצי הפעלה, תיעוד וקבצי DLL עם ניתוח ביטוי רגולרי. כדי להשתמש בתוכנית, עליך לפרק את קבצי ההפעלה ולהציב regexp2 בנתיב C:\Windows. שיעורים על QPILE עבור QUIK: https://youtu.be/vMTXwDUujpI התקנת סקריפט על QPILE במסוף Quik: https://youtu.be/0B7qL8Svh7I קטע ב-github שמתאר את השימוש בשפה האלגוריתמית QPILE המובנית ב-QPILE תחנת עבודה של מערכת QUIK הממוקמת בקישור – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE היא שפה מיושנת, אבל די פשוטה ונגישה אפילו לסוחרים מתחילים. רובוטים ותוכניות מסחר שהוכיחו את עצמם במשך זמן רב ממשיכים לעבוד על זה. עם זאת, למשימות מורכבות יותר עדיף להשתמש ב-LUA.
0к