Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Hitung value at risk (VaR) dengan menggunakan layanan AWS
Sumon Samanta, Amazon Web Services
Ringkasan
Pola ini menjelaskan cara menerapkan sistem perhitungan value at risk (VaR) dengan menggunakan layanan AWS. Di lingkungan lokal, sebagian besar sistem VaR menggunakan infrastruktur khusus yang besar dan perangkat lunak penjadwalan jaringan internal atau komersial untuk menjalankan proses batch. Pola ini menyajikan arsitektur yang sederhana, andal, dan dapat diskalakan untuk menangani pemrosesan VaR di AWS Cloud. Ini membangun arsitektur tanpa server yang menggunakan Amazon Kinesis Data Streams sebagai layanan streaming, Amazon Simple Queue Service (Amazon SQS) sebagai layanan antrian terkelola, Amazon sebagai layanan caching, dan AWS Lambda untuk ElastiCache memproses pesanan dan menghitung risiko.
VaR adalah ukuran statistik yang digunakan pedagang dan manajer risiko untuk memperkirakan potensi kerugian dalam portofolio mereka di luar tingkat kepercayaan tertentu. Sebagian besar sistem VaR melibatkan menjalankan sejumlah besar perhitungan matematika dan statistik dan menyimpan hasilnya. Perhitungan ini membutuhkan sumber daya komputasi yang signifikan, sehingga proses batch VaR harus dipecah menjadi set tugas komputasi yang lebih kecil. Memisahkan batch besar menjadi tugas yang lebih kecil dimungkinkan karena tugas-tugas ini sebagian besar independen (yaitu, perhitungan untuk satu tugas tidak bergantung pada tugas lain).
Persyaratan penting lainnya untuk arsitektur VaR adalah skalabilitas komputasi. Pola ini menggunakan arsitektur tanpa server yang secara otomatis menskalakan masuk atau keluar berdasarkan beban komputasi. Karena permintaan komputasi batch atau online sulit diprediksi, penskalaan dinamis diperlukan untuk menyelesaikan proses dalam garis waktu yang ditentukan oleh perjanjian tingkat layanan (SLA). Selain itu, arsitektur yang dioptimalkan biaya harus dapat menurunkan setiap sumber daya komputasi segera setelah tugas pada sumber daya tersebut selesai.
Layanan AWS sangat cocok untuk perhitungan VaR karena menawarkan kapasitas komputasi dan penyimpanan yang dapat diskalakan, layanan analitik untuk diproses dengan cara yang dioptimalkan biaya, dan berbagai jenis penjadwal untuk menjalankan alur kerja manajemen risiko Anda. Selain itu, Anda hanya membayar untuk sumber daya komputasi dan penyimpanan yang Anda gunakan di AWS.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif.
Masukkan file, yang tergantung pada kebutuhan bisnis Anda. Kasus penggunaan tipikal melibatkan file input berikut:
File data pasar (masukan ke mesin perhitungan VaR)
File data perdagangan (kecuali data perdagangan datang melalui aliran).
File data konfigurasi (model dan data konfigurasi statis lainnya)
File model mesin perhitungan (pustaka kuantitatif)
File data deret waktu (untuk data historis seperti harga saham selama lima tahun terakhir)
Jika data pasar atau input lain masuk melalui aliran, Amazon Kinesis Data Streams disiapkan, dan Amazon Identity and Access Management (IAM) and Access Management (IAM) dikonfigurasi untuk menulis ke aliran.
Pola ini membangun arsitektur di mana data perdagangan ditulis dari sistem perdagangan ke aliran data Kinesis. Alih-alih menggunakan layanan streaming, Anda dapat menyimpan data perdagangan Anda dalam file batch kecil, menyimpannya di bucket Amazon Simple Storage Service (Amazon S3), dan memanggil acara untuk mulai memproses data.
Batasan
Pengurutan aliran data Kinesis dijamin pada setiap pecahan, sehingga pesanan perdagangan yang ditulis ke beberapa pecahan tidak dijamin akan dikirimkan dalam urutan yang sama dengan operasi penulisan.
Batas runtime AWS Lambda saat ini adalah 15 menit. (Untuk informasi lebih lanjut, lihat FAQ Lambda
.)
Arsitektur
Arsitektur target
Diagram arsitektur berikut menampilkan layanan AWS dan alur kerja untuk sistem penilaian risiko.

