论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:1507回复:1
秃鹫大哥请
楼主发表于:2008-10-03 06:09只看该作者倒序浏览
1楼 电梯直达
电梯直达
秃鹫大哥小弟有一个报警指标,对指标的其他功能比较满意,可是对报警功能感觉不够用。这个报警只是一声响,小弟详情秃鹫大哥帮着改成直到取消,报警声才停止。多谢秃鹫大哥 也请其他高手大哥赐教,谢谢诸位哥哥 #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 DodgerBlue #property indicator_color2 Red #property indicator_color3 Red #property indicator_color4 Yellow double CrossUp; double CrossDown; double MAF; double MAS; extern bool Alert_X=true; extern int FasterMode = 0; //0=sma, 1=ema, 2=smma, 3=lwma extern int FasterMA = 5; extern int SlowerMode = 0; //0=sma, 1=ema, 2=smma, 3=lwma extern int SlowerMA = 10; static double UP_Alert,DO_Alert; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0, DRAW_ARROW, 2); SetIndexArrow(0, 233); SetIndexBuffer(0, CrossUp); SetIndexStyle(1, DRAW_ARROW, 2); SetIndexArrow(1, 234); SetIndexBuffer(1, CrossDown); SetIndexBuffer(2, MAF); SetIndexBuffer(3, MAS); SetIndexStyle(2, DRAW_LINE); SetIndexStyle(3, DRAW_LINE); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- ObjectDelete("onefx_label0"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit, i, counter; double fasterMAnow, slowerMAnow, fasterMAprevious, slowerMAprevious, fasterMAafter, slowerMAafter; double Range; int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(i = 0; i <= limit; i++) { MAF = iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i); MAS = iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_CLOSE, i); } for(i = 0; i <= limit; i++) { Range=iATR(NULL,0,10,i+1); if (MAF > MAS && MAF[i+1] > MAS[i+1] && MAF[i+2] < MAS[i+2]) { CrossUp = Open;//Low - Range*0.5; } if (MAF < MAS && MAF[i+1] < MAS[i+1] && MAF[i+2] > MAS[i+2]) { CrossDown = Open;//High + Range*0.5; } } if (Alert_X==false) { DO_Alert=Time[0]; UP_Alert=Time[0]; } if (UP_Alert!=Time[0] && MAF[0] > MAS[0] && MAF[1] > MAS[1] && MAF[2] < MAS[2]) { Alert(Symbol()+" "+Period()+" MA-Crossover_Signal "+FasterMA+" 金叉 "+SlowerMA); UP_Alert=Time[0]; } if (DO_Alert!=Time[0] && MAF[0] < MAS[0] && MAF[1] < MAS[1] && MAF[2] > MAS[2]) { Alert(Symbol()+" "+Period()+" MA-Crossover_Signal "+FasterMA+" 死叉"+SlowerMA); DO_Alert=Time[0]; } return(0); } //+------------------------------------------------------------------+
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
秃鹫
注册时间2007-05-25
发表于:2008-10-06 03:58只看该作者
2楼
按你说的功能做不到,不过可以加入报警次数。试一下下面这个改过的 #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 DodgerBlue #property indicator_color2 Red #property indicator_color3 Red #property indicator_color4 Yellow extern int FasterMode = 0; extern int FasterMA = 5; extern int SlowerMode = 0; extern int SlowerMA = 10; extern bool Alert_X=true; extern int Alert_max=5; datetime preTime=0; int count; double CrossUp; double CrossDown; double MAF; double MAS; void init() { SetIndexStyle(0, DRAW_ARROW, 2); SetIndexArrow(0, 233); SetIndexBuffer(0, CrossUp); SetIndexStyle(1, DRAW_ARROW, 2); SetIndexArrow(1, 234); SetIndexBuffer(1, CrossDown); SetIndexBuffer(2, MAF); SetIndexBuffer(3, MAS); SetIndexStyle(2, DRAW_LINE); SetIndexStyle(3, DRAW_LINE); } void deinit() { ObjectDelete("onefx_label0"); } void start(){ int limit, t, counter; double fasterMAnow, slowerMAnow, fasterMAprevious, slowerMAprevious, fasterMAafter, slowerMAafter; double Range; int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(t = 0; t <= limit; t++) { MAF[t] = iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, t); MAS[t] = iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_CLOSE, t); } for(t = 0; t <= limit; t++) { Range=iATR(NULL,0,10,t+1); if (MAF[t] > MAS[t] && MAF[t+1] > MAS[t+1] && MAF[t+2] < MAS[t+2]) { CrossUp[t] = Open[t]; } if (MAF[t] < MAS[t] && MAF[t+1] < MAS[t+1] && MAF[t+2] > MAS[t+2]) { CrossDown[t] = Open[t]; } } if( Time[0]>preTime ){ count=0; preTime=Time[0]; } if(count<=Alert_max){ if ( MAF[0] > MAS[0] && MAF[1] > MAS[1] && MAF[2] < MAS[2]) { Alert(Symbol()+" "+Period()+" MA-Crossover_Signal "+FasterMA+" 金叉 "+SlowerMA+"NO."+count); count++; } if ( MAF[0] < MAS[0] && MAF[1] < MAS[1] && MAF[2] > MAS[2]) { Alert(Symbol()+" "+Period()+" MA-Crossover_Signal "+FasterMA+" 死叉"+SlowerMA+"NO."+count); count++; } } }

本站免责声明:

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

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

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

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

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

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