外汇指标
仅仅提供源码;
是MT4的指标 名为波浪交易系统 //| ICWR indicator | //| Copyright ?2005, John Lotoski | //| mailto:john@fayandjohn.com | //| | //+------------------------------------------------------------------+ #property copyright "Copyright ?2005, john@fayandjohn.com" #property link "mailto:john@fayandjohn.com" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 White //---- indicator parameters extern int ExtDepth=12; extern int ExtDeviation=5; extern int ExtBackstep=3; extern int RequiredWaveHeight=40; //---- indicator buffers double ExtMapBuffer[]; double ExtMapBuffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { IndicatorBuffers(2); //---- drawing settings SetIndexStyle(0,DRAW_SECTION); //---- indicator buffers mapping SetIndexBuffer(0,ExtMapBuffer); SetIndexBuffer(1,ExtMapBuffer2); SetIndexEmptyValue(0,0.0); ArraySetAsSeries(ExtMapBuffer,true); ArraySetAsSeries(ExtMapBuffer2,true); //---- indicator short name IndicatorShortName("ICWR("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() // Removes all lines and text { // from the chart upon removal // of the indicator ObjectDelete("ActiveWave"); ObjectDelete("Fibo"); return(0); } //+------------------------------------------------------------------+ //| Main function | //+------------------------------------------------------------------+ int start() { int shift,back,lasthighpos,lastlowpos,LastActivePos; double val,res; double curlow,curhigh,lasthigh,lastlow,LastActive; int AWStartPos, AWEndPos; double AWStart, AWEnd; double FiboL, FiboH, FiboLC, FiboLR, FiboHR, FiboHC; for(shift=Bars-ExtDepth; shift>=0; shift--) { // The beginning code of this for loop is dedicated // to finding a low endpoint of a zig-zag val=Low[Lowest(NULL,0,MODE_LOW,ExtDepth,shift)]; // Start at beginning of data // - Get low of last depth (12) periods // - Repeat low search of 12 periods, // advancing 1 bar every search (for loop) if(val==lastlow) // If this is not a new low val=0.0; // - Reset the val marker to dbl 0 else // Otherwise, if it is a new low { lastlow=val; // - Record this new low in lastlow for future reference if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0; // If the low of the current bar is 6 or // more pips greater than the lowest low of the last // depth (12) periods, then reset val to dbl 0. // Ie: continue the zig because the line is going up else // Otherwise, if the current low is within 6 pips { // of the lowest low of the last 12 bars for(back=1; back<=ExtBackstep; back++) { // Check back 3 bars, and if each value over those // three bars is greater than the current lowest low, // then reset the map buffer value to 0 because // we have a new lower low. res=ExtMapBuffer[shift+back]; if((res!=0)&&(res>val)) ExtMapBuffer[shift+back]=0.0; } } } ExtMapBuffer[shift]=val; // Set our current bar to 0 (continuation of zig) if: // - A new low has not been reached; // - The current bar is 6 pips beyond the lowest low // Set our current bar to the lowest low if: // - It is within 6 pips of the lowest low and // and go back over the last three bars and set them // to continuation of zig as well if they are greater // than the new lowest value // Same deal for below, except the case is reversed // and everything is done in terms of trying to find // the high zig-zag endpoint val=High[Highest(NULL,0,MODE_HIGH,ExtDepth,shift)]; if(val==lasthigh) val=0.0; else { lasthigh=val; if((val-High[shift])>(ExtDeviation*Point)) val=0.0; else { for(back=1; back<=ExtBackstep; back++) { res=ExtMapBuffer2[shift+back]; if((res!=0)&&(res<val)) ExtMapBuffer2[shift+back]=0.0; } } } ExtMapBuffer2[shift]=val; } // final cutting lasthigh=-1; lasthighpos=-1; lastlow=-1; lastlowpos=-1; for(shift=Bars-ExtDepth; shift>=0; shift--) { curlow=ExtMapBuffer[shift]; curhigh=ExtMapBuffer2[shift]; if((curlow==0)&&(curhigh==0)) // Break into the next cycle of the loop continue; // to try and find the next zig-zap endpoint if(curhigh!=0) // If there is a current high, then: { if(lasthigh>0) // If there was a previous high already: { if(lasthigh<curhigh) // - Set the last high to 0 if it is less than the current high ExtMapBuffer2[lasthighpos]=0; else // - Set the current bar to 0 if it is less than the last high ExtMapBuffer2[shift]=0; } if(lasthigh<curhigh || lasthigh<0) { // If there was no last high or the last high was less than the current high lasthigh=curhigh; // - Set the current high to be the last high (keep record of it) lasthighpos=shift; // - Set the current bar to the lasthighpos (keep record of it) } lastlow=-1; // Since we just had a new high, reset the lastlow flag } if(curlow!=0) // If there is a low, then do the same as above, except for the case of lows instead of highs { if(lastlow>0) { if(lastlow>curlow) ExtMapBuffer[lastlowpos]=0; else ExtMapBuffer[shift]=0; } if((curlow<lastlow)||(lastlow<0)) { lastlow=curlow; lastlowpos=shift; } lasthigh=-1; } } for(shift=Bars-1; shift>=0; shift--) { // Go through all the bars if(shift>=Bars-ExtDepth) // If we are not at the beginning comparison bars, ExtMapBuffer[shift]=0.0; // then set the low buffer to 0 else { // Otherwise: res=ExtMapBuffer2[shift]; // - If the current bar has a high, set the low if(res!=0.0) // buffer to contain the high ExtMapBuffer[shift]=res; } // Looks like this function brings the highs into the lows } // so that all the zig-zags can be drawn from one function LastActive = -1; LastActivePos = -1; for(shift=0; shift<=Bars-ExtDepth; shift++) { if(ExtMapBuffer[shift]!=0.0) { if(LastA |
- 软件大小:0 Bytes
- 推荐星级:
- 更新时间:2008-12-22 22:21:19
- 软件类别: 国产软件 / 其他股票公式
- 软件语言:简体中文
- 授权方式: 解密版
- 联系方式:暂无联系方式
- 官方主页: Home Page
- 点击大图: 【一键转帖到论坛】
- 插件情况:
- 运行环境:Win9X/2000/XP/2003/
- 相关Tags:指标公式 股票软件,公式源码
-
(12)92%(1)8%
评论内容只代表网友观点,与本站立场无关!
本网提供的公式文件说明:
* alg格式飞狐股票公式,可以用飞狐交易师或者交易师软件导入;
* fnc格式大智慧新一代公式指标,可以用大智慧股票软件使用,少部分可以用分析家股票软件引入使用;
* exp格式大智慧经典版股票公式,仅可以用大智慧经典版股票软件引入使用;
* tni和tnc格式通达信股票公式,仅可以用通达信新引入使用,例如可以用通达信股票软件引入使用;
* tne,tn6格式通达信公式,可以用通达信公式编辑器5.0版导入,推荐通达信金融终端版本;
* hxf格式同花顺股票公式,仅可以用同花顺股票软件引入使用。
以上的各种软件都可以在本网股票软件栏目找到!
* 关于股票公式时间限制,如果在引入大智慧公式,交易师公式或者飞狐公式的时候,发现公式名称栏是空白的,这时候调整电脑时间到1997年,又能出现公式名称,并且能正常显示,可能是公式使用期限已过。
* 关于还原公式源码如果你忘记了自己编写的大智慧公式,通达信公式,同花顺公式,操盘手公式,飞狐公式,博易大师公式,金字塔公式,文华公式和交易师公式等等公式的密码,本网可帮恢复源码,有.偿.服.务无意勿扰,点击在线咨询联系我。
* 关于股票公式源码编辑
本网提供的源码,一般都可以编辑成公式,如果不明白公式的编辑,在本页右侧教程录像可参考,或者找公式教程资料学习,请搜索:教程
* 如果您发现软件内容或者链接错误,请点击报告错误谢谢!
* 站内提供的所有软件包含源码均是由网上搜集,若侵犯了你的版权利益,请联系通知我们!