论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
帖子
作者
回复/查看
最后发表
2012-09-14 14:57
10957
201307
2020-06-11 08:26
2011-04-30 12:29
2664
145616
2023-11-27 06:55
2008-04-21 06:09
27
4638
2017-09-28 15:01
2007-07-30 13:00
129
6373
2016-12-26 14:17
2007-07-31 07:39
2005-06-21 13:42
33
8332
2017-01-06 03:09
把公式做到一个里面去了,不用分成两个了。 //+------------------------------------------------------------------+ //| HEILANG-DXQS.mq4 | //| Copyright ?2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright ?2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Silver #property indicator_color2 Yellow #property indicator_color3 Magenta extern int KPeriod=9; extern int DPeriod=3; extern int JPeriod=3; extern int P=13; extern int QSHigh=30; extern int QSLow=36; double AA; double BB; double CC; double DD; double EE; double buffer1; double buffer2; double buffer3; int draw_begin1=0; int draw_begin2=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorBuffers(8); SetIndexBuffer(0,buffer2); SetIndexBuffer(1,buffer3); SetIndexBuffer(2, EE); SetIndexBuffer(3, AA); SetIndexBuffer(4, BB); SetIndexBuffer(5, CC); SetIndexBuffer(6, DD); SetIndexBuffer(7,buffer1); //---- indicator lines SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); SetIndexStyle(2,DRAW_LINE); //---- name for DataWindow and indicator subwindow label IndicatorShortName("HEILANG-DXQS("+KPeriod+","+DPeriod+","+JPeriod+","+P+","+QSHigh+","+QSLow+")"); SetIndexLabel(0,"D"); SetIndexLabel(1,"J"); SetIndexLabel(2,"QS"); //---- draw_begin1=KPeriod+JPeriod; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); SetIndexDrawBegin(2,MathMax(QSLow,QSHigh)); return(0); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i,limit; int counted_bars=IndicatorCounted(); //---- limit=Bars-MathMax(QSLow,QSHigh); for(i=0;i
2005-07-28 10:08
现在是公式第二部分。mt中需要显示DXQS时,直接调用这个公式的保存名,即可 使用DXQS。 //+------------------------------------------------------------------+ //| DXQS.mq4 | //| Copyright ?2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright ?2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Silver #property indicator_color2 Yellow #property indicator_color3 Magenta //---- input parameters extern int KPeriod=9; extern int DPeriod=3; extern int JPeriod=3; extern int P=13; extern int QSHigh=30; extern int QSLow=36; double ind_buffer1; double ind_buffer2; double ind_buffer3; double ind_buffer4; double HighesBuffer; double LowesBuffer; double QS; int draw_begin1=0; int draw_begin2=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- 2 additional buffers are used for counting. IndicatorBuffers(7); SetIndexBuffer(0, ind_buffer3); SetIndexBuffer(1, ind_buffer4); SetIndexBuffer(2, QS); SetIndexBuffer(3, ind_buffer1); SetIndexBuffer(4, ind_buffer2); SetIndexBuffer(5, HighesBuffer); SetIndexBuffer(6, LowesBuffer); //---- indicator lines SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, ind_buffer3); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1, ind_buffer4); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2, QS); //---- name for DataWindow and indicator subwindow label IndicatorShortName("DXQS("+KPeriod+","+DPeriod+","+JPeriod+","+P+","+QSHigh+","+QSLow+")"); SetIndexLabel(0,"D"); SetIndexLabel(1,"J"); SetIndexLabel(2,"QS"); //---- draw_begin1=KPeriod+JPeriod; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); SetIndexDrawBegin(0,MathMax(QSLow,QSHigh)); return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int start() { int i,k; int counted_bars=IndicatorCounted(); double price; //---- if(Bars<=draw_begin2) return(0); //---- initial zero if(counted_bars<1) { for(i=1;i<=draw_begin1;i++) ind_buffer1[Bars-i]=0; for(i=1;i<=draw_begin2;i++) ind_buffer2[Bars-i]=0; } //---- minimums counting i=Bars-KPeriod; if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) { double min=1000000; k=i+KPeriod-1; while(k>=i) { price=Low[k]; if(min>price) min=price; k--; } LowesBuffer=min; i--; } //---- maximums counting i=Bars-KPeriod; if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) { double max=-1000000; k=i+KPeriod-1; while(k>=i) { price=High[k]; if(maxdraw_begin1) i=Bars-counted_bars-1; while(i>=0) { double sumlow=0.0; double sumhigh=0.0; for(k=(i+JPeriod-1);k>=i;k--) { sumlow+=Close[k]-LowesBuffer[k]; sumhigh+=HighesBuffer[k]-LowesBuffer[k]; } if(sumhigh==0.0) ind_buffer1=100.0; else ind_buffer1=sumlow/sumhigh*100; i--; } //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars; //---- signal line is simple movimg average for(i=0; i
2005-07-25 00:03
公式算法在最上面。 由于mt对于公式变量有数量限制,所以公式需要分成两个部分,或许优化后可以归到一个公式中, 不过暂时就先这样。 下面是公式第一部分。注意,这个公式在mt中保存的名字必须为DXQS-QS,若为其他名字,调用时 会出错。 //+------------------------------------------------------------------+ //| DXQS-QS.mq4 | //| Copyright ?2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright ?2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Silver extern int P=13; extern int QSHigh=30; extern int QSLow=36; double AA; double BB; double CC; double DD; double EE; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorBuffers(5); SetIndexBuffer(0, EE); SetIndexBuffer(1, AA); SetIndexBuffer(2, BB); SetIndexBuffer(3, CC); SetIndexBuffer(4, DD); //---- indicator lines SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, EE); //---- name for DataWindow and indicator subwindow label IndicatorShortName("DXQS-QS("+","+P+","+QSHigh+","+QSLow+")"); SetIndexLabel(0,"QS"); //---- SetIndexDrawBegin(0,MathMax(QSLow,QSHigh)); return(0); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i,limit; //---- limit=Bars-MathMax(QSLow,QSHigh); for(i=0;i
2005-07-25 00:00
不知道编对没有。红色的是巧手线。 //+------------------------------------------------------------------+ //| TALKFOREX-DXQS.mq4 | //| Copyright ?2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright ?2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Silver #property indicator_color2 Yellow #property indicator_color3 Magenta #property indicator_color4 Red //---- input parameters extern int P=13; extern int KPeriod=9; extern int DPeriod=3; extern int JPeriod=3; double ind_buffer1; double ind_buffer2; double ind_buffer3; double ind_buffer4; double ind_buffer5; double HighesBuffer; double LowesBuffer; int draw_begin1=0; int draw_begin2=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- 2 additional buffers are used for counting. IndicatorBuffers(7); SetIndexBuffer(0, ind_buffer2); SetIndexBuffer(1, ind_buffer3); SetIndexBuffer(2, ind_buffer4); SetIndexBuffer(3, ind_buffer1); SetIndexBuffer(4, ind_buffer5); SetIndexBuffer(5, HighesBuffer); SetIndexBuffer(6, LowesBuffer); //---- indicator lines SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, ind_buffer2); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1, ind_buffer3); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2, ind_buffer4); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3, ind_buffer5); //---- name for DataWindow and indicator subwindow label IndicatorShortName("DXQS("+","+P+","+KPeriod+","+DPeriod+","+JPeriod+")"); SetIndexLabel(0,"K"); SetIndexLabel(1,"D"); SetIndexLabel(2,"J"); SetIndexLabel(3,"QS"); //---- draw_begin1=KPeriod+JPeriod; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); SetIndexDrawBegin(2,draw_begin2); SetIndexDrawBegin(3,P); return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int start() { int i,k; int counted_bars=IndicatorCounted(); double price; double AA,BB,DD,Buffer; //---- if(Bars<=draw_begin2) return(0); //---- initial zero if(counted_bars<1) { for(i=1;i<=draw_begin1;i++) ind_buffer1[Bars-i]=0; for(i=1;i<=draw_begin2;i++) ind_buffer2[Bars-i]=0; } //---- minimums counting i=Bars-KPeriod; if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) { double min=1000000; k=i+KPeriod-1; while(k>=i) { price=Low[k]; if(min>price) min=price; k--; } LowesBuffer=min; i--; } //---- maximums counting i=Bars-KPeriod; if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) { double max=-1000000; k=i+KPeriod-1; while(k>=i) { price=High[k]; if(maxdraw_begin1) i=Bars-counted_bars-1; while(i>=0) { double sumlow=0.0; double sumhigh=0.0; for(k=(i+JPeriod-1);k>=i;k--) { sumlow+=Close[k]-LowesBuffer[k]; sumhigh+=HighesBuffer[k]-LowesBuffer[k]; } if(sumhigh==0.0) ind_buffer1=100.0; else ind_buffer1=sumlow/sumhigh*100; i--; } //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars; //---- signal line is simple movimg average for(i=0; i=0) { AA=High[Highest(NULL,0,MODE_HIGH,30,i)]; BB=Low[Lowest(NULL,0,MODE_LOW,36,i)]; Buffer=(Close-AA)/(BB-AA)*4; DD=iMAOnArray(Buffer,0,4,0,MODE_EMA,0)*25; ind_buffer5=iMAOnArray(DD,0,P,0,MODE_SMMA,0); i--; } //---- return(0); } //+------------------------------------------------------------------+
2005-06-22 01:59

本站免责声明:

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

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

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

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

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

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