Diagram ini menggambarkan hal sebagai berikut:
Aliran perdagangan dari sistem manajemen pesanan.
Fungsi Lambda jaring posisi tiket memproses pesanan dan menulis pesan terkonsolidasi untuk setiap ticker ke antrian risiko di Amazon SQS.
Mesin penghitung risiko Fungsi Lambda memproses pesan dari Amazon SQS, melakukan perhitungan risiko, dan memperbarui informasi laba rugi (PnL) VaR di cache risiko di Amazon. ElastiCache
Fungsi Lambda ElastiCache data baca mengambil hasil risiko dari ElastiCache dan menyimpannya dalam database dan bucket S3.
Untuk informasi selengkapnya tentang layanan dan langkah-langkah ini, lihat bagian Epik.
Otomatisasi dan skala
Anda dapat menerapkan seluruh arsitektur dengan menggunakan AWS Cloud Development Kit (AWS CDK) atau templat CloudFormation AWS. Arsitektur dapat mendukung pemrosesan batch dan pemrosesan intraday (real-time).
Penskalaan dibangun ke dalam arsitektur. Karena lebih banyak perdagangan ditulis ke dalam aliran data Kinesis dan menunggu untuk diproses, fungsi Lambda tambahan dapat dipanggil untuk memproses perdagangan tersebut dan kemudian dapat menurunkan skala setelah pemrosesan selesai. Memproses melalui beberapa antrian perhitungan risiko Amazon SQS juga merupakan pilihan. Jika pemesanan atau konsolidasi yang ketat diperlukan di seluruh antrian, pemrosesan tidak dapat diparalelkan. Namun, untuk end-of-the-day batch atau batch intraday mini, fungsi Lambda dapat memproses secara paralel dan menyimpan hasil akhir. ElastiCache
Alat
Layanan AWS
Amazon Aurora MySQL Compatible Edition adalah mesin database relasional MySQL yang dikelola sepenuhnya dan kompatibel dengan MySQL yang membantu Anda mengatur, mengoperasikan, dan menskalakan penerapan MySQL. Pola ini menggunakan MySQL sebagai contoh, tetapi Anda dapat menggunakan sistem RDBMS apa pun untuk menyimpan data.
Amazon ElastiCache membantu Anda mengatur, mengelola, dan menskalakan lingkungan cache dalam memori terdistribusi di AWS Cloud.
Amazon Kinesis Data Streams membantu Anda mengumpulkan dan memproses aliran besar catatan data secara real time.
AWS Lambda adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
Amazon Simple Queue Service (Amazon Simple Queue Service) menyediakan antrian host yang aman, tahan lama, dan tersedia yang membantu Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
Kode
Pola ini memberikan contoh arsitektur untuk sistem VaR di AWS Cloud dan menjelaskan bagaimana Anda dapat menggunakan fungsi Lambda untuk perhitungan VaR. Untuk membuat fungsi Lambda Anda, lihat contoh kode dalam dokumentasi Lambda. Untuk bantuan, hubungi AWS Professional Services
Praktik terbaik
Pertahankan setiap tugas komputasi VaR sekecil dan seringan mungkin. Bereksperimenlah dengan jumlah perdagangan yang berbeda di setiap tugas komputasi untuk melihat mana yang paling dioptimalkan untuk waktu dan biaya komputasi.
Simpan objek yang dapat digunakan kembali di Amazon ElastiCache. Gunakan kerangka kerja seperti Apache Arrow untuk mengurangi serialisasi dan deserialisasi.
Pertimbangkan batasan waktu Lambda. Jika menurut Anda tugas komputasi Anda mungkin melebihi 15 menit, cobalah untuk memecahnya menjadi tugas yang lebih kecil untuk menghindari batas waktu Lambda. Jika ini tidak memungkinkan, Anda dapat mempertimbangkan solusi orkestrasi kontainer dengan AWS Fargate, Amazon Elastic Container Service (Amazon ECS), dan Amazon Elastic Kubernetes Service (Amazon EKS).
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Mulai menulis perdagangan. | Perdagangan baru, diselesaikan, atau sebagian diselesaikan ditulis dari sistem manajemen pesanan ke aliran risiko. Pola ini menggunakan Amazon Kinesis sebagai layanan streaming terkelola. Hash ticker order perdagangan digunakan untuk menempatkan pesanan perdagangan di beberapa pecahan. | Amazon Kinesis |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Mulai pemrosesan risiko dengan Lambda. | Jalankan fungsi AWS Lambda untuk pesanan baru. Berdasarkan jumlah order perdagangan yang tertunda, Lambda akan secara otomatis menskalakan. Setiap instans Lambda memiliki satu atau lebih pesanan dan mengambil posisi terbaru untuk setiap ticker dari Amazon. ElastiCache (Anda dapat menggunakan ID CUSIP, nama Kurva, atau nama indeks untuk produk derivatif keuangan lainnya sebagai kunci untuk menyimpan dan mengambil data dari.) ElasticCache Dalam ElastiCache, total posisi (kuantitas) dan pasangan kunci-nilai < ticker, posisi bersih>, di mana posisi bersih adalah faktor penskalaan, diperbarui satu kali untuk setiap ticker. | Amazon Kinesis, AWS Lambda, Amazon ElastiCache |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Tulis pesan konsolidasi ke antrian risiko. | Tulis pesan ke antrian. Pola ini menggunakan Amazon SQS sebagai layanan antrian terkelola. Satu instance Lambda mungkin mendapatkan batch mini pesanan perdagangan pada waktu tertentu, tetapi hanya akan menulis satu pesan untuk setiap ticker ke Amazon SQS. Faktor penskalaan dihitung: (posisi bersih lama+posisi saat ini) /posisi bersih lama. | Amazon SQS, AWS Lambda |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Mulai perhitungan risiko. | Fungsi Lambda untuk lambda mesin risiko dipanggil. Setiap posisi diproses oleh satu fungsi Lambda. Namun, untuk tujuan pengoptimalan, setiap fungsi Lambda dapat memproses beberapa pesan dari Amazon SQS. | Amazon SQS, AWS Lambda |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Ambil dan perbarui cache risiko. | Lambda mengambil posisi bersih saat ini untuk setiap ticker dari. ElastiCache Ini juga mengambil array laba dan rugi (PnL) VaR untuk setiap ticker dari. ElastiCache Jika array PnL sudah ada, fungsi Lambda memperbarui array dan VaR dengan skala, yang berasal dari pesan Amazon SQS yang ditulis oleh fungsi Lambda jaring. Jika array PnL tidak masuk ElasticCache, PnL dan VaR baru dihitung dengan menggunakan data seri harga ticker simulasi. | Amazon SQS, AWS Lambda, Amazon ElastiCache |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Menyimpan hasil risiko. | Setelah nomor VaR dan PnL diperbarui ElastiCache, fungsi Lambda baru dipanggil setiap lima menit. Fungsi ini membaca semua data yang disimpan dari ElastiCache dan menyimpannya dalam database yang kompatibel dengan Aurora MySQL dan dalam ember S3. | AWS Lambda, Amazon ElastiCache |