[MT4指标]kdj指标 mt4
发表于:2005-06-04 08:52只看该作者
21楼 电梯直达
Originally posted by 老正 at 2005-5-31 07:51 解压后 放入 MetaTrader 4\experts\indicators 目录里面 关闭mt4 从新打开 然后在导航的自定义指标里就可以找到了 或者 在 插入 技术指标 自定义指标 里面找到 talkforex-kdj-by-xzhy.mq4 这个指标 点击后 ...
发表于:2005-06-05 01:31只看该作者
22楼
4楼的那个帖子应该说的是正确的
遇到矛盾 先站在对方的立场上想想问题,先试着去理解别人
● 如何使用WinMTR查询平台连接流畅度
发表于:2005-07-30 20:54只看该作者
23楼
谢谢,正班,下了研究一下.
发表于:2005-08-03 14:21只看该作者
24楼
应是:
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("KDJ("+KPeriod+","+DPeriod+","+JPeriod+")");
SetIndexLabel(0,"K");
SetIndexLabel(1,"D");
SetIndexLabel(2,"J");
//----
发表于:2005-08-04 01:39只看该作者
25楼
哦 能否把所有的源码贴上来
谢谢
遇到矛盾 先站在对方的立场上想想问题,先试着去理解别人
● 如何使用WinMTR查询平台连接流畅度
发表于:2005-08-04 02:33只看该作者
26楼
原帖由 老正 于 2005-8-4 09:39 发表 哦 能否把所有的源码贴上来 谢谢
韬客社区www.talkfx.co
发表于:2005-10-02 12:17只看该作者
27楼
好极了 有没有MT3的 KDJ啊 谢谢老师了
发表于:2005-11-09 07:00只看该作者
28楼
原帖由 老正 于 2005-5-31 07:51 发表 解压后 放入 MetaTrader 4\experts\indicators 目录里面 关闭mt4 从新打开 然后在导航的自定义指标里就可以找到了 或者 在 插入 技术指标 自定义指标 里面找到 talkforex-kdj-by-xzhy.mq4 这个指标 点击后 ...
韬客社区www.talkfx.co
发表于:2005-11-09 07:33只看该作者
29楼
从新修改了下 把20楼的文件也更新成MayMay朋友的了
从新下载吧 然后在图上用鼠标放在相关的线上 就知道每根的含义了
发表于:2005-12-23 06:21只看该作者
31楼
已经下载 效果不错!!!!
韬客社区www.talkfx.co
发表于:2005-12-26 16:34只看该作者
32楼
感谢
韬客社区www.talkfx.co
发表于:2005-12-28 16:49只看该作者
33楼
学习,学习,再学习.
韬客社区www.talkfx.co
发表于:2006-03-24 23:30只看该作者
34楼
谢谢,最近正在研究这个呢
韬客社区www.talkfx.co
发表于:2006-07-01 09:49只看该作者
35楼
对比过图形,与国内的KDJ还是不同。
关键是这一段代码:
//---- %K line
i=Bars-draw_begin1;
if(counted_bars>draw_begin1) i=Bars-counted_bars-1;
while(i>=0)
{
double sumlow=0.0;
double sumhigh=0.0;
for(k=(i+Slowing-1);k>=i;k--)
{
sumlow+=Close[k]-LowesBuffer[k];
sumhigh+=HighesBuffer[k]-LowesBuffer[k];
}
if(sumhigh==0.0) MainBuffer=100.0;
else MainBuffer=sumlow/sumhigh*100;
i--;
}
没法理解,MainBuffer 应该是RSV,按国内的KDJ中的算法,
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
应该直接减就是了,不需要进行累加啊。主要的差异在这里,而不是新旧版本KDJ的关系吧
还有一点不清楚的,就是MT中有没有 SMA函数, iMAOnArray(MODE_SMA)应该相当于国内的MA函数,
而 iMAOnArray(MODE_LWMA), 线性加权移动平均,那个权值在哪里指定呢? 或者说,不需要指定权值,固定就是1了?
韬客社区www.talkfx.co
发表于:2006-07-01 11:32只看该作者
36楼
//+------------------------------------------------------------------+
//| KDJ.mq4 |
//| Copyright 2006, raidsan. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 White
#property indicator_color2 Yellow
#property indicator_color3 Magenta
//---- input parameters
extern int NPeriod=9;
extern int KPeriod=3;
extern int DPeriod=3;
double RSV;
double KBuffer;
double DBuffer;
double **uffer;
double HighesBuffer;
double LowesBuffer;
int draw_begin_K = 0;
int draw_begin_D = 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, RSV);
//---- indicator lines
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0, KBuffer); //k
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1, DBuffer); //d
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2, **uffer); //j
//---- name for DataWindow and indicator subwindow label
string shortname = "KDJ("+NPeriod+","+KPeriod+","+DPeriod+")";
IndicatorShortName(shortname);
SetIndexLabel(0,"K");
SetIndexLabel(1,"D");
SetIndexLabel(2,"J");
SetLevelValue(0,0);
SetLevelValue(1,20);
SetLevelValue(2,50);
SetLevelValue(3,80);
SetLevelValue(4,100);
//----
draw_begin_K = NPeriod+KPeriod;
draw_begin_D = draw_begin_K+DPeriod;
SetIndexDrawBegin(0,draw_begin_K);
SetIndexDrawBegin(1,draw_begin_D);
SetIndexDrawBegin(2,draw_begin_D);
SetIndexEmptyValue(0,0);
SetIndexEmptyValue(1,0);
SetIndexEmptyValue(2,0);
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int start()
{
int i,k;
int counted_bars=IndicatorCounted();
double price;
//----
if(Bars<=NPeriod)
return(0);
//---- initial zero
if(counted_bars<1)
{
for(i=1;i<=draw_begin_K;i++) KBuffer[Bars-i]=0;
for(i=1;i<=draw_begin_D;i++) DBuffer[Bars-i]=0;
for(i=1;i<=draw_begin_D;i++) **uffer[Bars-i]=0;
}
//---- minimums counting
i=Bars-NPeriod;
if(counted_bars>NPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
double min=1000000;
k=i+NPeriod-1;
while(k>=i)
{
price=Low[k];
if(min>price) min=price;
k--;
}
LowesBuffer=min;
i--;
}
//---- maximums counting
i=Bars-NPeriod;
if(counted_bars>NPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
double max=-1000000;
k=i+NPeriod-1;
while(k>=i)
{
price=High[k];
if(max0)
counted_bars--;
//K
if(counted_bars>=draw_begin_K)
i=Bars-counted_bars-1;
else
i=Bars-draw_begin_K-1;
while(i>=0)
{
KBuffer = (RSV + (KPeriod-1)*KBuffer[i+1] ) / KPeriod; //k
i --;
}
//J
if(counted_bars>=draw_begin_D)
i=Bars-counted_bars-1;
else
i=Bars-draw_begin_D-1;
while(i>=0)
{
DBuffer = (1* KBuffer + (DPeriod-1)*DBuffer[i+1] ) / DPeriod; //D
**uffer=3*KBuffer-2*DBuffer;
i--;
}
//----
return(0);
}
//+------------------------------------------------------------------+
[ 本帖最后由 raidsan 于 2006-7-1 19:33 编辑 ]
韬客社区www.talkfx.co
发表于:2006-07-01 11:38只看该作者
37楼
莫名奇妙,上传了几次,加, 禁用Discuz! 代码,还是有些部分被屏蔽了,自己查找:**uffer, 替换成: "J-Buffer"吧,看来是网站自动过滤了"J-B"两个字母
韬客社区www.talkfx.co
发表于:2006-12-30 08:21只看该作者
39楼
谢谢
韬客社区www.talkfx.co
发表于:2007-01-05 02:42只看该作者
40楼
多谢
韬客社区www.talkfx.co