论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:1472回复:16
netbios2008
注册时间2005-04-21
第一次开发程序,头都大了!!高手帮助看看对不对
楼主发表于:2005-08-03 12:46只看该作者倒序浏览
1楼 电梯直达
电梯直达
//+------------------------------------------------------------------+ //| MACD&MA.mq4 | //| Copyright ?2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright ?2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #include //---- input parameters extern int FASE_EMA=5; extern int SLOW_EMA=34; extern int MACD_SMA=5; extern int MA_TIME1=5; extern int MA_TIME2=10; extern int MA_TIME3=20; int time=60; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if ((iMA(NULL,time,MA_TIME1,0,MODE_SMA,PRICE_CLOSE,0)>iMA(NULL,time,MA_TIME2,0,MODE_SMA,PRICE_CLOSE,0) && iMA(NULL,time,MA_TIME2,0,MODE_SMA,PRICE_CLOSE,0)>iMA(NULL,time,MA_TIME3,0,MODE_SMA,PRICE_CLOSE,0)) &&((iMACD(NULL,time,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,0)<0) &&((iMACD(NULL,time,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,1)>0) ||(iMACD(NULL,time,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,2)>0) ||(iMACD(NULL,time,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,3)>0)))) { PlaySound( "expert.wav"); MessageBox("注意"+Symbol()+"可以做多了",NULL, MB_OK); } if ((iMA(NULL,time,MA_TIME1,0,MODE_SMA,PRICE_CLOSE,0)0) &&((iMACD(NULL,time,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,1)<0) ||(iMACD(NULL,time,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,2)<0) ||(iMACD(NULL,time,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,3)<0)))) { PlaySound( "expert.wav"); MessageBox("注意"+Symbol()+"可以做空了",NULL, MB_OK); //---- } return(0); } //+------------------------------------------------------------------+ [ 本帖最后由 老正 于 2005-8-4 09:47 编辑 ]
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
maningok
注册时间2004-12-06
发表于:2005-08-03 13:22只看该作者
2楼
1,可以用alert函数代替playsound 和messagebox 两个函数, 2,不需要用time=60变量来把这个程序限制在小时图上使用,只要运行时放在小时图上就行了。用0代替time变量可以把它使用在不同的图上。 3,不要使用shift=0的函数,因为当shift=0时函数的值在实际应用上是不确定的值
netbios2008
注册时间2005-04-21
楼主发表于:2005-08-03 13:30只看该作者
3楼
谢谢maningok高手 ,我第一次编程,实在是不会改了,您帮忙休改一下好吗?
netbios2008
注册时间2005-04-21
楼主发表于:2005-08-03 13:37只看该作者
4楼
另外我觉的,我那几个条件语句也好像有问题,您在帮助看看,谢谢了!
个性签名

韬客社区www.talkfx.co

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
maningok
注册时间2004-12-06
发表于:2005-08-04 03:18只看该作者
5楼
//+------------------------------------------------------------------+ //| Copyright ?2005, [email protected] //| http://man2078.home4u.china.com/| //+------------------------------------------------------------------+ #property copyright "[email protected]" #property link "http://man2078.home4u.china.com" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red //---- buffers double buy,sell; extern int FASE_EMA=5; extern int SLOW_EMA=34; extern int MACD_SMA=5; extern int MA_TIME1=5; extern int MA_TIME2=10; extern int MA_TIME3=20; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,233); SetIndexBuffer(0,buy); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,234); SetIndexBuffer(1,sell); SetIndexEmptyValue(1,0.0); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- for (int i=Bars-1;i>=0;i--) { if ( ( iMA(NULL,0,MA_TIME1,0,MODE_SMA,PRICE_CLOSE,i)>iMA(NULL,0,MA_TIME2,0,MODE_SMA,PRICE_CLOSE,i) && iMA(NULL,0,MA_TIME2,0,MODE_SMA,PRICE_CLOSE,i)>iMA(NULL,0,MA_TIME3,0,MODE_SMA,PRICE_CLOSE,i) ) && ( (iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i)<0) && ( (iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+1)>0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+2)>0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+3)>0) ) ) ) { buy=Low; if (i==1) Alert("注意"+Symbol()+"可以做多了"); } if ( ( iMA(NULL,0,MA_TIME1,0,MODE_SMA,PRICE_CLOSE,i)0) && ( (iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+1)<0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+2)<0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+3)<0) ) ) ) { sell=High; if (i==1) Alert("注意"+Symbol()+"可以做空了"); } } //---- return(0); } //+------------------------------------------------------------------+ [ 本帖最后由 老正 于 2005-8-4 12:55 编辑 ]
maningok
注册时间2004-12-06
发表于:2005-08-04 03:23只看该作者
6楼
把它全部粘贴到Customer Indicator 中,然后编译,运行,可以看到你的系统产生的所有历史交易信号。注意,不能放在Expert adviser里面。
个性签名

韬客社区www.talkfx.co

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
netbios2008
注册时间2005-04-21
楼主发表于:2005-08-04 04:12只看该作者
7楼
maningok 真的不知到怎么感谢您!!!谢谢了!!!我这就试试,这系统可以发出提示的声音吗?
netbios2008
注册时间2005-04-21
楼主发表于:2005-08-04 05:19只看该作者
8楼
多谢您了,我这里上传一个图片,可能是我统计的有问题,我把20均线去掉了,只保留了5和10,现在您看到的这个图只要5和10均线,我已经在您的修改后的程序里边去掉了20均线,可是有些该发出交易信号的地方还是没有出现,您再看看123.jpg123.jpg
个性签名

