Operacje na plikach
Użytkownicy platformy wyrażają uzasadnione obawy dotyczące uruchamiania cBotów i wskaźników z AccessRights.FullAccess. Jest to szczególnie prawdziwe, gdy kod źródłowy nie jest dostępny, trudno jest mieć pewność, jakie zmiany zostaną wprowadzone przez algorytm do systemu plików. W przewodniku po prawach dostępu zaleciliśmy już, że cBoty i wskaźniki, którymi dzielisz się z innymi, powinny otrzymać AccessRights.None.
Ten przewodnik API wyjaśnia, jak algorytmy z ograniczonymi AccessRights mogą bezpiecznie przeprowadzać operacje na plikach lokalnych.
Operacje na plikach w jedną minutę!
- Funkcja operacji na plikach umożliwia algorytmom z ograniczonymi prawami dostępu pracę z plikami i folderami tylko wewnątrz wyznaczonego folderu.
- Nazwa folderu odpowiada nazwie cBota lub wskaźnika.
- Wszystkie inne katalogi systemu plików użytkownika pozostają bezpiecznie chronione przed nieautoryzowanym dostępem.
- W API funkcja operacji na plikach jest obsługiwana tylko dla algorytmów .NET 6.0.
Zasady operacji na plikach
Każdy algorytm z ograniczonymi prawami dostępu może wykonywać operacje na plikach tylko w wyznaczonym folderze systemu plików użytkownika. Każdy typ algorytmu lokalizuje swój własny folder, jak pokazano poniżej (taki jak cBoty i wskaźniki), z osobnym folderem utworzonym dla każdej nazwy algorytmu.
Documents
|-cAlgo
|-Data
|-cBots
|-${cBot Name}
|-Indicators
|-${Indicator Name}
Uwaga
Funkcja operacji na plikach jest dostępna tylko dla algorytmów .NET 6.0.
Następujące zasady określają, jak funkcja operacji na plikach działa w API:
1. Każdy algorytm ma dostęp tylko do folderu odpowiadającego jego nazwie (w tym podfolderów, jeśli istnieją).
2. Jeśli nie ma odpowiadającego folderu, taki folder jest tworzony w systemie plików zgodnie z powyższym schematem przy pierwszym uruchomieniu instancji.
3. Jeśli nie można utworzyć nowego folderu, cBot lub wskaźnik nie uruchomi się i zostanie zgłoszony błąd.
4. W kodzie algorytmu nie musisz określać pełnej ścieżki do odpowiadającego folderu. Zamiast tego algorytmy używają ścieżki względnej.
5. Przestrzeń nazw System.IO oferuje różnorodne klasy (File, FileInfo, Directory. DirectoryInfo, Path itp.) dla których można wywołać odpowiednie metody w celu wykonania operacji na plikach i folderach.
Poniżej znajduje się kilka przykładów metod zawartych w klasach File i Directory.
| Metoda | Opis |
|---|---|
File.Create() | Tworzy lub nadpisuje plik w wyznaczonym katalogu. |
File.WriteAllText() | Tworzy nowy plik, zapisuje określony ciąg znaków do pliku i zamyka plik. |
File.Copy() | Kopiuje istniejący plik do nowego pliku. Nadpisywanie pliku o tej samej nazwie nie jest dozwolone. |
File.Delete() | Usuwa plik w wyznaczonym katalogu. |
Directory.CreateDirectory() | Tworzy folder lub podfolder. |
Directory.Delete() | Usuwa folder lub podfolder. |
Directory.Exists() | Sprawdza, czy określony katalog istnieje. |
Directory.Move() | Przenosi istniejący katalog do nowego określonego katalogu. |
Przypadek użycia
Podczas wywoływania metody TakeChartshot() nie musisz określać pełnej ścieżki do katalogu docelowego po File.WriteAllBytes. Dzięki funkcji operacji na plikach chartshot zostanie zapisany w odpowiednim katalogu algorytmu, nawet jeśli prawa dostępu to AccessRights.None.
Utwórz przykład cBota
Poniższy przykład cBota ma AccessRights.None, ale tworzy plik tekstowy w odpowiednim folderze o nazwie „File Access Test" natychmiast po jego inicjalizacji. Jeśli pomyślnie złożono zlecenie rynkowe OnStart(), cBot zapisuje identyfikator pozycji w utworzonym pliku.
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 | |
Parametr pliku
Typ parametru File umożliwia algorytmom przyjmowanie plików wejściowych od użytkowników za pośrednictwem API. Pozwala algorytmom bezpiecznie odczytywać i zapisywać dane w pliku wybranym przez użytkownika na komputerze lokalnym.
Gdy jest zdefiniowany w algorytmie:
- W interfejsie użytkownika cTrader parametr jest wyświetlany jako pole tekstowe z przyciskiem Przeglądaj, który otwiera okno dialogowe wyboru pliku.
- W cTrader CLI użytkownicy mogą przekazać ścieżkę pliku bezpośrednio jako wartość parametru.
- Algorytm otrzymuje silnie typowany obiekt
Filez wbudowanymi metodami odczytu i zapisu.
Uwaga
Dostęp do pliku jest ograniczony do pliku wyraźnie dostarczonego przez użytkownika i nie zapewnia nieograniczonego dostępu do lokalnego systemu plików.
Typ parametru File może być używany do wykonywania następujących operacji w algorytmach:
| Operacja | Przykłady |
|---|---|
| Wprowadzanie danych zewnętrznych | Odczyt plików CSV lub tekstowych, ładowanie niestandardowych zestawów danych. |
| Trwałe dane wyjściowe | Zapisywanie logów do pliku, eksportowanie wyników. |
| Obsługa konfiguracji | Ładowanie zewnętrznych plików konfiguracyjnych, utrzymywanie dużych zestawów parametrów. |
Aby zdefiniować parametr pliku, zadeklaruj właściwość typu File i oznacz ją atrybutem [Parameter].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
DefaultValue może być użyta do wstępnego wypełnienia parametru ścieżką pliku, a typ File udostępnia zestaw metod wysokiego poziomu do interakcji z zawartością pliku. Możesz odczytać cały plik jako tekst lub jako poszczególne wiersze.
1 2 | |
Operacje zapisu nadpisują istniejącą zawartość pliku.
1 | |
Możesz dołączać tekst lub wiele wierszy bez nadpisywania istniejącej zawartości.
1 2 | |
Przed wykonaniem operacji możesz sprawdzić, czy plik istnieje.
1 2 3 4 | |
Podsumowanie
Funkcja operacji na plikach w API nadal umożliwia algorytmom z ograniczonymi prawami dostępu pracę z plikami i folderami lokalnymi. Możesz używać metod z przestrzeni nazw System.IO języka C# do programowania sposobu, w jaki algorytmy będą wykonywać takie operacje w obrębie odpowiedniego folderu. W ten sposób inne katalogi w systemie plików użytkownika pozostają w pełni chronione, nawet jeśli kod źródłowy algorytmu jest niedostępny.

