私たちのファンページに参加してください
スカイプコントロールライブラリ - MetaTrader 5のためのライブラリ
- ビュー:
- 951
- 評価:
- パブリッシュ済み:
- 2016.09.29 11:04
- アップデート済み:
- 2016.11.22 07:34
- このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
自動売買で必要な情報をテキストするにはスカイプが使用できます。この場合、スカイプの操作は、プログラム管理へのアクセスを可能にするActiveXコンポーネントであるSkype4COMライブラリで実現されます。
現時点でSkype4COM.dllはスカイプと配布され、デフォルトでは下記のフォルダに位置します。
x86オペレーティングシステムの場合:
c:\Program Files\Common Files\Skype\Skype4COM.dll
x64オペレーティングシステムの場合:
c:\Program Files (x86)\Common Files\Skype\Skype4COM.dll
このSkypeMQL.dllライブラリは [terminal directory]\MQL5\Librariesフォルダにインストールされる必要があります。
このプロジェクトはMetaTrader 4/5の32ビット版のみをサポートします。
1. インスタントメッセージの送信
int SkypeSendInstantMessageW(string skype_name,string message,int status); int SkypeSendInstantMessageA(string skype_name,string message,int status);// MetaTrader 4の場合
この関数にはインスタントメッセージを送信する前にいくつかの条件確認があります。
- ユーザー名は空であっても数字で始まってもならない
- 指定された名前のユーザーは連絡先リストになければならない
- メッセージは空の文字列ではいけない
- 受信者のネットワークステータスは指定された値と一致しなければならない
下記はネットワークステータスを示す定数の表です。
定数名 |
値 |
説明 |
---|---|---|
STATUS_OFFLINE | 1 |
オフライン |
STATUS_ONLINE | 2 |
オンライン |
STATUS_AWAY | 4 |
退席中 |
STATUS_DONT_DISTURB |
16 |
取り込み中 |
複数の許可ステータスを同時に設定するには、例えば STATUS_ONLINE | STATUS_AWAY のようにビットごとにステータスを加算します。
インスタントメッセージは最長で8000 ANSIシンボルまたは4000Unicodeシンボルです。<
コード例は下記です。
string InpSkypeName = "echo123"; // スカイプ名 string InpTextMessage = "Hello :)"; // テキストメッセージ string msg; ENUM_SKYPE_ERROR err=(ENUM_SKYPE_ERROR)SkypeSendInstantMessageW(InpSkypeName,InpTextMessage,STATUS_ONLINE|STATUS_AWAY); if(err==ERROR_NO_ERRORS) msg=StringFormat("Sent IM to %s, %s",InpSkypeName,InpTextMessage); else msg=StringFormat("Error sending IM to %s, error: %s",InpSkypeName,EnumToString(err)); Print(msg);
2. SMSの送信
SMSメッセージ送信サービスは現在有料です。
int SkypeSendSmsMessageW(string phone_number, string message); int SkypeSendSmsMessageA(string phone_number, string message);// MetaTrader 4の場合
SMSを送信する前にはいくつかの条件確認があります。
- 電話番号が国際形式で指定されている: + [country code] [city or network code] [telephone number]
- 電話番号は少なくとも7シンボルを含み「+」'記号で始まる必要がある
- テキストメッセージは空の文字列ではいけない
非既存の番号へのSMS送信はエラーではありません。この操作は課金されますが、実際のメッセージは配信されなかったとして少し後に返されます。
SMSメッセージは最長で116ANSIシンボルまたは58Unicodeシンボルです。
コード例は下記です。
input string InpPhoneNumber = "+380123456789"; // 電話番号 input string InpTextMessage = "Hello :)"; // テキストメッセージ string msg; ENUM_SKYPE_ERROR err==(ENUM_SKYPE_ERROR) SkypeSendSmsMessageW(InpPhoneNumber,InpTextMessage); if(err==ERROR_NO_ERRORS) msg=StringFormat("Sent SMS to %s, %s",InpPhoneNumber,InpTextMessage); else msg=StringFormat("Error sending SMS to %s, error: %s",InpPhoneNumber,EnumToString(err)); Print(msg);
3. 戻り値の説明
どちらの関数も、必要に応じて分析することができる整数値を返します。
定数名 |
値 |
説明 |
---|---|---|
ERROR_UNKNOWN |
-1 |
原因不明のエラー |
ERROR_NO_ERRORS |
0 | 正常な実行 |
ERROR_ATTACH |
1 |
スカイプ接続エラー |
ERROR_AUTHORIZED |
2 |
指定されたユーザが連絡先リストに存在しない |
ERROR_STATUS |
3 |
無効なユーザーステータス |
ERROR_TIMEOUTS |
4 |
タイムアウト |
ERROR_RUNNING | 5 | スカイプがメモリに読み込まれていない |
ERROR_SENDING | 6 |
送信エラー |
ERROR_VALUE | 7 | 転送パラメータエラー |
ERROR_ACCESS | 8 | スカイプへのアクセスが無許可 |
ERROR_SKYPE4COM | 9 | x86の場合:Skype4COM.dll が未登録 x64の場合:COM-object作成エラー |
4. 最初の起動
MetaTrader 5 がスカイプへ初めて接続される際、プログラムの管理アクセスを可能にするポップアップウィンドウが表示されます。
スカイプへのアクセスを確認した後、リクエストを送ったプロセスはプログラムの設定に格納されているTools -> Options -> Advanced -> Manage other programs' access to Skypeリストに入ります。
5. ランタイムエラー
未知の理由によって、MetaTrader 5 x64用にコンパイルされたライブラリとの作業が「スタックオーバーフロー」エラーで終了します。Skype4COMに接続されている場合は、このエラーが修正されたという新しいメッセージを待たなければなりません。
添付ファイルではライブラリのソースコード(Microsoft Visual C ++2010 プロジェクト)とその性能を確認するためのテストスクリプトがアーカイブされています。
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/1537
フィボナッチ指標は多数ありますが、私はあなたのために私自身の指標を作ることにしました。
TrendPower現在のローソク足の高値と安値との単純移動平均の6つのレベルの比較に基づいて描かれたトレンド指標
すべてのポジションのグローバルテイクプロフィットを実行するエキスパートアドバイザー
OpenSellPosition_XOpenSellPosition_Xスクリプトは、現在の価格から固定された決済逆指値及び決済指値で売るために作成されたものです。ポジションの数量は、損失のレベルに基づいて決定されます。