韬客社区www.talkfx.co

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
maningok
注册时间2004-12-06
发表于:2005-08-04 05:20只看该作者
9楼
有行情的时候会发出声音,并且探出对话框提示你。声音文件可以在tools-options-options菜单里面更改
netbios2008
注册时间2005-04-21
楼主发表于:2005-08-04 05:30只看该作者
10楼
maningok 我已经上传了图片,您再看看,有些地方没出信号。
maningok
注册时间2004-12-06
发表于:2005-08-04 06:04只看该作者
11楼
你画的左面的黄圈里面MACD由正变负,不符合你设定的做空条件, 右边的黄圈里面MACD由负变正,也不符合你的做多条件,所以系统没有信号产生。 不知道这是不是和你最初的想法一致,不如你说说你设计这个系统的最初的想法,我好看看你的条件语句用得对不对。
netbios2008
注册时间2005-04-21
楼主发表于:2005-08-04 06:52只看该作者
12楼
我的最初想法就是,均线5,10死叉,同时MACD的值由正变负,系统发声音,提示做空;做多相反,可能我的那个原始程序的写的让您误会了 [ 本帖最后由 netbios2008 于 2005-8-4 14:54 编辑 ]
maningok
注册时间2004-12-06
发表于:2005-08-04 07:01只看该作者
13楼
//+------------------------------------------------------------------+ //| Copyright ?2005, [email protected] //| http://man2078.home4u.china.com/| //+------------------------------------------------------------------+ #property copyright "[email protected]" #property link "http://man2078.home4u.china.com" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red //---- buffers double buy,sell; extern int FASE_EMA=5; extern int SLOW_EMA=34; extern int MACD_SMA=5; extern int MA_TIME1=5; extern int MA_TIME2=10; extern int MA_TIME3=20; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,233); SetIndexBuffer(0,buy); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,234); SetIndexBuffer(1,sell); SetIndexEmptyValue(1,0.0); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- for (int i=Bars-1;i>=0;i--) { if ( ( iMA(NULL,0,MA_TIME1,0,MODE_SMA,PRICE_CLOSE,i)0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+2)>0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+3)>0) ) ) ) { buy=Low; if (i==1) Alert("注意"+Symbol()+"可以做多了"); } if ( ( iMA(NULL,0,MA_TIME1,0,MODE_SMA,PRICE_CLOSE,i)>iMA(NULL,0,MA_TIME2,0,MODE_SMA,PRICE_CLOSE,i) ) && ( (iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i)>0) && ( (iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+1)<0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+2)<0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+3)<0) ) ) ) { sell=High; if (i==1) Alert("注意"+Symbol()+"可以做空了"); } } //---- return(0); } //+------------------------------------------------------------------+ [ 本帖最后由 maningok 于 2005-8-4 15:05 编辑 ]c.gifc.gif
个性签名

韬客社区www.talkfx.co

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
netbios2008
注册时间2005-04-21
楼主发表于:2005-08-04 07:05只看该作者
14楼
好我来看,等会贴个图,有机会向您学习
maningok
注册时间2004-12-06
发表于:2005-08-04 07:12只看该作者
15楼
//+------------------------------------------------------------------+ //| Copyright ?2005, [email protected] //| http://man2078.home4u.china.com/| //+------------------------------------------------------------------+ #property copyright "[email protected]" #property link "http://man2078.home4u.china.com" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red //---- buffers double buy,sell; extern int FASE_EMA=5; extern int SLOW_EMA=34; extern int MACD_SMA=5; extern int MA_TIME1=5; extern int MA_TIME2=10; extern int MA_TIME3=20; double LastAlertTime=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,233); SetIndexBuffer(0,buy); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,234); SetIndexBuffer(1,sell); SetIndexEmptyValue(1,0.0); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- for (int i=Bars-1;i>=0;i--) { if ( ( iMA(NULL,0,MA_TIME1,0,MODE_SMA,PRICE_CLOSE,i)0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+2)>0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+3)>0) ) ) ) { sell=High; if (i==1 && LastAlertTime!=Time[0]) { Alert("注意"+Symbol()+"可以做空了"); LastAlertTime=Time[0]; } } if ( ( iMA(NULL,0,MA_TIME1,0,MODE_SMA,PRICE_CLOSE,i)>iMA(NULL,0,MA_TIME2,0,MODE_SMA,PRICE_CLOSE,i) ) && ( (iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i)>0) && ( (iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+1)<0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+2)<0) ||(iMACD(NULL,0,FASE_EMA,SLOW_EMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,i+3)<0) ) ) ) { buy=Low; if (i==1 && LastAlertTime!=Time[0]) { Alert("注意"+Symbol()+"可以做多了"); LastAlertTime=Time[0]; } } } //---- return(0); } //+------------------------------------------------------------------+
netbios2008
注册时间2005-04-21
楼主发表于:2005-08-04 07:19只看该作者
16楼
哇!太好了,这么快就搞定了,真是高人,相信您那个技术分析的颠峰的软件相当不简单,有机会传我们一招半招的,祝您成功!!!希望能常看到帖子
netbios2008
注册时间2005-04-21
楼主发表于:2005-08-04 07:59只看该作者
17楼
图就不再另外贴了,和您的一样,非常好
个性签名

韬客社区www.talkfx.co

本站免责声明:

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

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

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

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

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

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