「AccessRights」クラスプロパティ
ユーザーをマルウェアコードから保護するために、すべてのcBotまたはインジケーターはサンドボックス環境で実行されます。
そのため、cBotやインジケーターは、下記のように必要なアクセス権を「AccessRights
」クラスプロパティで宣言する必要があります。
1 2 |
|
「AccessRights
」プロパティの2つの可能な値は次のとおりです。
None
。この拡張機能は、プラットフォームが提供するAPIデータにのみアクセスできます。プラットフォーム外の何もアクセスできません。FullAccess
。この拡張機能は無制限のアクセス権を持っています。インターネットにアクセスしたり、ファイルの読み書きを行ったり、他の実行可能ファイルを実行することができます。また、WinApi関数をインポートしたり、.NETリフレクションを使用したり、ウィンドウを作成したりできます。
API 機能
「AccessRights.None
」が宣言されていても、アルゴリズムがさまざまなアクションを実行できるAPI機能がいくつか存在します。
- ファイルアクセス
- ネットワークアクセス
- ローカルストレージ
「AccessRights.FullAccess
」が宣言されている場合、cBot/インジケーターのインスタンスを実行すると、次のようなウィンドウが表示されます。
セキュリティ例外
cBot/インジケーターが制限されたアクションを実行しようとすると、コードはセキュリティ例外をスローします。
例えば、AccessRights.None
のcBotがテキストファイルを読み取ろうとすると(ファイルアクセス機能を使用せずに)、cBotは停止し、ログに次のメッセージが表示されます。
Crashed in OnStart with SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
この例外を回避する最も確実な方法は、他のトレーダーに配布する予定がない限り、すべての拡張機能に「AccessRights.None
」を宣言することです。