Sumber dimuat naik... memuat...

Pemula, periksa Membawa anda ke Perdagangan Kuantitatif Cryptocurrency (1)

Penulis:Ninabadass, Dicipta: 2022-04-15 17:32:34, Dikemas kini: 2022-04-22 14:44:33

Pemula, periksa Membawa anda ke Perdagangan Kuantitatif Cryptocurrency (1)

Dengan perkembangan perdagangan kuantitatif aset blockchain, semakin banyak peniaga aset blockchain telah mengenali alat perdagangan kuantitatif. Tetapi sebagai ahli baru dalam bulatan ini, anda sangat keliru tentang banyak konsep, keliru dengan pelbagai istilah, perisian, maklumat, dll. Artikel ini akan membawa anda untuk memahami dan membiasakan diri dengan konsep biasa, dan memahami pelbagai maklumat berguna dalam perdagangan kuantitatif aset blockchain dari pelbagai aspek. Artikel ini mula-mula meringkaskan konsep asas, dan kemudian memberikan contoh di platform FMZ Quant Trading yang sepadan dengan konsep asas ini.

  • Platform

    Pertama sekali, kita perlu memahami konsep platform. Kita perlu membuat spekulasi dan melabur dalam aset blockchain di tangan kita di platform. Terdapat banyak platform pada masa ini, senior, baru muncul, berskala besar dan berskala kecil.

    • Akaun platform Akaun platform adalah akaun yang didaftarkan dan dibuka di platform. Aset blockchain boleh disimpan di akaun ini untuk perdagangan. Beberapa akaun platform boleh membuat dan menetapkanSub- akaunDi bawah akaun utama untuk memudahkan perdagangan berasingan dan spekulasi aset. Aplikasi, mekanisme, dan penggunaan sub-akaun untuk setiap platform adalah berbeza. Anda perlu menyemak maklumat di laman web platform tertentu. Atau rujuk perkhidmatan pelanggan platform.

      Selepas log masuk dengan akaun di laman web platform, anda biasanya dapat melihat bahawa tempat di mana aset blockchain dapat disimpan dibahagikan kepada beberapa akaun (di sini adalah akaun logik, bukan akaun platform).akaun dompet, akaun dagangan mata wang, akaun pengurusan kewangan, akaun dagangan kontrakdan sebagainya. butiran mungkin berbeza dari platform ke platform. biasanya, selepas tergesa-gesa ke dalam aset blockchain (mata wang), aset itu berada di bawah akaun (ia mungkin dalam akaun dompet, atau terus ke akaun perdagangan mata wang). oleh itu, selepas mengisi semula, anda perlu memeriksa di mana aset itu, dan memindahkan apabila anda perlu memindahkan (contohnya, apabila anda perlu berdagang dalam niaga hadapan).

    • API sistem platform Ramai pelajar yang belum menggunakan fungsi di platform mungkin bertanya: Apa yang antara muka API? Antara muka API adalah antara muka yang diberikan oleh sistem platform yang membolehkan operasi program. Sederhananya, pertukaran memberikan saluran untuk membenarkan (bot script) program dalam sistem platform (bayangkan pasaran pasangan perdagangan tertentu di laman web platform) untuk meletakkan pesanan, membatalkan pesanan, memeriksa pesanan, aset dan kedudukan akaun, serta melakukan operasi lain dalam sistem platform.

      API platform dibahagikan kepada pelbagai jenis antara muka; biasanya, terdapatRESTantara muka protokol danWebSocketbeberapa platform juga menyediakanFIXantara muka protokol. kita hanya perlu mempunyai pemahaman tentang antara muka tersebut. antara muka yang paling biasa digunakan adalah protokol REST. dokumentasi antara muka ini biasanya boleh didapati dalam pautan dengan perkataanAPIdi bahagian bawah laman web rasmi platform tersebut. Kadang-kadang, untuk menanyakan beberapa maklumat ralat antara muka, anda masih perlu memeriksa dokumentasi antara muka. Sistem API setiap platform berbeza, dan perbezaannya agak besar. Untuk masalah tertentu, anda perlu memeriksa dokumentasi mereka. Jika anda bukan pemaju strategi, ini hanya untuk pemahaman.

    • Kunci API akaun Kunci API akaun mesti difahami dengan teliti, kerana ini berkaitan dengan keselamatan aset blockchain yang disimpan di platform yang anda gunakan. Ia dikatakan bahawa antara muka API adalah saluran, maka API KEY boleh difahami sebagailulusJika terdapat saluran akses, tidak semua program boleh dibenarkan untuk mengakses, kerana ia berbahaya. Oleh itu, pengesahan diperlukan, dan API KEY digunakan untuk mengesahkan identiti. Oleh itu, API KEY berkaitan dengan keselamatan aset anda, jadi ia mesti disimpan dengan betul.

      Biasanya, APIKEY platform dicipta di sudut kanan atas halaman platform, di halaman pengurusan akaun (mungkin juga terdapat platform yang meletakkannya di tempat lain di halaman web, cari pautan dengan kata kunci API dan klik untuk mencarinya). API KEY terdiri daripada dua rentetan; rentetan pertama biasanya dipanggilaccess key, dan rentetan kedua biasanya dipanggilsecret key. Terdapat juga platform yang API KEY juga mempunyai maklumat lain. Sebagai contoh antara muka OKEX V5 dan V3 juga mempunyaiPassPhrase, yang juga satu rentetan (rantai yang perlu ditetapkan oleh anda sendiri untuk mengukuhkan pengesahan keselamatan). Apabila menetapkan API KEY, biasanya perlu menetapkan kebenaran API KEY ini. Secara amnya, terdapat kebenaran seperti dagang dan pengeluaran. Ia harus ditetapkan mengikut tujuan API KEY, dan kebenaran untuk mengeluarkan duit syiling perlu digunakan dengan berhati-hati. Selain kebenaran, API KEY juga boleh menetapkan senarai putih alamat IP. Jika anda menggunakan IP selain daripada senarai putih alamat IP ini (anda boleh mencari di Baidu jika anda tidak memahami konsep alamat IP) untuk mengakses antara muka, akses akan ditolak (iaitu, rangkaian di luar senarai putih IP tidak dapat mengakses atau mengendalikan akaun anda).

    • Objek pertukaran Konsep objek pertukaran adalah konsep di FMZ Quant Trading Platform (FMZ.COM) Secara ringkasnya, ia merujuk kepada objek yang dihasilkan oleh pengelupasan antara muka platform. Objek ini adalah exchange dalam kod strategi FMZ. Panggilan fungsi exchange.GetTicker sebenarnya memanggil antara muka untuk mengakses data pasaran platform. Untuk butiran lanjut, sila rujuk dokumentasi FMZ API:https://www.fmz.com/api#exchangePlatform boleh mempunyai modul niaga hadapan dan modul spot. Oleh kerana objek pertukaran niaga hadapan dan objek pertukaran spot yang ditakrifkan di FMZ adalah jenis objek pertukaran yang berbeza, modul dibezakan (objek pertukaran niaga hadapan mempunyai beberapa fungsi lebih daripada objek pertukaran spot, seperti fungsi menetapkan leverage dan fungsi pertanyaan kedudukan, dll. merujuk kepada dokumentasi API untuk butiran lanjut).

      Jika strategi adalah untuk mengoperasikan objek pertukaran niaga hadapan, tambah niaga hadapan, dan jika anda ingin mengoperasikan objek pertukaran spot, tambah spot.

      Pada platform FMZ, exchange adalah objek pertukaran, yang mewakili akaun platform.https://www.fmz.com/api#exchanges

  • Pasaran Dagangan

    Pasaran dagangan yang disebut di sini merujuk kepada keadaan pasaran dagangan tertentu (bayangkan halaman dagangan), biasanya dagangan dalam pelbagai modul.Perdagangan mata wang, Dagangan margin spot, Perdagangan kontrak, dan lain-lain

    • Pasangan Dagangan Apa yang biasanya kita maksudkan dengan "pasangan perdagangan" adalah apa yang kita beli dan jual, seperti ketika kita pergi ke pasaran untuk membeli kubis.kuah_duitadalah pasangan dagangan (menggunakan tanda tandas " _ " untuk membahagikan). Pembeli membayar kubis, dan penjual memberikan kubis kepada pembeli untuk mendapatkan wang. Sama untuk pasangan dagangan tertentu di platform. Sebagai contoh:BTC_USDT; kita membeli dalam pasangan perdagangan ini, yang bermaksud membayar USDT untuk mendapatkan BTC. Operasi penjualan adalah untuk membayar BTC untuk mendapatkan USDT. MengambilBTC_USDTSebagai contoh, kita biasanya memanggil BTC simbol mata wang dagangan dan USDT simbol mata wang sebut harga.

      • Mata wang asas
      • Mata wang sebut harga
    • SpotPerdagangan mata wangdanDagangan margin spotPerdagangan spot hanya perlu menentukanPasangan daganganuntuk menerangkan pasaran mana ia didagangkan. Sebagai contoh, apabila anda menggunakannya di FMZ Quant, jika anda ingin membuat pasangan perdagangan pertukaran BTC untuk USDT. Mata wang perdagangan adalah BTC, dan mata wang sebut harga adalah USDT. Kami menggunakan fungsiexchange.SetCurrency("BTC_USDT")di platform FMZexchange.SetCurrency("BTC_USDT")untuk menukar pasangan dagangan semasa kepada:BTC_USDT.

      Bagi pelajar yang tidak fahamSetCurrency, anda boleh merujuk kepada:https://www.fmz.com/api#exchange.setcurrency. Bagi pelajar yang tidak fahamexchange, anda boleh merujuk kepada:https://www.fmz.com/api#exchange.

    • Kontrak (Masa Depan & Pilihan) Perdagangan kontrak sangat berbeza dengan perdagangan spot.crypto-margined contractsdanUSDT-margined contracts. Untuk perdagangan programatik dan perdagangan kuantitatif, perlu menentukan bukan sahaja pasangan dagangan, tetapi juga jenis kontrak. Sebagai contoh, jika kita ingin berdagang dengan BTC, maka terdapat banyak kontrak BTC, termasuk kontrak suku (penghantaran apabila tamat setiap suku), kontrak mingguan (penghantaran apabila tamat setiap hari Jumaat), kontrak kekal (tidak penghantaran), dll. Kemudian jika hanya satu pasangan perdagangan digunakan untuk pengenalan, jenis kontrak yang akan digunakan? Oleh itu, kod kontrak tertentu diperlukan untuk menerangkan dan menentukan itu. Dengan cara ini, apabila kita menerangkan pasaran kontrak yang akan didagangkan, kita perlu menerangkan simbol mata wang (pasangan perdagangan) dan jenis kontrak (kod kontrak) itu.

      • Kontrak dengan margin kripto Kontrak yang menggunakan cryptocurrency sebagai margin (seperti kontrak crypto-margined BTC, yang menggunakan BTC sebagai margin, dan pulangan juga BTC), pulangan mereka juga cryptocurrency. Biasanya, mata wang sebut harga pasangan perdagangan kontrak crypto-margined dinyatakan dalam USD (tidak perlu masuk mendalam, kebanyakan platform menggunakannya untuk menyatakan). Jadi pasangan perdagangan adalah BTC_USD, dan kontrak adalah kontrak suku tahunan.BTC crypto-margined quarterly contractpasaran. Di Platform Dagangan Kuantum FMZ,exchange.SetCurrency("BTC_USD")menetapkan pasangan dagangan, dan kemudianexchange.SetContractType("quarter")menetapkan kontrak suku. Dengan cara ini simbol perdagangan semasa adalahBTC crypto-margined quarterly contract.

      • Kontrak dengan margin USDT Kontrak yang menggunakan USDT sebagai margin (seperti kontrak perpetual bermargin BTC USDT, yang menggunakan USDT sebagai margin, dan pulangan juga USDT), pulangan mereka juga USDT. Biasanya, mata wang sebut harga pasangan dagangan kontrak bermargin USDT dinyatakan dalam USDT. Oleh itu, pasangan dagangan adalah BTC_USDT, dan kontrak adalah kontrak perpetual.BTC USDT-margined perpetual contractpasaran. Di Platform Dagangan Kuantum FMZ,exchange.SetCurrency("BTC_USDT")menetapkan pasangan dagangan, dan kemudianexchange.SetContractType("swap")menetapkan kontrak kekal. Dengan cara ini, simbol perdagangan semasa adalahBTC USDT-margined perpetual contract.

    • Perintah Apa maksud perintah itu? Perintah adalah tiket pesanan yang kita hantar ke platform apabila kita membeli atau menjual di platform. Perintah dibahagikan kepada pesanan pasaran, pesanan had, pesanan bersyarat, dan lain-lain. Atribut yang paling asas untuk pesanan ialah: subjek pesanan (secara ringkas, apa yang harus dibeli atau dijual), jumlah pesanan (berapa banyak untuk membeli atau menjual), dan harga pesanan (pada harga apa untuk membeli atau menjual). Jika pesanan seterusnya tidak penting berapa banyak, ia hanya menentukan jumlah untuk membeli atau menjual dan apa yang harus dibeli atau dijual, maka pesanan sedemikian dipanggil pesanan pasaran. Sudah tentu, terdapat juga pesanan bersyarat (perintah berhenti kerugian, pesanan aisberg, dan lain-lain), yang berkaitan dengan platform. Sesetengah platform menyediakan pesanan bersyarat, dan beberapa tidak. Untuk butiran, anda boleh menyemak dokumentasi API FMZ.

      • Spot Perintah spot dan pesanan pasaran biasanya perlu memberi perhatian untuk membeli pesanan. Jumlah pesanan pesanan pasaran spot bukan jumlah simbol mata wang tetapi jumlah wang. Kerana pesanan pasaran tidak menentukan harga, hanya jumlah wang yang boleh digunakan untuk menentukan berapa banyak untuk membeli. Jumlah pesanan pasaran jual adalah jumlah simbol mata wang, kerana walaupun harga tidak pasti, jumlah simbol mata wang yang dijual dapat ditentukan.

      • Kontrak Jumlah pesanan kontrak adalah istimewa, biasanya jumlah kontrak. Antara muka pesanan kontrak platform pada dasarnya adalah jumlah kontrak, dan tidak ada antara muka yang mengambil jumlah simbol mata wang sebagai jumlah pesanan. Kontrak kekal BTC yang digariskan oleh Binance USDT boleh memesan kontrak kekal BTC dalam jumlah 0.01, tetapi bukan jumlah simbol mata wang, tetapi jumlah kontrak, kecuali satu kontrak kebetulan menjadi satu BTC. Secara amnya,tidak kira sama ada pesanan pasaran atau pesanan had, jumlah pesanan adalah nombor jumlah kontrak.

      • Perintah Pengambil & Perintah Pembuat Taker order adalah order yang menyediakan kecairan. Sederhananya, ia bermakna harga pasaran semasa adalah 10 untuk membeli satu dan 11 untuk menjual satu. Pada masa ini, saya menunggu pesanan beli dengan harga beli 9, atau pesanan jual dengan harga jual 12. Kemudian, saya menyediakan pesanan untuk kedalaman di pasaran. Perintah saya ini adalah pembuat.

        Sebagai contoh, fungsi meletakkan pesananexchange.Selldanexchange.BuyApabila meletakkan pesanan, sama ada pesanan diklasifikasikan sebagai penerima atau pembuat bergantung kepada harga pesanan dan pasaran semasa, dan sama ada pesanan memberikan kecairan atau mengurangkan kecairan. Apabila mengimport harga -1 pada FMZ Quant, ia adalah untuk meletakkan pesanan pasaran. Perhatikan bahawa jumlah pesanan pesanan beli pasaran spot adalah jumlah wang, maka pesanan pasaran pasti mengurangkan kecairan, dan ia mesti menjadi pesanan mengambil.

      • Perintah bersyarat platform Banyak platform juga menyokong perintah bersyarat, sepertiiceberg order, stop loss order, stop profit order, post_only: only place maker order, fok: all executed or canceled immediately, ioc: executed immediately or cancel the rest, dan sebagainya. Perintah ini boleh menggunakanexchange.IOfungsi pada FMZ Quant untuk mengakses antara muka pesanan platform secara langsung untuk menentukan parameter yang akan ditetapkan (tentukan perintah bersyarat yang akan diletakkan) untuk meletakkan pesanan.exchange.IOfungsi, sila rujuk dokumentasi FMZ API:https://www.fmz.com/api#exchange.io...

  • Platform Dagangan Kuantitatif

    Platform perdagangan kuantitatif boleh dianggap sebagai alat perdagangan kuantitatif, ia mungkin sistem perisian dalam talian, laman web, atau program pelaksanaan tempatan, atau bahkan projek sumber terbuka di GITHUB.

    • Platform Perdagangan Kuantum FMZ Platform Perdagangan Kuantum FMZ adalah sistem diedarkan dalam talian; untuk kenalan dengan platform dan tutorial, anda boleh merujuk kepada:https://www.fmz.com/bbs-topic/4145

    • Sistem Backtest Platform Dagangan Kuantum FMZ Apakah sistem backtest? Secara ringkasnya, sistem backtest adalah untuk memutar semula data sejarah simbol perdagangan tertentu, dan membiarkan strategi tertentu dimasukkan ke dalam pemutaran semula, dan mendapatkan prestasi perdagangan strategi ketika mensimulasikan pemutaran semula data sejarah.

      FMZ Quant Trading Backtest System:

      Nama Jenis Petua
      Bitfinex objek pertukaran spot menyokong pasangan dagangan terhad, seperti: BTC_USD, ETH_USD dan LTC_USD, dan lain-lain (perhatikan mata wang sebut harga pasangan dagangan adalah dolar AS)
      Binance objek pertukaran spot menyokong pasangan dagangan terhad, seperti: BTC_USDT, ETH_USDT, ETH_BTC dan LTC_BTC, dll.
      OKEX objek pertukaran spot menyokong pasangan dagangan terhad, seperti: BTC_USDT, ETH_USDT, ETH_BTC dan LTC_BTC, dll.
      Huobi objek pertukaran spot menyokong pasangan dagangan terhad, seperti: BTC_USDT, ETH_USDT, ETH_BTC dan LTC_BTC, dll.
      OKEX Futures Objek pertukaran niaga hadapan menyokong pasangan dagangan terhad, seperti: BTC_USD dan ETH_USD, dan lain-lain; mata wang sebut harga pasangan dagangan adalah USD; selepas menetapkan kod kontrak tertentu (sila rujuk fungsi exchange.SetContractType), kontrak adalah kontrak margin crypto; kod kontrak yang disokong termasuk: this_week, next_week, suku dan swap
      HuobiDM Objek pertukaran niaga hadapan HuobiDM adalah Huobi Futures (Huobi Contract), menyokong pasangan dagangan terhad, seperti: BTC_USD dan ETH_USD, dll.; mata wang sebut harga pasangan dagangan adalah USD; selepas menetapkan kod kontrak tertentu (sila rujuk fungsi exchange.SetContractType), kontrak adalah kontrak margin crypto; kod kontrak yang disokong termasuk: this_week, next_week, suku dan swap.
      BitMEX Objek pertukaran niaga hadapan Pasangan dagangan adalah XBT_USD; selepas menetapkan kod kontrak tertentu (sila rujuk fungsi exchange.SetContractType), kontrak adalah kontrak dengan margin crypto; kod kontrak yang disokong adalah: XBTUSD
      Binance Futures Objek pertukaran niaga hadapan menyokong pasangan dagangan terhad, seperti: BTC_USDT dan ETH_USDT, dan lain-lain; mata wang sebut harga pasangan dagangan adalah USD; selepas menetapkan kod kontrak tertentu (sila rujuk fungsi exchange.SetContractType), kontrak adalah kontrak dengan margin USDT; kod kontrak yang disokong adalah swap
      Pilihan Derbit Objek pertukaran niaga hadapan Pasangan dagangan adalah: BTC_USD dan ETH_USD; selepas menetapkan kod kontrak tertentu (sila rujuk fungsi pertukaran.SetContractType), kontrak adalah kontrak dengan margin crypto; kod kontrak opsyen tertentu perlu ditetapkan
    • API KEY perdagangan kuantitatif Semua platform mempunyai antara muka API, dan platform perdagangan kuantitatif juga mempunyai antara muka API.extended API. Beberapa fungsi platform FMZ boleh dikendalikan secara programatik. Sebagai contoh, menambah bot dalam batch, memulakan bot dalam batch, mengubah suai konfigurasi bot dalam batch, dan lain-lain. Untuk butiran, sila rujuk:https://www.fmz.com/api#fmz平台扩展api. API dilanjutkan juga boleh digunakan untuk melakukan sesuatu yang menarik, sebagai contohGunakan API yang diperluaskan di FMZ Quant untuk merealisasikan TradingView Perdagangan Isyarat Isyarat

  • Skrip Perdagangan yang Diprogram

    Apa sebenarnya yang secara automatik mengawal akaun platform saya untuk berdagang? Itulah perwujudan khusus perdagangan program dan perdagangan kuantitatif - skrip perdagangan terprogram. Program masa nyata ini boleh ditulis dalam pelbagai bahasa. Sebagai contoh, FMZ Quant Trading Platform menyokong menulis strategi perdagangan masa nyata dalam bahasa JavaScript, Python, dan C ++. Program skrip ini menjalankan pelbagai operasi seperti membeli dan menjual akaun melalui antara muka API platform.

    • Peranti di mana skrip perdagangan yang diprogramkan dijalankan Program skrip bot mesti mempunyai pembawa peranti (singkatnya, bot mesti mempunyai tempat untuk dijalankan). Perdagangan kuantitatif dalam bulatan cryptocurrency biasanya menggunakan program bot ke pelayan Alibaba Cloud di Hong Kong (tentu saja, anda juga boleh menggunakan pelayan dari tempat lain, pengendali lain).timeoutakan dilaporkan. Di FMZ Quant, anda biasanya boleh menggunakan program perisian anda sendiri di pelayan Alibaba Cloud di Hong Kong (perisian pembawa bot FMZ Quant dipanggil Docker, dan bot perdagangan kuantitatif dijalankan berdasarkan perisian docker).

      • Sistem peranti Pelbagai sistem operasi, seperti windows / Linux / MAX OS / ARM Linux, dan lain-lain, dipilih mengikut skrip bot. Dalam FMZ Quant, pelayan sistem Linux biasa digunakan. Penggunaan sistem Linux sebenarnya tidak rumit. Untuk penggunaan yang mudah, anda hanya perlu menguasai beberapa perintah. Ini dijelaskan dalam tutorial di FMZ.
    • Pilihan bahasa skrip Terdapat begitu banyak bahasa pengaturcaraan, dan pada dasarnya semua boleh digunakan untuk menulis program skrip bot. Di sini kita juga akan mengambil FMZ Quant Trading Platform sebagai contoh untuk membuat anda memahami kelebihan pelbagai bahasa.

      • JavaScript Ia adalah mudah dan mudah digunakan, hampir tanpa bergantung pada persekitaran peranti, dan menyokong standard ES6. Kelajuan pelaksanaan program strategi hanya selepas strategi C ++.

      • Python Python bergantung kepada persekitaran peranti ke tahap tertentu, dan pelbagai perpustakaan boleh dipasang, jadi kebolehluasanannya kuat. (disyorkan untuk pelajar yang biasa dengan platform FMZ dan biasa dengan Python).

      • C++ Strategi C ++ mempunyai kelajuan pelaksanaan yang paling cepat, kecekapan tertinggi, dan juga lebih sukar digunakan. Selepas anda menguasai bahasa, anda akan mengetahui yang lainso easy!

      • Bahasa Mylanguage Mylanguage yang disokong oleh FMZ hanya untuk arahan yang paling asas.

        • Mylanguage boleh digunakan untuk menulis beberapa strategi trend
        • Apabila isyarat dagangan muncul dalam Mylanguage, dan perintah dagangan dilaksanakan, ia hanya boleh meletakkan pesanan pengambil, dan tidak menyokong pesanan pembuat.
        • Mylanguage sesuai untuk strategi membuat pesanan dengan satu objek pertukaran (hanya satu objek pertukaran yang boleh dikawal; walaupun FMZs Mylanguage menyokong porting kod JS, ia agak sukar untuk pemula, jadi ia tidak akan dikaji sementara).
        • Mylanguage hanya sesuai untuk strategi simbol tunggal, dan disyorkan untuk menggunakan JavaScript, Python, dan C ++ untuk reka bentuk strategi pelbagai simbol.
        • Maklumat berkaitan penggunaan bahasa Melayu di FMZ:https://www.fmz.com/digest-topic/5789 https://www.fmz.com/digest-topic/5768
      • Modul Visualisasi Strategi Gabungan Membuat strategi dengan cara visual hanya untuk kepentingan, peningkatan dan pemahaman tentang logik program. Ia boleh digunakan untuk membuat beberapa logik mudah, tetapi tidak sesuai untuk merancang strategi yang agak rumit, kerana sukar untuk mengekalkan dan memperluaskan, dan lebih sukar untuk merancang logik yang kompleks.


Lebih lanjut