下载MetaTrader 5

请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

2014.02.10 07:47
程序库

Skype 控制库 - MetaTrader 5程序库

| Chinese English Русский Español Deutsch 日本語 Português

显示:
949
等级:
投票: 33
skypemql.zip (749.56 KB)
\MQL5\Include\
skypemql.mqh (2.26 KB)预览
\MQL5\Scripts\

在自动交易中 Skype 可以用来发送必要信息的文字消息。这种情况下与 Skype 的集成要通过库 Skype4COM 实现, 即, 一个 ActiveX 控件来存取 程序 管理。您可以从官方开发者网站 下载 Skype4COM : http://dev.skype.com/accessories/skype4com

Skype4COM.dll 文件必须安装和注册。

At present time Skype4COM.dll is distributed with skype, by default it is located in the following folder:

对于 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

The project supports only 32-bit version of MetaTrader 4/5.

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 单字节字符, ~4000 双字节字符。

代码例子:

string InpSkypeName     =  "echo123";        // Skype 用户名
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("发送即时消息到 %s, %s",InpSkypeName,InpTextMessage);
else msg=StringFormat("错误发送即时消息到 %s, 错误: %s",InpSkypeName,EnumToString(err));

Print(msg);

 

2. 发送短信消息

发送短信服务当前是免费的!

int SkypeSendSmsMessageW(string phone_number, string message);
int SkypeSendSmsMessageA(string phone_number, string message);// 对于 MetaTrader 4

在发送短信之前, 此处有一些功能测试:

  • 电话号码必须制定, 且按照国际号码格式: + [国家码] [城市或网络码] [电话号码]
  • 包含电话号码的字符串长度必须至少 7 位字符, 并且起始为 '+' 号
  • 文本消息不能为空字符串。

发送短信到不存在的号码不是错误。这个操作会被扣款, 但之后很快会返还, 因为真实消息未能投递。

短信限制为 116 单字节字符, 58 双字节字符。

代码例子:

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("发送短信至 %s, %s",InpPhoneNumber,InpTextMessage);
else msg=StringFormat("错误发送短信至  %s, 错误: %s",InpPhoneNumber,EnumToString(err));

Print(msg);



3. 返回值描述

两个函数返回整数值, 如果必要, 可供分析。

常量名

 描述
ERROR_UNKNOWN
-1
未知错误
ERROR_NO_ERRORS
0 成功执行
ERROR_ATTACH
1
连接 Skype 失败
ERROR_AUTHORIZED
2
在联系人清单中没有指定用户
ERROR_STATUS
3
无效用户状态
ERROR_TIMEOUTS
4
超时
ERROR_RUNNING 5 Skype 未加载至内存
ERROR_SENDING 6
发送错误
ERROR_VALUE 7 传送参数错误
ERROR_ACCESS 8 存取 Skype 被禁止
ERROR_SKYPE4COM 9 对于 x86: Skype4COM.dll 未注册
对于 x64: COM-对象 创建错误

 

4. 首次启动

在首次连接 MetaTrader 5 到 Skype 一个弹出窗口出现, 授权程序管理存取。

当确认存取 Skype 之后, 请求处理进入程序设置的清单: 工具 -> 选项 -> 高级 -> 管理其它程序到 Skype 的存取。

 

5. 返回错误

因未知原因, 连同库编译 MetaTrader 5 x64, 结尾会有 "堆栈溢出" 错误。如果它通过 Skype4COM 连接, 则您要等待这个错误被改正的新消息。

附件是库源代码的存档 (一个 Microsoft Visual C++ 2010 的项目) 以及测试脚本来检查它的性能。

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
官方代码: https://www.mql5.com/ru/code/1537

自动斐波那契指标 (自动 Fibos) 自动斐波那契指标 (自动 Fibos)

除此之外有许多斐波那契指标, 但是我决定为您制作我自己的指标。

MPC - 测量流行的蜡烛条 MPC - 测量流行的蜡烛条

MPC 是一款脚本用于测量 (搜寻) 出现频率最高的蜡烛条

平均速度 平均速度

计算价格的平均速度.

RSI 扇形 RSI 扇形

RSI指标的扇形 ,它的周期由四个级数之一所定义。