無料でロボットをダウンロードする方法を見る
Twitter上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
ライブラリ

スカイプコントロールライブラリ - MetaTrader 5のためのライブラリ

ビュー:
951
評価:
(39)
パブリッシュ済み:
2016.09.29 11:04
アップデート済み:
2016.11.22 07:34
skypemql.zip (749.56 KB)
\MQL5\Include\ \MQL5\Scripts\
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

自動売買で必要な情報をテキストするにはスカイプが使用できます。この場合、スカイプの操作は、プログラム管理へのアクセスを可能にする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

自動フィボナッチ指標(Auto Fibos) 自動フィボナッチ指標(Auto Fibos)

フィボナッチ指標は多数ありますが、私はあなたのために私自身の指標を作ることにしました。

TrendPower TrendPower

現在のローソク足の高値と安値との単純移動平均の6つのレベルの比較に基づいて描かれたトレンド指標

Exp_ToCloseProfit Exp_ToCloseProfit

すべてのポジションのグローバルテイクプロフィットを実行するエキスパートアドバイザー

OpenSellPosition_X OpenSellPosition_X

OpenSellPosition_Xスクリプトは、現在の価格から固定された決済逆指値及び決済指値で売るために作成されたものです。ポジションの数量は、損失のレベルに基づいて決定されます。