Bekerja dengan fail dalam cTrader
Dalam artikel ini dan video yang berkaitan, kami akan menerangkan cara anda boleh bekerja dengan fail dalam cTrader. Secara purata, pengguna bimbang tentang pelancaran cBot atau indikator yang meminta hak akses penuh kepada peranti mereka. Terutamanya apabila tiada kod sumber tersedia, sukar untuk mengetahui apa yang dilakukan oleh algoritma dengan kebenaran ini. Nasib baik, cTrader menyediakan beberapa kaedah yang membolehkan algo mengakses fail pada mesin tempatan tanpa memerlukan kebenaran yang lebih tinggi.
Tulis ke direktori algo
cTrader membenarkan semua algo mengakses folder dengan alamat ini:
C:/Users/{username}/Documents/cAlgo/Data/{algoType}
, di mana algoType ialah cBots atau Indicators.
Kami akan mencipta contoh cBot dan menunjukkan cara anda boleh mengakses direktori ini secara programatik.
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 membina cBot, kemudian mencipta contohnya.
Selepas contoh bermula, kita boleh menavigasi ke folder yang ditakrifkan di atas. Di dalamnya, kita sepatutnya melihat fail Hello World.txt yang mengandungi teks yang kita nyatakan dalam kod kita.
Baca dari direktori algo
Langkah seterusnya ialah membaca kandungan fail yang terletak dalam direktori algo. Untuk berbuat demikian, kita boleh menulis semula kaedah OnStart() kita seperti berikut.
1 2 3 4 | |
Selepas kita membina dan melancarkan cBot kita, kita akan melihat bahawa algo mencetak rentetan dari fail ke log cTrader.
Akses direktori lain
Perhatikan bahawa tiada satu pun operasi yang dilakukan oleh cBot kita sebelum ini memerlukan pemberian hak akses yang lebih tinggi. Malah, hak akses telah ditetapkan secara eksplisit kepada None pada tahap kelas.
Kita akan cuba menulis ke fail yang terletak dalam direktori yang berbeza dan melihat apa yang berlaku. Kita akan mengubah suai kod kita untuk menulis ke fail yang terletak dalam direktori Documents akar.
1 2 3 4 | |
Sebaik sahaja kita membina dan menjalankan cBot sekali lagi, kita akan melihat pengecualian dilemparkan dalam log yang menunjukkan bahawa kita tidak dibenarkan untuk menulis dalam direktori tertentu ini.
Untuk menyelesaikannya, kita boleh kembali ke kod cBot dan menukar hak aksesnya seperti berikut.
1 | |
Kita membina dan menjalankan cBot. Bukannya melontarkan pengecualian, bot kini akan mengakses direktori yang dinyatakan dan menulis ke fail yang betul.
Untuk satu lagi demonstrasi tentang cara hak akses berfungsi, kita akan mengubah suai kaedah OnStart() seperti berikut.
1 2 3 4 | |
Kita juga akan menetapkan hak akses kembali kepada None.
1 | |
Selepas cBot mula berjalan, kita akan melihat bahawa ia gagal membaca dari fail.