论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
  • 1
  • 2
  • 3
  • 4
前往
共 71 条
查看:22752回复:70
whclm
注册时间2005-01-18
[MT4指标]kdj指标 mt4
楼主发表于:2005-02-16 05:33只看该作者倒序浏览
1楼 电梯直达
电梯直达
能在MT4中编一个KDJ指标吗? 谢谢!!!!! 修改好的在20楼 [ Last edited by 老正 on 2005-6-16 at 23:11 ]
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
老正
注册时间2003-09-21
365热心助人奖
发表于:2005-02-16 06:01只看该作者
2楼
这个Snap1.gifSnap1.gif
jxq168
注册时间2004-07-28
发表于:2005-02-16 12:50只看该作者
4楼
其实,mt4中的这个kdj指标不是经典的(或者说我们国内常用的)kdj RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); J:3*K-2*D; mt中的两根线只相当于上面的rsv和k。
jxq168
注册时间2004-07-28
发表于:2005-02-16 13:00只看该作者
5楼
我只会再增加两根,但是kdj指标又变成4根,有高手能再修改一下:把第一根线只显示数值而不显示线或者把第一根线隐藏! 搞个投机取巧:把第一根线的颜色设成和底色一样的黑色,这样就可以凑合着用。:)) [ Last edited by jxq168 on 2005-2-16 at 21:06 ]
jxq168
注册时间2004-07-28
发表于:2005-02-16 13:03只看该作者
6楼
不好玩啊,没法上传? 对不起,不支持上传此类扩展名的附件,请返回修改。
jxq168
注册时间2004-07-28
发表于:2005-02-16 13:05只看该作者
7楼
//+------------------------------------------------------------------+ //| KDJ.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 Black #property indicator_color2 Silver #property indicator_color3 Yellow #property indicator_color4 Magenta //---- input parameters 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 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(6); SetIndexBuffer(4, HighesBuffer); SetIndexBuffer(5, LowesBuffer); SetIndexBuffer(0, ind_buffer1); //---- indicator lines SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1, ind_buffer2); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2, ind_buffer3); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3, ind_buffer4); //---- name for DataWindow and indicator subwindow label IndicatorShortName("KDJ("+KPeriod+","+DPeriod+","+JPeriod+")"); SetIndexLabel(1,"K"); SetIndexLabel(2,"D"); SetIndexLabel(3,"J"); //---- draw_begin1=KPeriod+JPeriod; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); 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
风雨无阻
注册时间2004-03-27
发表于:2005-02-16 13:46只看该作者
8楼
Well done. Perfect!
jxq168
注册时间2004-07-28
发表于:2005-02-16 13:50只看该作者
9楼
Originally posted by 风雨无阻 at 2005-2-16 21:46 Well done. Perfect!
见笑! 请帮忙把第一根线弄掉。
风雨无阻
注册时间2004-03-27
发表于:2005-02-16 14:13只看该作者
10楼
#property indicator_buffers 4 #property indicator_color1 Black double ind_buffer4; SetIndexBuffer(0, ind_buffer1); 改一下这些句子,然后把曲线的序号重新安排一下,再试试看看行不行? [ Last edited by 风雨无阻 on 2005-2-16 at 22:16 ]
jxq168
注册时间2004-07-28
发表于:2005-02-17 03:36只看该作者
12楼
Originally posted by 风雨无阻 at 2005-2-16 22:13 #property indicator_buffers 4 #property indicator_color1 Black double ind_buffer4; SetIndexBuffer(0, ind_buffer1); 改一下这些句子,然后把曲线的序号重新安排一下,再试试看看行不 ...
谢谢,修改成功! [ Last edited by jxq168 on 2005-2-17 at 12:10 ]
jxq168
注册时间2004-07-28
发表于:2005-02-17 11:55只看该作者
13楼
应要求贴个图,没别的意思。未命名.JPG未命名.JPG
whclm
注册时间2005-01-18
楼主发表于:2005-02-17 12:14只看该作者
14楼
多谢两位
老正
注册时间2003-09-21
365热心助人奖
发表于:2005-05-30 02:05只看该作者
15楼
谁能把成品的代码贴上来?
行知合一
注册时间2005-05-11
发表于:2005-05-30 04:40只看该作者
16楼
//+------------------------------------------------------------------+ //| KDJ.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 Red #property indicator_color2 Yellow #property indicator_color3 Magenta //Aqua //---- input parameters 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 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(6); SetIndexBuffer(4, HighesBuffer); SetIndexBuffer(5, LowesBuffer); SetIndexBuffer(3, ind_buffer1); //---- 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); //---- name for DataWindow and indicator subwindow label IndicatorShortName("KDJ("+KPeriod+","+DPeriod+","+JPeriod+")"); SetIndexLabel(1,"K"); SetIndexLabel(2,"D"); SetIndexLabel(3,"J"); //---- draw_begin1=KPeriod+JPeriod; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); 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-05-11
发表于:2005-05-30 04:41只看该作者
17楼
以上的代码已经调试过了。
老正
注册时间2003-09-21
365热心助人奖
发表于:2005-05-30 04:53只看该作者
18楼
谢谢哈 建议贴代码的时候 看看这个帖子 http://www.talkfx.com/viewthread.php?tid=46049
个性签名

遇到矛盾 先站在对方的立场上想想问题,先试着去理解别人
如何使用WinMTR查询平台连接流畅度

富贵
注册时间2004-04-03
发表于:2005-05-30 20:22只看该作者
19楼
Originally posted by jxq168 at 2005-2-17 11:36 谢谢,修改成功!
谁把它传上来,共大家分享。
个性签名

讨论行情走势,交流心得体会

老正
注册时间2003-09-21
365热心助人奖
发表于:2005-05-30 23:51只看该作者
20楼
解压后 放入 MetaTrader 4\experts\indicators 目录里面 关闭mt4 从新打开 然后在导航的自定义指标里就可以找到了 或者 在 插入 技术指标 自定义指标 里面找到 talkforex-kdj-by-MayMay.mq4 这个指标 点击后就会出现图了 [ 本帖最后由 老正 于 2005-11-9 15:31 编辑 ]talkforex-kdj-by-MayMay.zip
个性签名

遇到矛盾 先站在对方的立场上想想问题,先试着去理解别人
如何使用WinMTR查询平台连接流畅度

  • 1
  • 2
  • 3
  • 4
前往
共 71 条

本站免责声明:

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

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

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

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

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

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