论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 10
前往
共 200 条
wfy05
注册时间2005-07-23
MetaTrader 4 自动中文语音报价脚本
楼主发表于:2005-11-14 15:31只看该作者
41楼 电梯直达
电梯直达
原帖由 韩儿 于 2005-11-14 22:56 发表 图
你这个图里面当前智能交易怎么是MACD Sample? 而且左边的智能交易列表中也没有自动语音报价啊,这说明你应该安装都没成功,但你图上却有自动语音报价的设置窗口,没看明白你怎么弄的.....
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
韩儿
注册时间2004-06-20
发表于:2005-11-15 01:52只看该作者
42楼
原帖由 wfy05 于 2005-11-14 23:31 发表 你这个图里面当前智能交易怎么是MACD Sample? 而且左边的智能交易列表中也没有自动语音报价啊,这说明你应该安装都没成功,但你图上却有自动语音报价的设置窗口,没看明白你怎么弄的.....
谢谢回复,我是把自动语音报价直接粘贴在MACD Sample里,出现的复件一样可以使用。 现在问题解决了,非常谢谢楼主。
韩儿
注册时间2004-06-20
发表于:2005-11-15 03:14只看该作者
43楼
楼主,报价是可以报了,可是老是报:欧员对美圆买入价为1点,1694上涨1点,欧员对美圆买入价为1点,1692下跌一点。 我想设置的跌破1.1650与上涨突破1.1700。(RangeMin1 0, RangeMax1 1.1650;RangeMin2 1.1700,RangeMax2 9999.9) 如图,其他都是默认没有改变,可是报价还是对上涨下跌幅度的报价。 请问该如何设置我的标准跌破1.1650与上涨突破1.1700的时候报价。Image00000.gifImage00000.gif
wfy05
注册时间2005-07-23
楼主发表于:2005-11-15 08:26只看该作者
44楼
原帖由 韩儿 于 2005-11-15 11:14 发表 楼主,报价是可以报了,可是老是报:欧员对美圆买入价为1点,1694上涨1点,欧员对美圆买入价为1点,1692下跌一点。 我想设置的跌破1.1650与上涨突破1.1700。(RangeMin1 0, RangeMax1 1.1650;RangeMin2 1.1700 ...
查了一下是代码在判断两个范围上的问题, 你的设置是正确的, 可以修改代码中的这一行 if ((p >= Range2Min && p <= Range1Max) || (p >= Range2Max && p <= Range2Min)) { 为: if ((p >= Range1Min && p <= Range1Max) || (p >= Range2Min && p <= Range2Max)) { 注意如果你已经安装了老版本的脚本, 更新后都必须重新编译代码, 编译方法为: 右键点击智能交易下的"自动语音报价", 选择修改后在MetaEditor中进行编辑(修改上面的错误行 或者清空后输入下面的完整新代码), 然后按F5进行重新编译,如果成功的话关闭掉MetaEditor 即可,相关报价设置在重新编译后会丢失需要重新设定. 更新后的完整代码如下: //+------------------------------------------------------------------+ //| 语音报价.mq4 | //| | //| | //+------------------------------------------------------------------+ #property copyright "[email protected]" #property link "www.talkfx.com" //---- input parameters extern bool Enabled=true; extern bool UseBid=true; extern int SpeakInterval=10; extern bool SpeakSymbol=true; extern int SpeakDelta=1; extern double Range1Min=0.0; extern double Range1Max=99999.9; extern double Range2Min=0.0; extern double Range2Max=0.0; extern bool InitSpeak=false; extern bool LogMessage=false; double LastPrice = 0; int LastSpeakTime = 0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ double GetCurrPrice() { double p; if (UseBid) { p = Bid; } else { p = Ask; } return (p); } string CurrencyGetName(string c) { if (c == "USD") { return ("美元"); } else if (c == "EUR") { return ("欧元"); } else if (c == "GBP") { return ("英镑"); } else if (c == "JPY") { return ("日元"); } else if (c == "CAD") { return ("加元"); } else if (c == "CHF") { return ("瑞郎"); } else if (c == "AUD") { return ("澳元"); } else if (c == "SGD") { return ("星元"); } else if (c == "NZD") { return ("纽元"); } else if (c == "HKD") { return ("港币"); } else if (c == "CNY") { return ("人民币"); } else { return (""); } } string GetSymbolName(string name) { string str; str = ""; if (StringLen(name) != 6) { if (name == "USDX" || name == "_DXY") { str = str+"美元指数"; } else if (name == "GOLD") { str = str+"黄金"; } } else { string left, right; left = CurrencyGetName(StringSubstr(name, 0, 3)); right = CurrencyGetName(StringSubstr(name, 3, 3)); if (left != "" && right != "") { str = str+(left + "兑" + right); } } return (str); } string GetSpeechText() { string str; str = ""; if (SpeakSymbol) { str = str + GetSymbolName(Symbol()); if (str != "") { if (UseBid) { str = str+"买入价为"; } else { str = str+"卖出价为"; } } } double p; p = GetCurrPrice(); str = str+DoubleToStr(p, Digits); if (SpeakDelta != 0 ) { int n = MathPow(10, Digits); double diff = MathAbs(p*n-LastPrice*n); if (diff >= SpeakDelta) { if (p > LastPrice) { str = str+"上涨"+DoubleToStr(diff,0)+"点"; } else { str = str+"下跌"+DoubleToStr(diff,0)+"点"; } } // Print(LastPrice + "->" + p + " : " + diff); } LastPrice = p; if (LogMessage) Print (str); return (str); } int init() { //---- //---- LastPrice = GetCurrPrice(); LastSpeakTime = 0; if (InitSpeak) { string str; str = "开始进行" + GetSymbolName(Symbol()) + "的自动报价,"; str = str + "当前价格为" + DoubleToStr(LastPrice, Digits); SpeechText(str, SPEECH_NATIVE); } return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- if (InitSpeak) { string str; str = "停止" + GetSymbolName(Symbol()) + "的自动报价"; SpeechText(str, SPEECH_NATIVE); } //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if (!Enabled) return (0); double p = GetCurrPrice(); if (MathAbs(GetTickCount() - LastSpeakTime) < SpeakInterval * 1000) { return (0); } if ((p >= Range1Min && p <= Range1Max) || (p >= Range2Min && p <= Range2Max)) { SpeechText(GetSpeechText(), SPEECH_NATIVE); LastSpeakTime = GetTickCount(); } //---- return(0); } //+------------------------------------------------------------------+
在水一方
注册时间2004-02-15
发表于:2005-11-15 08:43只看该作者
45楼
看到别的汇友都可以用了,就是我的不能用.伤心呢.也许是我的操作系统是win98se 缘故吧.
个性签名

冷静观察、稳住阵脚、沉着应付、韬光养晦、有所作为、决不当头。

wfy05
注册时间2005-07-23
楼主发表于:2005-11-15 09:26只看该作者
46楼
原帖由 在水一方 于 2005-11-15 16:43 发表 看到别的汇友都可以用了,就是我的不能用.伤心呢.也许是我的操作系统是win98se 缘故吧.
你现在具体的问题在哪? 你系统控制面板中的语音是否能正常朗读中文? 另外MT4里面 也可以通过"警报"进行语音的测试(选动作为Voice并且来源随便输入些中文后点测试). 你也可以打开"自动语音报价"设置中的LogMessage选项然后查看智能交易系统下是否 有相关日志记录. 还有发张图片上来看看也许能有点帮助.
韩儿
注册时间2004-06-20
发表于:2005-11-15 09:54只看该作者
47楼
原帖由 wfy05 于 2005-11-15 16:26 发表 查了一下是代码在判断两个范围上的问题, 你的设置是正确的, 可以修改代码中的这一行 if ((p >= Range2Min && p <= Range1Max) || (p >= Range2Max && p <= Range2 ...
楼主,不好意思,请问一下你有没有使用这个指标呀?在报价的时候是否准确。 我现在把代码修改了,可是还是不能起效啊?不知道问题在哪?请指教 如图,Image00002.gifImage00002.gif
wfy05
注册时间2005-07-23
楼主发表于:2005-11-15 10:30只看该作者
48楼
原帖由 韩儿 于 2005-11-15 17:54 发表 楼主,不好意思,请问一下你有没有使用这个指标呀?在报价的时候是否准确。 我现在把代码修改了,可是还是不能起效啊?不知道问题在哪?请指教 如图,
更新后的代码我自己测试了一下是没有问题的. 修改后重新编译过没有? 简单点可以把原来的代码清空后把新的完整代码再倒入后编译. 或者删除experts目录下的自动语音报价的mq4以及ex4文件,然后重新安装更新后的代码 (安装过程同第一贴里面说的)
韩儿
注册时间2004-06-20
发表于:2005-11-15 10:58只看该作者
49楼
原帖由 wfy05 于 2005-11-15 18:30 发表 更新后的代码我自己测试了一下是没有问题的. 修改后重新编译过没有? 简单点可以把原来的代码清空后把新的完整代码再倒入后编译. 或者删除experts目录下的自动语音报价的mq4以及ex4文件,然后重新安装更新 ...
呵呵,谢谢楼主回复,我修改后没有重新编译,我不知道重新编译是什么?要怎么编译啊水平有限,请指教! 可以贴在图看看吗?我只是把你的程序粘贴到experts里面就用了啊? 这是个好东西,希望能用起来。
wfy05
注册时间2005-07-23
楼主发表于:2005-11-15 11:12只看该作者
50楼
原帖由 韩儿 于 2005-11-15 18:58 发表 呵呵,谢谢楼主回复,我修改后没有重新编译,我不知道重新编译是什么?要怎么编译啊水平有限,请指教! 可以贴在图看看吗?我只是把你的程序粘贴到experts里面就用了啊? 这是个好东西,希望能用起来。
重新编译要用到MetaEditor, 前面有提到:
编译方法为: 右键点击智能交易下的"自动语音报价", 选择修改后在MetaEditor中进行编辑(修改上面的错误行 或者清空后输入下面的完整新代码), 然后按F5进行重新编译,如果成功的话关闭掉MetaEditor 即可,相关报价设置在重新编译后会丢失需要重新设定.
或者还有一种方法就是右键点击智能交易下的"自动语音报价", 选删除后按照以前同样的方法将 新版本的代码重新安装即可.
韩儿
注册时间2004-06-20
发表于:2005-11-15 12:36只看该作者
51楼
原帖由 wfy05 于 2005-11-15 19:12 发表 重新编译要用到MetaEditor, 前面有提到: 或者还有一种方法就是右键点击智能交易下的"自动语音报价", 选删除后按照以前同样的方法将 新版本的代码重新安装即可.
我重新安装了很多遍,还是没有用。什么都有,就是不能报价,真是好奇怪! 没福享用拉,:L 如图,自定义指标中出现自动报价算是否正常?Image00001.gifImage00001.gif
wfy05
注册时间2005-07-23
楼主发表于:2005-11-15 12:42只看该作者
52楼
原帖由 韩儿 于 2005-11-15 20:36 发表 我重新安装了很多遍,还是没有用。什么都有,就是不能报价,真是好奇怪! 没福享用拉,:L 如图,自定义指标中出现自动报价算是否正常?
自定义指标中出现自动报价不正常, 自动报价不是自定义指标,在那里无法正常工作. 我估计你是保存的目录错了, 应该是experts目录而不是experts\indicators目录(这个是 自定义指标的) 你先在自定义指标以及智能交易的自动报价上点右键然后删除,然后重新启动MT4确认 这两个都已经删除后再将#44楼的完整代码重新安装到智能交易中去应该就没问题了.
韩儿
注册时间2004-06-20
发表于:2005-11-15 12:43只看该作者
53楼
楼主,是否可以把你图表MT4的experts文件,整个上传上来,我可以用来直接覆盖在我的MT4中。看看这样行的通。也不知道问题出在哪里????
韩儿
注册时间2004-06-20
发表于:2005-11-15 12:59只看该作者
54楼
帖一下我的操作步骤,如图:Image00001.gifImage00001.gifImage00000.gifImage00000.gif
个性签名

韬客外汇论坛TALKFOREX.COM

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
韩儿
注册时间2004-06-20
发表于:2005-11-15 13:01只看该作者
55楼
Image00003.gifImage00003.gifImage00002.gifImage00002.gif
个性签名

韬客外汇论坛TALKFOREX.COM

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
韩儿
注册时间2004-06-20
发表于:2005-11-15 13:02只看该作者
56楼
Image00005.gifImage00005.gifImage00004.gifImage00004.gif
韩儿
注册时间2004-06-20
发表于:2005-11-15 13:03只看该作者
57楼
1Image00007.gifImage00007.gifImage00006.gifImage00006.gif
韩儿
注册时间2004-06-20
发表于:2005-11-15 13:04只看该作者
58楼
1Image00008.gifImage00008.gif
wfy05
注册时间2005-07-23
楼主发表于:2005-11-15 13:15只看该作者
59楼
原帖由 韩儿 于 2005-11-15 21:04 发表 1
知道你问题出在哪里了, 你创建后建立新的文件这一步应该选"Expert Advisor program"而不是"Custom Indicator Program". 然后将代码复制进去后保存再编译即可. 你删除掉以前的后再重新来一次应该就没问题了.
韩儿
注册时间2004-06-20
发表于:2005-11-15 13:34只看该作者
60楼
原帖由 wfy05 于 2005-11-15 21:15 发表 知道你问题出在哪里了, 你创建后建立新的文件这一步应该选"Expert Advisor program"而不是"Custom Indicator Program". 然后将代码复制进去后保存再编译即可. 你删除掉以前的后再重新来 ...
呵呵 谢谢回复,又重新试了一遍,自定义里面的已经没有了,可是还是不行!!!!!!!!!!!:(
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 10
前往
共 200 条

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]