Oleh kerana C# adalah bahasa yang ditaip dengan kuat, adalah perlu untuk menentukan jenis data semasa mengisytiharkan pemboleh ubah dan sifat kelas dalam cBot, indikator, dan plugin. Sebaliknya, Python ditaip secara dinamik, jadi jenis pemboleh ubah disimpulkan secara automatik. Walau bagaimanapun, semasa membangunkan cBot menggunakan API cTrader, jenis konseptual yang sama dikekalkan untuk konsistensi antara kedua-dua bahasa.
API cTrader Algo tidak membenarkan semua jenis data digunakan sebagai parameter yang boleh disesuaikan, dan ini adalah sebab mengapa penting untuk pembangun algoritma memahami dan mengemudi antara jenis yang disokong dengan teliti.
Nota
Python cBot, indikator dan plugin menggunakan parameter yang boleh disesuaikan yang diisytiharkan dalam fail .cs mereka.
Kes penggunaan parameter dan UI
cTrader hanya menyokong jenis parameter ini dengan kes penggunaan utama dan elemen UI berkaitan yang ditunjukkan dalam jadual di bawah.
C#
Python
Kes penggunaan
Elemen UI
int
int
Volum pesanan, bilangan bar, bilangan tempoh, dll.
Medan input nombor (dengan stepper)
double
float
Nilai harga, volum pesanan, dll.
Medan input nombor (dengan stepper)
string
str
Mesej tersuai, label kedudukan, dll.
Medan input teks
bool
bool
Mekanisme perlindungan, membenarkan dagangan, membenarkan e-mel, dll.
Senarai jatuh bawah ya/tidak
DataSeries
api.DataSeries
Sumber harga pasaran, dll.
Senarai jatuh bawah
TimeFrame
api.TimeFrame
Tempoh masa yang dipilih, dll.
Pemilih tempoh
enum
Enum
Penjajaran lukisan carta, tahap risiko individu, dll.
Senarai jatuh bawah
Color
Color
Lukisan carta, warna alat analisis teknikal, elemen tersuai, dll.
Pemilih warna
DateTime
DateTime
Mendapatkan tarikh dan masa yang ditaip dengan kuat dalam zon masa algo
Pemilih tarikh dan masa
DateOnly
DateOnly
Mendapatkan tarikh yang ditaip dengan kuat
Pemilih tarikh
TimeSpan
TimeSpan
Mendapatkan selang masa atau masa hari yang ditaip dengan kuat
Pemilih masa
Symbol
Symbol
Mendapatkan simbol tunggal yang ditaip dengan kuat
Pemilih simbol
Symbol[]
Symbol[]
Mendapatkan pelbagai simbol yang ditaip dengan kuat dalam tatasusunan
Pemilih pelbagai simbol
Enum[]
Enum[]
Mendapatkan pelbagai nilai jenis Enum yang ditaip dengan kuat dalam tatasusunan
Pemilih nilai pelbagai enum
TimeFrame[]
TimeFrame[]
Mendapatkan pelbagai nilai TimeFrame yang ditaip dengan kuat dalam tatasusunan
Pemilih pelbagai tempoh
Amaran
Anda mungkin tidak dapat menggunakan beberapa jenis parameter di atas jika anda menggunakan versi cTrader atau API Algo yang lebih lama.
Sebagai contoh, UI cTrader mencerminkan jenis bool, double, int C# dan jenis bool, float, int Python seperti berikut.
Tiga contoh seterusnya menunjukkan jenis data DataSeries, enum tersuai, string C# dan api.DataSeries, Enum, str Python (yang mana kami juga menyediakan kod lengkap dalam panduan ini).
Seperti yang ditunjukkan di bawah, jenis parameter Color C# dan Color Python diwakili oleh pemilih warna.
Akhir sekali, UI jenis data TimeFrame C# dan api.TimeFrame Python mencerminkan pilihan tempoh yang tersedia dalam carta dagangan dalam aplikasi Trade.
Contoh cBot
Label kedudukan adalah parameter string C# dan str Python dalam cBot berikut.
Dalam contoh di bawah, jenis data double C# dan float Python berfungsi sebagai parameter untuk memasukkan volum pesanan dalam lot. cBot melaksanakan pesanan beli pasaran selepas 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];}}}
Terdapat indikator yang menyeronokkan (ujian buta warna) yang menawarkan pilihan penglihatan warna enum (contohnya, normal, buta warna, dan skala kelabu) untuk pengguna menentukan warna garis mendatar yang dilukis pada carta.
Kesimpulannya, dengan memilih jenis data yang betul untuk pemboleh ubah dan sifat kelas yang diisytiharkan, anda akan dapat membuat cBot dan indikator yang boleh mengendalikan tugas yang bukan standard.