Karena C# adalah bahasa yang strongly typed, perlu untuk menentukan tipe data saat mendeklarasikan variabel dan properti kelas dalam cBot, indikator, dan plugin. Sebaliknya, Python adalah dynamically typed, sehingga tipe variabel disimpulkan secara otomatis. Namun, saat mengembangkan cBot menggunakan API cTrader, tipe konseptual yang sama dipertahankan untuk konsistensi antara kedua bahasa.
API cTrader Algo tidak mengizinkan semua tipe data untuk digunakan sebagai parameter yang dapat disesuaikan, dan inilah mengapa penting bagi pengembang algoritma untuk memahami dan menavigasi tipe yang didukung dengan hati-hati.
Catatan
cBot, indikator, dan plugin Python menggunakan parameter yang dapat disesuaikan yang dideklarasikan dalam file .cs mereka.
Kasus penggunaan parameter dan UI
cTrader hanya mendukung tipe parameter ini dengan kasus penggunaan utama dan elemen UI terkait yang tercermin dalam tabel di bawah ini.
Perataan gambar grafik, tingkat risiko individual, dll.
Daftar dropdown
Color
Color
Gambar grafik, warna alat analisis teknikal, elemen kustom, dll.
Pemilih warna
DateTime
DateTime
Mendapatkan tanggal dan waktu yang strongly typed dalam zona waktu algo
Pemilih tanggal dan waktu
DateOnly
DateOnly
Mendapatkan tanggal yang strongly typed
Pemilih tanggal
TimeSpan
TimeSpan
Mendapatkan interval waktu atau waktu hari yang strongly typed
Pemilih waktu
Symbol
Symbol
Mendapatkan simbol tunggal yang strongly typed
Pemilih simbol
Symbol[]
Symbol[]
Mendapatkan beberapa simbol yang strongly typed dalam array
Pemilih multi-simbol
Enum[]
Enum[]
Mendapatkan beberapa nilai tipe Enum yang strongly typed dalam array
Pemilih nilai multi-enum
TimeFrame[]
TimeFrame[]
Mendapatkan beberapa nilai TimeFrame yang strongly typed dalam array
Pemilih multi-periode
Peringatan
Anda mungkin tidak dapat menggunakan beberapa tipe parameter di atas jika Anda menggunakan versi cTrader atau Algo API yang lebih lama.
Misalnya, UI cTrader mencerminkan tipe bool, double, int C# dan tipe bool, float, int Python sebagai berikut.
Tiga contoh berikutnya menunjukkan tipe data DataSeries, enum kustom, string C# dan api.DataSeries, Enum, str Python (yang juga kami sediakan kode lengkapnya dalam panduan ini).
Seperti yang ditunjukkan di bawah, tipe parameter Color C# dan Color Python direpresentasikan oleh pemilih warna.
Akhirnya, UI dari tipe data TimeFrame C# dan api.TimeFrame Python mencerminkan opsi periode yang tersedia dalam grafik trading di dalam aplikasi Trade.
Contoh cBot
Label posisi adalah parameter string C# dan str Python dalam cBot berikut.
Dalam contoh di bawah ini, tipe data double C# dan float Python berfungsi sebagai parameter untuk memasukkan volume order dalam lot. cBot mengeksekusi order beli market setelah tiga bar merah berturut-turut.
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingcAlgo.API;usingcAlgo.API.Collections;usingcAlgo.API.Indicators;usingcAlgo.API.Internals;namespacecAlgo{[Indicator(AccessRights = AccessRights.None)]publicclassNewIndicator4:Indicator{privateBars_hourlyTimeFrameBars;privateBars_targetTimeFrameBars;[Parameter("Chosen Time Frame")]publicTimeFrameTargetTimeFrame{get;set;}[Output("Main")]publicIndicatorDataSeriesResult{get;set;}protectedoverridevoidInitialize(){_hourlyTimeFrameBars=MarketData.GetBars(TimeFrame.Hour);_targetTimeFrameBars=MarketData.GetBars(TargetTimeFrame);}publicoverridevoidCalculate(intindex){Result[index]=_hourlyTimeFrameBars.HighPrices[index]-_targetTimeFrameBars.HighPrices[index];}}}
Ada indikator yang menyenangkan (tes buta warna) yang menawarkan opsi penglihatan warna enum (misalnya, normal, buta warna, dan skala abu-abu) bagi pengguna untuk menentukan warna garis horizontal yang digambar pada grafik.
Singkatnya, dengan memilih tipe data yang tepat untuk variabel dan properti kelas yang dideklarasikan, Anda akan dapat membuat cBot dan indikator yang dapat menangani bahkan tugas-tugas yang tidak standar.