Dosya işlemleri
Platform kullanıcıları, AccessRights.FullAccess ile cBot'ları ve göstergeleri başlatma konusunda haklı endişeler dile getirmektedir. Bu durum, özellikle kaynak kodu mevcut olmadığında, algoritmanın dosya sistemine hangi değişiklikleri getireceğini kesin olarak bilmek zor olduğunda geçerlidir. Erişim hakları kılavuzunda, başkalarıyla paylaştığınız cBot'ların ve göstergelerin AccessRights.None alması gerektiğini zaten tavsiye etmiştik.
Bu API kılavuzu, sınırlı AccessRights'a sahip algoritmaların yerel dosyalarla işlemleri güvenli bir şekilde nasıl gerçekleştirebileceğini açıklar.
Bir dakikada dosya işlemleri!
- Dosya işlemleri özelliği, kısıtlı erişim haklarına sahip algoritmaların yalnızca belirlenmiş bir klasörün içindeki dosyalar ve klasörlerle çalışmasına izin verir.
- Klasör adı, cBot veya gösterge adıyla eşleşir.
- Kullanıcının dosya sistemindeki diğer tüm dizinler, yetkisiz erişime karşı güvenli bir şekilde korunur.
- API'de, dosya işlemleri özelliği yalnızca .NET 6.0 algoritmaları için desteklenir.
Dosya işlemleri kuralları
Kısıtlı erişim haklarına sahip herhangi bir algoritmanın, dosya işlemlerini yalnızca kullanıcının dosya sistemindeki belirlenmiş bir klasörde gerçekleştirmesine izin verilir. Her algoritma türü, aşağıda gösterildiği gibi (cBot'lar ve göstergeler gibi) kendi klasörünü bulur ve her algoritma adı için ayrı bir klasör oluşturulur.
Documents
|-cAlgo
|-Data
|-cBots
|-${cBot Name}
|-Indicators
|-${Indicator Name}
Not
Dosya işlemleri özelliği yalnızca .NET 6.0 algoritmaları için mevcuttur.
Aşağıdaki kurallar, dosya işlemleri özelliğinin API'de nasıl çalıştığını belirler:
1. Her algoritma, yalnızca kendi adına karşılık gelen klasöre (varsa alt klasörler dahil) erişebilir.
2. Karşılık gelen bir klasör yoksa, bir örnek ilk kez başlatıldığında yukarıdaki şemaya göre dosya sisteminde böyle bir klasör oluşturulur.
3. Yeni bir klasör oluşturulamazsa, cBot veya gösterge başlamaz ve bir hata bildirilir.
4. Algoritma kodunda, karşılık gelen klasöre tam yolu belirtmenize gerek yoktur. Bunun yerine, algoritmalar göreceli bir yol kullanır.
5. System.IO ad alanı, çeşitli sınıflar (File, FileInfo, Directory. DirectoryInfo, Path, vb.) dosyalar ve klasörlerle işlemleri yürütmek için ilgili yöntemler çağrılabilir.
Aşağıda, File ve Directory sınıflarında yer alan yöntemlere bazı örnekler verilmiştir.
| Yöntem | Açıklama |
|---|---|
File.Create() | Belirlenen dizinde bir dosya oluşturur veya üzerine yazar. |
File.WriteAllText() | Yeni bir dosya oluşturur, belirtilen dizeyi dosyaya yazar ve dosyayı kapatır. |
File.Copy() | Mevcut dosyayı yeni bir dosyaya kopyalar. Aynı ada sahip bir dosyanın üzerine yazılmasına izin verilmez. |
File.Delete() | Belirlenen dizindeki bir dosyayı siler. |
Directory.CreateDirectory() | Bir klasör veya alt klasör oluşturur. |
Directory.Delete() | Bir klasör veya alt klasörü siler. |
Directory.Exists() | Belirtilen dizinin var olup olmadığını kontrol eder. |
Directory.Move() | Mevcut dizini yeni belirtilen bir dizine taşır. |
Kullanım durumu
TakeChartshot() yöntemini çağırırken, File.WriteAllBytes sonrasında hedef dizinin tam yolunu belirtmenize gerek yoktur. Dosya işlemleri özelliği sayesinde, erişim hakları AccessRights.None olsa bile chartshot ilgili algoritma dizinine kaydedilecektir.
Bir cBot örneği oluşturun
Aşağıdaki cBot örneği AccessRights.None erişim haklarına sahiptir, ancak başlatılmasından hemen sonra "File Access Test" adında ilgili klasöre bir metin dosyası oluşturur. Başarılı bir piyasa emri OnStart() içinde yerleştirilirse, cBot oluşturulan dosyaya bir pozisyon kimliği yazar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | |
Dosya parametresi
File parametre türü, algoritmaların API aracılığıyla kullanıcılardan dosya girdilerini kabul etmesini sağlar. Algoritmaların yerel makinede kullanıcı tarafından seçilen bir dosyadan güvenli bir şekilde okumasını ve dosyaya yazmasını sağlar.
Bir algoritmada tanımlandığında:
- cTrader kullanıcı arayüzünde, parametre, bir dosya seçim iletişim kutusunu açan bir Göz At düğmesiyle birlikte bir metin alanı olarak görüntülenir.
- cTrader CLI'da, kullanıcılar bir dosya yolunu doğrudan parametre değeri olarak geçirebilir.
- Algoritma, yerleşik okuma ve yazma yöntemlerine sahip, güçlü türde bir
Filenesnesi alır.
Not
Dosya erişimi, kullanıcı tarafından açıkça sağlanan dosyayla sınırlıdır ve yerel dosya sistemine sınırsız erişim sağlamaz.
File parametre türü, algoritmalarda aşağıdakileri yapmak için kullanılabilir:
| İşlem | Örnekler |
|---|---|
| Harici veri girişi | CSV veya metin dosyalarını okuyun, özel veri kümelerini yükleyin. |
| Kalıcı çıktı | Günlükleri bir dosyaya yazın, sonuçları dışa aktarın. |
| Yapılandırma yönetimi | Harici yapılandırma dosyalarını yükleyin, büyük parametre kümelerini koruyun. |
Bir dosya parametresi tanımlamak için, File türünde bir özellik bildirin ve bunu [Parameter] özniteliğiyle işaretleyin.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
DefaultValue, parametreyi bir dosya yoluyla önceden doldurmak için kullanılabilir ve File türü, dosya içeriğiyle etkileşim için bir dizi üst düzey yöntem sunar. Dosyanın tamamını metin olarak veya ayrı ayrı satırlar halinde okuyabilirsiniz.
1 2 | |
Yazma işlemleri mevcut dosya içeriğinin üzerine yazar.
1 | |
Mevcut içeriğin üzerine yazmadan metin veya birden çok satır ekleyebilirsiniz.
1 2 | |
İşlemleri gerçekleştirmeden önce, dosyanın var olup olmadığını doğrulayabilirsiniz.
1 2 3 4 | |
Özet
API'deki dosya işlemleri özelliği, kısıtlı erişim haklarına sahip algoritmaların bile yerel dosyalar ve klasörlerle çalışmasını sağlar. C#'ın System.IO ad alanındaki yöntemleri, algoritmaların ilgili klasörün sınırları içinde bu tür işlemleri nasıl gerçekleştireceğini programlamak için kullanabilirsiniz. Böylece, algoritma kaynak kodu mevcut olmasa bile kullanıcının dosya sistemindeki diğer dizinler tamamen korunmuş kalır.

