cTrader'da dosyalarla çalışma
Bu makalede ve ilgili videosunda, cTrader'da dosyalarla nasıl çalışabileceğinizi açıklayacağız. Ortalama olarak, kullanıcılar cihazlarına tam erişim hakkı talep eden cBot'ları veya göstergeleri başlatmaktan endişe duyarlar. Özellikle kaynak kodu mevcut olmadığında, algoritmanın bu izinlerle ne yaptığını bilmek zordur. Neyse ki cTrader, algoritmaların yükseltilmiş izinlere ihtiyaç duymadan yerel makinelerindeki dosyalara erişmesine olanak tanıyan çeşitli yöntemler sunar.
Algoritma dizinine yazma
cTrader, tüm algoritmaların şu adresteki bir klasöre erişmesine izin verir:
C:/Users/{username}/Documents/cAlgo/Data/{algoType}
, burada algoType, cBots veya Indicators'tır.
Örnek bir cBot oluşturacak ve bu dizine programlı olarak nasıl erişebileceğinizi göstereceğiz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Her zamanki gibi cBot'u kaydeder ve derler, ardından örneğini oluştururuz.
Örnek başladıktan sonra, yukarıda tanımlanan klasöre gidebiliriz. İçinde, kodumuzda belirttiğimiz metni içeren Hello World.txt dosyasını görmeliyiz.
Algoritma dizininden okuma
Bir sonraki adım, algoritma dizininde bulunan bir dosyanın içeriğini okumaktır. Bunu yapmak için OnStart() yöntemimizi aşağıdaki gibi yeniden yazabiliriz.
1 2 3 4 | |
cBot'umuzu derleyip başlattıktan sonra, algoritmanın dosyadaki dizeyi cTrader günlüğüne yazdırdığını göreceğiz.
Diğer dizinlere erişim
cBot'umuzun daha önce gerçekleştirdiği işlemlerin hiçbirinin yükseltilmiş erişim hakları sağlamayı gerektirmediğini unutmayın. Aslında, erişim hakları sınıf düzeyinde açıkça None olarak ayarlanmıştı.
Farklı bir dizinde bulunan bir dosyaya yazmaya çalışacak ve ne olacağını göreceğiz. Kodumuzu, kök Documents dizininde bulunan bir dosyaya yazacak şekilde değiştireceğiz.
1 2 3 4 | |
cBot'u tekrar derleyip çalıştırdığımızda, bu belirli dizine yazma yetkimiz olmadığını belirten bir istisnanın günlüğe atıldığını göreceğiz.
Bunu çözmek için cBot koduna geri dönebilir ve erişim haklarını aşağıdaki gibi değiştirebiliriz.
1 | |
cBot'u derler ve çalıştırırız. Bir istisna atmak yerine, bot şimdi belirtilen dizine erişecek ve doğru dosyaya yazacaktır.
Erişim haklarının nasıl çalıştığına dair bir gösterim daha için OnStart() yöntemini aşağıdaki gibi değiştireceğiz.
1 2 3 4 | |
Erişim haklarını tekrar None olarak ayarlayacağız.
1 | |
cBot çalışmaya başladıktan sonra, dosyadan okuyamadığını göreceğiz.