Öncəki sərt məlumat - Kəmiyyət ticarət sisteminin avtomatlaşdırılmış real vaxt detalları və düşüncələri (bir Problemlər və çətinliklər) kripto dünyasında real vaxtın əsas çətinliklərinə bir az toxundu. Bu yazıda isə real vaxtın əsas məqsədini danışacağam.
Məncə əsasən dörd var:
Bir. Strategiyanın müəyyən edilmiş məntiqini həyata keçirmək
Bu heç bir şübhə doğurmur. Siqnal olduqda müvafiq əməliyyatları yerinə yetirmək, açılış, bağlanış etmək lazımdır. Bu, mümkün qədər limit əmrindən istifadə etməməyə ehtiyac duyur, əks halda əməliyyat alınmayacaq, təqib əmri vermək lazım olacaq, bəlkə də qiymət artıq çox uzağa gedib, sonunda isə təqib edib-etməmək də bir sualdır.
Uzun müddətdə, bazar qiyməti əmri ilə yaranan sürüşmə və bəzən limit əmri qaçırma, lakin yenə də təqib əmri ilə yaranan sürüşmə ümumilikdə bənzərdir, ona görə də birbaşa bazar qiyməti ilə daxil olub çıxmaq daha yaxşıdır, əgər strategiyanız çox xüsusi deyilsə.
Bundan əlavə, limit əmri istifadə edirsinizsə, sizin kodunuz daha mürəkkəbdir, çünki yerinə yetirilməmiş limit əmrlərini idarə etməli, daha sonra isə təqib etməlisiniz. Həmçinin əgər limit əmri yalnız bir hissədə yerinə yetirilirsə, nə etmək olar? Qalan limit əmri hələ də asılıdırmı? Yoxsa itirilmiş hissəni başqa bir bazar qiymətində göndərmək lazımdır? Bu cür bir əməliyyat bir neçə əməliyyat sifarişi yaradır, sonradan təhlil də çətinləşir, qarışdırmaq asandır. Buna görə də, sadəcə bazar qiymətini istifadə etmək daha yaxşıdır, bir dəfə uğurla təqdim edildikdə, əsasən yerinə yetirilməsini təmin edir. Əgər həqiqətən slippage-ə həssas bir strategiya varsa, onda yalnız likvidliyi yaxşı olan obyektləri seçin.
Həmçinin, müqavilə ilə bağlı leverajı da istədiyiniz vaxt dəyişdirməyin, ən yaxşısı geriyə test edilmiş ideal leverajı 80% ilə istifadə etməkdir. Bazarın yönünü insanın subyektiv olaraq proqnozlaşdırmaması, leverajı əl ilə tənzimləməməsi lazımdır. Mövqenin dəyişikliyi avtomatik ticarət üçün böyük bir qadağadır.
Mövqeləri avtomatik olaraq qazanmaq və itirmək üçün ən yaxşısı, geri çəkilmə müəyyən bir səviyyəyə çatdıqda, leverajı azaltmaqdır, əksinə getməmək, elə bil ki, dərhal tufan gələcək, leverajı artırmaq (amma əsas kapitalı artırmaq, leverajı azaltmaq olar). Hesabın həyatı ən vacibdir, əvvəlcə məğlub olmamağı hədəfləmək lazımdır. Maliyyə xətti geri çəkilmə dövrünü keçdikdən sonra, leverajı yenidən artırmaq olar. Amma əgər faizi artırma modeli istifadə olunursa, artıq sadə avtomatik qazanmaq və itirməkdir.
İkinci. Slippage-i mümkün qədər azaltmaq.
Bu nöqtəni bir əvvəlki yazıda artıq qeyd etmişdim. Slippage aradan qaldırıla bilməz, yalnız mülayimləşdirilə bilər. Bunun üçün siz bazar qiyməti məlumatlarını ilk anlarda əldə edə bilməlisiniz, ticarət hesabınızdakı müxtəlif maliyyə və mövqe məlumatlarını, sürətli reaksiya verə bilmək üçün.
Real ticarət ümumi arxitekturasında, alt strategiyalar çoxdur və müxtəlif məlumatları vaxtında əldə etməyə ehtiyac var, buna görə də xüsusi bir websocket bazar mərkəzi olmalıdır ki, tapşırıqları paylaşsın. Həm də bir Restful Plan B bazar mərkəzini ehtiyat olaraq əlavə edin. Beləliklə, əgər websocket bağlantısı kəsilərsə, hələ də daha yeni bir qiymətə sahib olacaqsınız ki, bazardan çıxmağın lazım olub-olmadığını müəyyən edə biləsiniz. Qaçma vaxtı tez olmalıdır, səhv qaçmağı üstün tutun, içərdə sıxılmaqdan, gələcəyin necə olacağını bilməkdən daha yaxşıdır.
Üçüncüsü. Uzun müddətli işləmə.
Bu nöqtəni əvvəlki yazıda da qeyd etmişdim. Kriptovalyuta bazarı 7*24 işləyir, sizin kodunuz dayanmamalıdır. Bu, kodun hər cür istisna ilə atılmaması tələb edir, bütün təsadüfi halları idarə edən kod olmalıdır. Həmçinin, yaddaş sızmasının olması lazım olan bu cür səhvlər olmamalıdır, əks halda zaman keçdikcə proqram çökəcək, hətta bütün server da yıpranacaq. Yaxşı ki, Python bu cür problemlərə səbəb olmur, onun yaddaş avtomatik geri qaytarma mexanizmi var. Hətta işlər pis getsə, hər gün və ya bir neçə gündən bir ticarət proqramını əl ilə yenidən başlatmaq olar, axı bunlar orta və aşağı tezlikli ticarətdir. Bunlar əsas arxa plan kodu inkişaf tələbləridir, asanlıqla yerinə yetirilə bilər.
Ümumi kvantitativ ticarət adətən Python istifadə edir. Python-un bu skript dilinin ən böyük xüsusiyyəti dinamik tərtibatdır, icra səmərəliliyi bir az aşağıdır, çünki tərtibat və icra eyni anda baş verir (amma bu, orta və aşağı tezlikdə ticarətə təsir etmir) asanlıqla düzəldilmir. Əgər kodun məntiqi cəhətdən gizli bir problem varsa, onu aşkar etmək çətin ola bilər. Məsələn, 100 sətr kod var, 99-cu sətirdə problem var, amma hər dəfə yalnız 95-ci sətrə qədər çalışdırılır, bu problem aşkar edilməyəcək, çünki 99-cu sətrə çatmaq, müvafiq kodu işə salmaq lazımdır, yalnız o zaman səhv aşkar ediləcək, amma bu vaxt artıq gec ola bilər, proqram birbaşa çökəcək, əgər sizdə try catch istisnası yoxdursa.
Başqa bir xüsusiyyət, əslində yuxarıda qeyd olunan məsələlərdə artıq yer alıb. Çünki Python güclü tipli sayılır, nadir hallarda gizli tip çevrilməsi olur. Əgər siz serverdən gələn məlumat tipinə çox güvənirsinizsə, xüsusilə də ədədlərə, çox güman ki, ziyan çəkə bilərsiniz, çünki bəzən ədədlər simvola çevrilə bilər. Müxtəlif kriptovalyuta növləri, fərqli API versiyaları, websocket və rest-dən gələn eyni cavab məlumatı fərqli tiplərdə ola bilər. Beləliklə, prinsipcə, hər dəfə məcburi çevrilmə aparmalı və ya əvvəlcə çevrilməyə ehtiyac olub-olmadığını müəyyən etməlisiniz.
Həmçinin, müxtəlif strategiyalar arasında açılış və bağlanma ilə qarışmamaq lazımdır, xüsusilə eyni bir valyuta üçün, yaxşı izolyasiya edin. Əks halda, bəzi ekstremal bazar şərtlərində, a strategiyası b strategiyasının mövqesini bağlayır, nəticədə uyğunlaşmır, real ticarəti dayandırmalı və yenidən başlamağa məcbur ola bilərsiniz, bu da davamlılığı pozur və bəlkə də əsas bazar tendensiyalarını qaçırmağına səbəb olur.
Bir cümlə ilə, hər şey real ticarətin uzunmüddətli tam avtomatlaşdırılmış müdaxiləsiz işləməsi üçündür.
Lakin, əgər strategiya çox mürəkkəbdirsə, tamamilə müdaxilə olmadan həyata keçirmək asan deyil. Strategiyanı sadələşdirmək də bir giriş nöqtəsidir, çox mürəkkəb etməyin. Məsələn, OBV kimi siqnallardan az istifadə edin, çünki OBV çox uzaq qiymət və həcmi məlumatlarını tələb edir, real ticarət çoxlu məlumatları saxlamağı tələb edir, hər dəfə dayandıqda, yenidən başlatma bir problem olur. İstənmədikdə, belə faktorların qarşısını almaq lazımdır.
Dördüncüsü. Risk idarəetməsi.
Bu nöqtə real ticarət tələblərinin ən vacibidir.
Ən təhlükəli olanı, mövqenin bağlanmamasıdır. Bazar tərsinə dönür və hələ də davam edir, nəticədə sizin çıxış kodunuz nəzarətdən çıxır, hər hansı bir səbəbə görə, zərərləri dayandırmadan bağlanır. Kriptovalyuta dünyasında, altcoinlər qısa müddətdə bir neçə dəfə artma ehtimalı var. Buna görə də, qısa satmaq vəziyyətində, siz leverage istifadə etməsəniz belə, yarı mövqedə olsanız, özünüzü təhlükəsiz hiss etdiyinizi düşündüyünüz halda, səhər oyananda mövqeniz tamamilə tükənə bilər.
Buna görə də, çıxış mexanizminin mütləq işləməsini təmin etmək lazımdır. Açılış imkanını qaçırmaq, ən azı ölümcül olmayacaq, boş qalmış olmaq yalnız peşmançılıq doğurur, amma bağlanma imkanını qaçırmaq ciddi problemlər yaradacaq.
Burada iki sadə həll yolu haqqında danışacağam, sonradan daha ətraflı izah edəcəyəm.
Birinci nöqtə, ən yaxşısı sərt stop-lossa sahib olmaqdır, yəni sabit zərər nisbətinə bənzəyir. Məsələn, böyük valyutalar 10% itki edərkən, kiçik valyutalar 15% itki edərsə, baş verdikdə dərhal bağlanmalıdır.
Sərt stop-loss metodu açılış anında stop-loss qiymətini müəyyən etməlidir. Beləliklə, açılışdan sonra mümkün qədər tez bir zamanda alqoritmik stop-loss əmri təqdim etməlisiniz (bəziləri şərt əmri də adlanır), arada qiyməti dəyişmək lazım deyil. Beləliklə, ticarət mərkəzi sizin üçün real vaxt qiymətini monitorinq edir, baş verdikdən sonra sizə bazar qiymətini təqdim edir. Bu cür idarəetmə ilə çoxlu slippage ola bilər, amma sizin özünüz tərəfindən həyata keçirilən stop-lossdan daha stabil və etibarlıdır, hətta problem olsa, aktivləşməsə, siz hələ də ticarət mərkəzindən müdafiə tələb edə bilərsiniz (beləliklə, iri ticarət mərkəzinə getmək lazımdır).
Əlbəttə, bu cür stop-loss, aşağıda qorumaq üçün istifadə olunur, çox az aktivləşməli, daha yaxşıdır ki, öz strategiyanız çıxış zamanını idarə etsin, beləliklə geri çəkilmə daha az ola bilər.
İkinci nöqtə, proqramın açılışda qarışmamasıdır. Artıq mövqedə olsanız, amma hələ də açıq olduğunu düşünərək, ardıcıl açılış edirsiniz, nəticədə böyük bir açıq mövqe açılır. Qısa müddətdə qiymət dəyişməzsə, hələ də düzəldib müdaxilə edə bilərsiniz, əgər birdən tərsinə dönsə, o zaman partlama riski var, bu da siz açdığınız mövqenin nə qədər olduğuna bağlıdır. Əlbəttə ki, bu, aşağı səviyyəli bir səhvdir, amma həqiqətən baş verə bilər. Xüsusilə kodlar yeniləndikdən sonra bəzən düşünülmədən baş verə bilər.
Bu, açılış tempini bir az yavaşlatmağı tələb edir, açılış nəticəsinin qayıtmasını gözləmək lazımdır. Həmçinin açılışdan əvvəl mütləq hesab məlumatlarını yoxlamaq lazımdır, ardıcıl açılış etməyin, əlbəttə ki, bütün əməliyyatları yerli olaraq qeyd edə bilərsiniz, beləliklə ticarət mərkəzində öz hesabınızdakı vəziyyəti yoxlamaq üçün API sorğularının sayını və vaxtını azaldarsınız.
Həmçinin, daha effektiv olanı, ticarət mərkəzinin maksimum leverajını əvvəlcədən məhdudlaşdırmaqdır. Bu, özünüz tərəfindən tənzimlənə bilər. Binance-də standart 20 qatdır, siz bunu 3 qat, hətta 2 qat olaraq dəyişdirə bilərsiniz (şübhəsiz ki, bu, strategiyanın özünün yüksək leveraj istifadə etməməsini tələb edir, əks halda siz yüksək nöqtədə açılmamalısınız). Beləliklə, kodunuz necə də dəlisov olsa da, yuxuda olduğunuz zaman böyük bir açıq mövqenin yaranması mümkün deyil. Bu, daha etibarlıdır.
Ümumilikdə, real ticarət bəzən yalnız ticarət kodu ilə deyil, həm də digər müdafiə xətləri ilə təchiz edilməlidir ki, qarışıq qara quş hadisələrinin təsiri altında bir anda aşkar edilməsin. Hər zaman ehtiyatlı olmaq lazımdır, mümkün qədər ölü bucaqları bağlamağa çalışın.