Cara membuat aplikasi pertama untuk berdagang di bursa: 3 langkah awal



Pertukaran modern sangat teknologi dan menarik perhatian spesialis TI (misalnya, diskusi aktif dari artikel saya tentang topik ini). Banyak yang tertarik dengan topik penulisan robot perdagangan - seseorang ingin mencoba menghasilkan uang di bursa sendiri, seseorang tidak keberatan melakukannya berdasarkan pesanan. Hari ini kita akan berbicara tentang bagaimana mendekati pembuatan produk pertama - kita akan membahas tumpukan teknologi yang mungkin, menurunkan ambang masuk dan cara untuk meminimalkan kemungkinan kerugian.

Penafian : sebuah pos untuk mereka yang setidaknya secara kasar membayangkan perangkat pertukaran, adanya risiko, memiliki kesempatan untuk bereksperimen bukan untuk uang terakhir dan, secara umum, memiliki akal sehat.

Jelajahi Kemungkinan Stack Teknologi


Seperti dalam proyek TI mana pun, ketika mengembangkan aplikasi untuk perdagangan di bursa saham, pilihan alat tertentu menentukan tujuan akhir. Sebelum Anda mulai mengembangkan robot perdagangan, Anda perlu merancang seluruh sistem, memahami modul apa yang akan ada di dalamnya, bagaimana mereka akan berinteraksi.

Apakah Anda menulis robot frekuensi tinggi, yang penting setiap milidetik? Di pasar mana di negara mana sistem perdagangan akan beroperasi? Apakah hanya akan ada mesin perdagangan di dalamnya, atau apakah masih perlu menambahkan modul manajemen risiko?

Dalam setiap kasus ini, set teknologi dapat bervariasi. Pendekatan yang baik untuk seleksi dijelaskan dalam artikel tentang sumber daya profil QuantStart (tentu saja, dalam bahasa Inggris - lebih baik untuk menguasai bahasa ini untuk mengembangkan aplikasi keuangan).

Secara umum, Anda kemungkinan besar harus memilih dari daftar teknologi seperti itu:

  • Kebanyakan broker dan tidak hanya API (di sini adalah pilihan alat saya ) memiliki antarmuka dalam C ++ dan / atau Java. Mungkin Anda akan dapat menemukan modul yang sudah jadi untuk menghubungkan yang ditulis dalam C #, Python, R, Excel dan MatLab oleh perwakilan komunitas / klien dari broker tertentu. Tetapi Anda mungkin harus menulisnya sendiri.
  • Untuk analisis data, perpustakaan seperti uBLAS, LAPACK dan NAG untuk C ++ sering digunakan; MatLab dengan Python, NumPy / SciPy sangat populer.
  • Saat mengembangkan robot frekuensi tinggi menggunakan GPU (FPGA), kemungkinan besar Anda harus berkenalan dengan kerangka kerja CUDA.

Pelajari spesifik perkembangan di bidang keuangan dengan bahasa pemrograman bawaan


Menciptakan sistem perdagangan yang kuat secara default adalah proyek skala yang cukup besar. Namun, jika tujuan Anda, pada prinsipnya, untuk berkenalan dengan pengembangan untuk bidang keuangan, untuk mempelajari berbagai poin saat membuat robot perdagangan, maka sangat mungkin untuk dilakukan dengan apa yang disebut bahasa pemrograman bawaan.

Ada terminal perdagangan yang tidak hanya dapat digunakan untuk melakukan transaksi dalam mode manual, tetapi juga menggunakan bahasa skrip yang dibangun ke dalamnya untuk membuat robot sederhana.

Salah satu terminal paling populer di pasar saham Rusia adalah QUIK, dan memiliki bahasa algoritmik QPILE (QUIK Programmable Interface dan Logic Environment). Dengan itu, Anda dapat mengotomatiskan sistem perdagangan sederhana . Juga dalam QUIK, seorang juru bahasa dari bahasa scripting LUA adalah built-in - itu disebut QLUA. Skrip di atasnya dapat diunduh ke terminal baik dalam bentuk kode sumber, dan sudah dalam bentuk kode byte yang dikompilasi.

Contoh kode QPILE:

PROGRAM FirmCode = "MC0012300000" CurrentBalance = MONEY_CURRENT_BALANCE(ROWNAME, FirmCode, "EQTV", "SUR") CurrentLimit = MONEY_CURRENT_LIMIT(ROWNAME, FirmCode, "EQTV", "SUR") Locked = MONEY_LIMIT_LOCKED(ROWNAME, FirmCode, "EQTV", "SUR") AvailableMoney = MoneyCurrentBalance + MoneyCurrentLimit – MoneyLocked If AvailableMoney > 0 Status = " " Else Status = " " SET_ROW_COLOR(ROWNAME, "RGB(255,138,138)", "DEFAULT_COLOR") End If END_PROGRAM 

Kedua bahasa memiliki komunitas pengguna yang cukup maju, pertanyaan dapat diajukan di utas di forum resmi.

Selain QUIK, Anda dapat berdagang di bursa Rusia melalui terminal SMARTx . Ini menggunakan bahasa skrip bawaan TradeScript. Sintaksnya sederhana, tetapi jumlah kata dan operan yang tersedia dapat dikodekan dengan strategi yang cukup kompleks. Inilah yang tampak seperti kode strategi sederhana TradeScript:

 Buy Signals # ,        TREND(EMA(CLOSE, 20), 15) = UP AND TREND(MACD(13, 26, 9, SIMPLE), 5) = UP Sell Signals # ,        TREND(EMA(CLOSE, 20), 15) = DOWN AND TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN Exit Long Signal # ,         TREND(EMA(CLOSE, 20), 15) = DOWN OR TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN Exit Short Signal # ,         TREND(EMA(CLOSE, 20), 15) = UP OR TREND(MACD(13, 26, 9, SIMPLE), 5) = UP 

Langkah paling penting: pengujian dan debugging


Pengembangan aplikasi untuk sektor keuangan, dan terutama instrumen untuk perdagangan di bursa, diperumit oleh kenyataan bahwa di sini Anda harus membayar uang untuk kesalahan dalam arti literal. Ini bukan menulis kode untuk memulai web berikutnya, di mana kegagalan bisa tanpa disadari. Setiap kesalahan dalam kode robot perdagangan akan mengakibatkan hilangnya uang. Oleh karena itu, debugging dan pengujian adalah tahap paling penting dalam membuat perangkat lunak tersebut.

Tentu saja, Anda harus menerapkan semua praktik terbaik, membuat tes, melakukan penerimaan kode dengan benar (bahkan jika Anda sedang mengembangkan proyek sendiri). Dan yang paling penting - sebelum memulai tes pada uang nyata, "drive" program pada yang virtual.

Saat ini, banyak broker Rusia menawarkan layanan akses pengujian gratis (misalnya, perusahaan pengembang terminal SMARTx memilikinya) ketika mereka memberi Anda akun yang hampir tidak berbeda dari yang asli, tetapi uang di dalamnya virtual. Sebagai aturan, ketika bekerja dengan akun seperti itu, Anda dapat berdagang di pasar utama - saham, mata uang, turunan - dan bekerja dengan saham utama, futures, dll.

Dalam beberapa kasus, Anda bahkan dapat menguji perdagangan dengan dana pinjaman (yaitu leverage) - tetapi ketika membuat robot pertama, pertanyaannya adalah apakah masih perlu menambahkan fungsi seperti itu ke dalamnya.

Sumber daya yang berguna untuk pengembang aplikasi untuk berdagang di bursa:


Source: https://habr.com/ru/post/id458984/


All Articles