Bekerja dengan berkas di cTrader
Dalam artikel ini dan video terkaitnya, kami akan menjelaskan cara Anda dapat bekerja dengan berkas di cTrader. Rata-rata, pengguna khawatir menjalankan cBot atau indikator yang meminta hak akses penuh ke perangkat mereka. Terutama ketika tidak ada kode sumber yang tersedia, sulit untuk mengetahui apa yang dilakukan algoritma dengan izin ini. Untungnya, cTrader menyediakan beberapa metode yang memungkinkan algo untuk mengakses berkas di mesin lokal mereka tanpa memerlukan izin tingkat tinggi.
Menulis ke direktori algo
cTrader memungkinkan semua algo untuk mengakses folder dengan alamat ini:
C:/Users/{username}/Documents/cAlgo/Data/{algoType}
, di mana algoType adalah cBots atau Indicators.
Kami akan membuat contoh cBot dan menunjukkan cara Anda dapat mengakses direktori ini secara terprogram.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Seperti biasa, kami menyimpan dan membangun cBot, lalu membuat instansnya.
Setelah instans dimulai, kita dapat menavigasi ke folder yang ditentukan di atas. Di dalamnya, kita seharusnya melihat berkas Hello World.txt yang berisi teks yang kita tentukan dalam kode kita.
Membaca dari direktori algo
Langkah selanjutnya adalah membaca isi berkas yang terletak di direktori algo. Untuk melakukannya, kita dapat menulis ulang metode OnStart() kita sebagai berikut.
1 2 3 4 | |
Setelah kita membangun dan meluncurkan cBot kita, kita akan melihat bahwa algo mencetak string dari berkas ke log cTrader.
Mengakses direktori lain
Perhatikan bahwa tidak ada operasi yang dilakukan cBot kita sebelumnya yang memerlukan pemberian hak akses tingkat tinggi. Sebenarnya, hak akses secara eksplisit diatur ke None pada tingkat kelas.
Kita akan mencoba menulis ke berkas yang terletak di direktori yang berbeda dan melihat apa yang terjadi. Kita akan memodifikasi kode kita untuk menulis ke berkas yang terletak di direktori Documents root.
1 2 3 4 | |
Setelah kita membangun dan menjalankan cBot lagi, kita akan melihat pengecualian dilemparkan dalam log yang menunjukkan bahwa kita tidak diizinkan untuk menulis di direktori tertentu ini.
Untuk menyelesaikan ini, kita dapat kembali ke kode cBot dan mengubah hak aksesnya sebagai berikut.
1 | |
Kita membangun dan menjalankan cBot. Alih-alih melemparkan pengecualian, bot sekarang akan mengakses direktori yang ditentukan dan menulis ke berkas yang benar.
Untuk satu demonstrasi lagi tentang cara kerja hak akses, kita akan memodifikasi metode OnStart() sebagai berikut.
1 2 3 4 | |
Kita juga akan mengatur hak akses kembali ke None.
1 | |
Setelah cBot mulai berjalan, kita akan melihat bahwa ia gagal membaca dari berkas.