非滞后工具 - 页 48 1...414243444546474849505152535455 新评论 Mladen Rakic 2014.05.18 08:15 #471 zilliq: 我们也使用弧度可能是一种解释。在MT4代码中,我们将阿尔法与价格相乘。 我想这是价格,我之前的périods,不是吗? 因此,我们需要添加,例如长度为5的情况下 alfa*close[4]+alfa*close[3]+alfa*close[2]+alfa*close[1] and alfa*close 或 alfa[4]*close[4]+alfa[3]*close[3]+alfa[2]*close[2]+alfa[1]*close[1] 和 alfa*close ? 这很奇怪,因为长度为1时,len等于4(4*1+0),所以nonlagma不可能等于close,因为我们把最后4期的alfa*price加在一起。 谢谢你接下来的评论 Zilliq 我使用了你的代码,但是为了更好的理解,我使用了NonlagMav3的最简单的代码 double pi = 3.1415926535; double Coeff = 3*pi; int Phase = Length-1; double Len = Length*Cycle + Phase; if ( counted_bars > 0 ) limit=Bars-counted_bars; if ( counted_bars < 0 ) return(0); 如果 ( counted_bars ==0 ) limit=Bars-Len-1; for(shift=limit;shift>=0;shift--) { Weight=0; Sum=0; t=0; for (i=0;i<=Len-1;i++) { g=1.0/(Coeff*t+1)。 如果(t <= 0.5 ) g = 1; beta = MathCos(pi*t)。 alfa = g * beta; 价格 = iMA(NULL,0,1,0,MODE_SMA,Price,shift+i)。 Sum += alfa*price; Weight += alfa; if ( t < 1 ) t += 1.0/(Phase-1); else if ( t < Len-1 ) t += (2*Cycle-1)/(Cycle*Length-1); } 如果(Weight > 0)MABuffer[shift] = Sum/Weight。 你应该使用alfa[4]*close[4]+alfa[3]*close[3]+alfa[2]*close[2]+alfa[1]*close[1]和alfa*close形式(每个元素的alpha都不同) 你为什么不做一个简单的版本,显示字母的值,并将其与metatrader 4中的字母值进行比较? zilliq 2014.05.18 08:48 #472 谢谢Mladen。 我将尝试这个 事实上,在MT4上,我有我的经纪人(Activtrade)的cfd价格,而在Prorealtime上,这是另一个现金流量,所以有一些很大的差异 非常感谢,回头见 Zilliq zilliq 2014.05.18 11:47 #473 我尝试了很多不同的方法,但都没有成功,我也不知道为什么。 我的代码似乎是好的。 **************************** weight=0 sum=0 for i=0 to Len 如果i<=相位1,那么 t = 1.0*i/(阶段1) 否则 t = 1.0 + (i-Phase+1)*(2.0*Cyclee-1.0) /(Cyclee*Length-1.0) 结束语 beta = Cos(pi*t) g = 1.0/(Coeff*t+1) 如果t <= 0.5 那么 g = 1 endif alfa = g * beta sum=sum+alfa*close weight=weight+alfa 接下来 nonlagma=sum/weight *************************** 和你的相似,但是你在我的图上看到,nonlagma离close很远。 你知道为什么吗?你有Easy语言的NonlagMa代码吗(通常更容易抄写)? 非常感谢Mladen,我很累了... 见U Zilliq 附加的文件: cac40_index_5.png 33 kb Nonlagging Tools Help with a simple Need help for convert Mladen Rakic 2014.05.18 12:04 #474 zilliq: 好吧,我尝试了很多不同的方法,但都没有成功,我也不知道为什么 。我的代码似乎是可以的。 **************************** weight=0 sum=0 for i=0 to Len 如果i<=相位1,那么 t = 1.0*i/(阶段1) 否则 t = 1.0 + (i-Phase+1)*(2.0*Cyclee-1.0) /(Cyclee*Length-1.0) 结束语 beta = Cos(pi*t) g = 1.0/(Coeff*t+1) 如果t <= 0.5 那么 g = 1 endif alfa = g * beta sum=sum+alfa*close weight=weight+alfa 接下来 nonlagma=sum/weight *************************** 和你的相似,但是你在我的图上看到,nonlagma离close很远。 你知道为什么吗?你有Easy语言的NonlagMa代码吗(通常更容易抄写)? 非常感谢Mladen,我很累了... 见U Zilliq 这里有一个只计算字母的版本:_nonlag_ma_alphas.mq4 在protrader中做一个类似的东西。一旦它们是相同的,之后应该很容易使非滞后马也是相同的。这个例子是针对50期的 附加的文件: alphas.gif 66 kb _nonlag_ma_alphas.mq4 4 kb zilliq 2014.05.18 13:18 #475 非常感谢Mladen。 我将用这第一步进行测试 见U Zilliq zilliq 2014.05.18 14:11 #476 好吧。 首先:好消息是我有和你一样的欧元/美元,因为这将更容易比较 但实际上我并没有成功 你计算阿尔法的代码是。 double Cycle = 4.0; double Coeff = 3.0*Pi; int Phase = NlmPeriod-1; int len = NlmPeriod*4 + Phase; if (ArraySize(alphas) != len) ArrayResize(alphas,len)。 for (int k=0; k<len; k++) { 如果(k<=Phase-1) double t = 1.0 * k/(Phase-1); 否则t = 1.0 + (k-Phase+1)*(2.0*Cycle-1.0)/(Cycle*NlmPeriod-1.0)。 double beta = MathCos(Pi*t); double g = 1.0/(Coeff*t+1); if (t <= 0.5 ) g = 1; alphas[k] = g * beta。 } for(int i=len-1; i>=0; i--) nlm = alphas; 所以,如果我有很好的理解。 1/ 第一段:它计算从0到len-1的所有alphas。 这就是。 alphas[k] = g * beta。 2/ 第二步,它将所有从0到len-1的字母加起来 这就是 for(int i=len-1; i>=0; i--) nlm = alphas; 问题是,我的图上总是有相同的字母?你怎么能在每根蜡烛上有不同的阿尔法,因为k、t等在每根蜡烛上都是一样的,而且不取决于收盘? 我在Prorealtime上的代码似乎是一样的。 Pi=3.14159265358979323846264338327950288 Cyclee = 4.0 Coeff = 3.0*Pi 相位=NlmPeriod-1 len = NlmPeriod*4 + Phase alph=0 for k=0 to len-1 t=0 如果(k<=Phase-1) 那么 t = 1.0 * k/(Phase-1) 否则 t = 1.0 + (k-Phase+1)*(2.0*Cyclee-1.0)/(Cyclee*NlmPeriod-1.0) 结束语 beta = Cos(Pi*t) g = 1.0/(Coeff*t+1) 如果(t <= 0.5 ) 那么 g = 1 endif alphas= g * beta alph=alph+alphas 接下来 Nonlagging Tools New metatrader 4 compatible [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 Mladen Rakic 2014.05.18 14:15 #477 zilliq: 好吧。首先:好消息是我有和你一样的欧元/美元,因为这样更容易比较。 但实际上我并没有成功 你计算阿尔法的代码是。 double Cycle = 4.0; double Coeff = 3.0*Pi; int Phase = NlmPeriod-1; int len = NlmPeriod*4 + Phase; if (ArraySize(alphas) != len) ArrayResize(alphas,len)。 for (int k=0; k<len; k++) { 如果(k<=Phase-1) double t = 1.0 * k/(Phase-1); 否则t = 1.0 + (k-Phase+1)*(2.0*Cycle-1.0)/(Cycle*NlmPeriod-1.0)。 double beta = MathCos(Pi*t); double g = 1.0/(Coeff*t+1); if (t <= 0.5 ) g = 1; alphas[k] = g * beta。 } for(int i=len-1; i>=0; i--) nlm = alphas; 所以,如果我有很好的理解。 1/ 第一段:它计算从0到len-1的所有alphas。 这就是。 alphas[k] = g * beta。 2/ 第二步,它将所有从0到len-1的字母加起来 这就是 for(int i=len-1; i>=0; i--) nlm = alphas; 问题是,我的图上总是有相同的字母?你怎么能在每根蜡烛上有不同的阿尔法,因为k、t等在每根蜡烛上都是一样的,而且不取决于收盘? 我在Prorealtime上的代码似乎是一样的。 Pi=3.14159265358979323846264338327950288 Cyclee = 4.0 Coeff = 3.0*Pi 相位=NlmPeriod-1 len = NlmPeriod*4 + Phase alph=0 for k=0 to len-1 t=0 如果(k<=Phase-1) 那么 t = 1.0 * k/(Phase-1) 否则 t = 1.0 + (k-Phase+1)*(2.0*Cyclee-1.0)/(Cyclee*NlmPeriod-1.0) 结束语 beta = Cos(Pi*t) g = 1.0/(Coeff*t+1) 如果(t <= 0.5 ) 那么 g = 1 endif alphas= g * beta alph=alph+alphas 下一个 Zilliq 正如我所说的:有一个数组的alphas 我所显示的是一个阿尔法数组--不考虑时间部分。这些是阿尔法数组中每一个阿尔法值的值,这些是应用于每个价格元素的权重,你用来计算的。 zilliq 2014.05.18 14:31 #478 我可能不明白你所说的字母阵列是什么意思(我理解的是每支蜡烛上的字母不同),抱歉 我将再试一次... Mladen Rakic 2014.05.18 14:36 #479 zilliq: 我可能不理解你所说的字母阵列(我理解的是每支蜡烛上的不同字母),对不起。 我将再试一次... Zilliq 价格0的系数(α)==1 价格1的系数(α)==0.9nnnnn 以此类推(因为它是由非滞后指数指标显示的),所有这些都用于连价,以获得当前的非滞后指数值。 zilliq 2014.05.18 14:50 #480 好的,我想我理解了你的解释(你是伟大的 ),我用你的代码在MT4上做了不同的测试 从1到len-1的不同值的阿尔法思考价格,最后我们除以阿尔法的总和。 这就是为什么右边的第一个字母值总是1,这就是为什么即使我们改变ne nlm值,图形上的字母方面总是相同的那种蛇)。 好吧,我知道我需要寻求如何在Prorealtime上做到这一点...。 1...414243444546474849505152535455 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我们也使用弧度
可能是一种解释。在MT4代码中,我们将阿尔法与价格相乘。
我想这是价格,我之前的périods,不是吗?
因此,我们需要添加,例如长度为5的情况下
alfa*close[4]+alfa*close[3]+alfa*close[2]+alfa*close[1] and alfa*close
或
alfa[4]*close[4]+alfa[3]*close[3]+alfa[2]*close[2]+alfa[1]*close[1] 和 alfa*close ?
这很奇怪,因为长度为1时,len等于4(4*1+0),所以nonlagma不可能等于close,因为我们把最后4期的alfa*price加在一起。
谢谢你接下来的评论![](https://c.mql5.com/forextsd/smiles/nerd.png)
Zilliq
我使用了你的代码,但是为了更好的理解,我使用了NonlagMav3的最简单的代码
double pi = 3.1415926535;
double Coeff = 3*pi;
int Phase = Length-1;
double Len = Length*Cycle + Phase;
if ( counted_bars > 0 ) limit=Bars-counted_bars;
if ( counted_bars < 0 ) return(0);
如果 ( counted_bars ==0 ) limit=Bars-Len-1;
for(shift=limit;shift>=0;shift--)
{
Weight=0; Sum=0; t=0;
for (i=0;i<=Len-1;i++)
{
g=1.0/(Coeff*t+1)。
如果(t <= 0.5 ) g = 1;
beta = MathCos(pi*t)。
alfa = g * beta;
价格 = iMA(NULL,0,1,0,MODE_SMA,Price,shift+i)。
Sum += alfa*price;
Weight += alfa;
if ( t < 1 ) t += 1.0/(Phase-1);
else if ( t < Len-1 ) t += (2*Cycle-1)/(Cycle*Length-1);
}
如果(Weight > 0)MABuffer[shift] = Sum/Weight。你应该使用alfa[4]*close[4]+alfa[3]*close[3]+alfa[2]*close[2]+alfa[1]*close[1]和alfa*close形式(每个元素的alpha都不同)
你为什么不做一个简单的版本,显示字母的值,并将其与metatrader 4中的字母值进行比较?
谢谢Mladen。
我将尝试这个
事实上,在MT4上,我有我的经纪人(Activtrade)的cfd价格,而在Prorealtime上,这是另一个现金流量,所以有一些很大的差异
非常感谢,回头见
Zilliq
我尝试了很多不同的方法,但都没有成功,我也不知道为什么。![](https://c.mql5.com/forextsd/smiles/cry_smile.png)
我的代码似乎是好的。
****************************
weight=0
sum=0
for i=0 to Len
如果i<=相位1,那么
t = 1.0*i/(阶段1)
否则
t = 1.0 + (i-Phase+1)*(2.0*Cyclee-1.0) /(Cyclee*Length-1.0)
结束语
beta = Cos(pi*t)
g = 1.0/(Coeff*t+1)
如果t <= 0.5 那么
g = 1
endif
alfa = g * beta
sum=sum+alfa*close
weight=weight+alfa
接下来
nonlagma=sum/weight
***************************
和你的相似,但是你在我的图上看到,nonlagma离close很远。
你知道为什么吗?你有Easy语言的NonlagMa代码吗(通常更容易抄写)?
非常感谢Mladen,我很累了...
见U
Zilliq
好吧,我尝试了很多不同的方法,但都没有成功,我也不知道为什么
我的代码似乎是可以的。
****************************
weight=0
sum=0
for i=0 to Len
如果i<=相位1,那么
t = 1.0*i/(阶段1)
否则
t = 1.0 + (i-Phase+1)*(2.0*Cyclee-1.0) /(Cyclee*Length-1.0)
结束语
beta = Cos(pi*t)
g = 1.0/(Coeff*t+1)
如果t <= 0.5 那么
g = 1
endif
alfa = g * beta
sum=sum+alfa*close
weight=weight+alfa
接下来
nonlagma=sum/weight
***************************
和你的相似,但是你在我的图上看到,nonlagma离close很远。
你知道为什么吗?你有Easy语言的NonlagMa代码吗(通常更容易抄写)?
非常感谢Mladen,我很累了...
见U
Zilliq
这里有一个只计算字母的版本:_nonlag_ma_alphas.mq4
在protrader中做一个类似的东西。一旦它们是相同的,之后应该很容易使非滞后马也是相同的。这个例子是针对50期的
非常感谢Mladen。
我将用这第一步进行测试
见U![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)
Zilliq
好吧。
首先:好消息是我有和你一样的欧元/美元,因为这将更容易比较![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
但实际上我并没有成功
你计算阿尔法的代码是。
double Cycle = 4.0;
double Coeff = 3.0*Pi;
int Phase = NlmPeriod-1;
int len = NlmPeriod*4 + Phase;
if (ArraySize(alphas) != len) ArrayResize(alphas,len)。
for (int k=0; k<len; k++)
{
如果(k<=Phase-1)
double t = 1.0 * k/(Phase-1);
否则t = 1.0 + (k-Phase+1)*(2.0*Cycle-1.0)/(Cycle*NlmPeriod-1.0)。
double beta = MathCos(Pi*t);
double g = 1.0/(Coeff*t+1); if (t <= 0.5 ) g = 1;
alphas[k] = g * beta。
}
for(int i=len-1; i>=0; i--) nlm = alphas;
所以,如果我有很好的理解。
1/ 第一段:它计算从0到len-1的所有alphas。
这就是。
alphas[k] = g * beta。
2/ 第二步,它将所有从0到len-1的字母加起来
这就是
for(int i=len-1; i>=0; i--) nlm = alphas;
问题是,我的图上总是有相同的字母?你怎么能在每根蜡烛上有不同的阿尔法,因为k、t等在每根蜡烛上都是一样的,而且不取决于收盘?
我在Prorealtime上的代码似乎是一样的。
Pi=3.14159265358979323846264338327950288
Cyclee = 4.0
Coeff = 3.0*Pi
相位=NlmPeriod-1
len = NlmPeriod*4 + Phase
alph=0
for k=0 to len-1
t=0
如果(k<=Phase-1) 那么
t = 1.0 * k/(Phase-1)
否则
t = 1.0 + (k-Phase+1)*(2.0*Cyclee-1.0)/(Cyclee*NlmPeriod-1.0)
结束语
beta = Cos(Pi*t)
g = 1.0/(Coeff*t+1)
如果(t <= 0.5 ) 那么
g = 1
endif
alphas= g * beta
alph=alph+alphas
接下来
好吧。
首先:好消息是我有和你一样的欧元/美元,因为这样更容易比较。![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
但实际上我并没有成功
你计算阿尔法的代码是。
double Cycle = 4.0;
double Coeff = 3.0*Pi;
int Phase = NlmPeriod-1;
int len = NlmPeriod*4 + Phase;
if (ArraySize(alphas) != len) ArrayResize(alphas,len)。
for (int k=0; k<len; k++)
{
如果(k<=Phase-1)
double t = 1.0 * k/(Phase-1);
否则t = 1.0 + (k-Phase+1)*(2.0*Cycle-1.0)/(Cycle*NlmPeriod-1.0)。
double beta = MathCos(Pi*t);
double g = 1.0/(Coeff*t+1); if (t <= 0.5 ) g = 1;
alphas[k] = g * beta。
}
for(int i=len-1; i>=0; i--) nlm = alphas;
所以,如果我有很好的理解。
1/ 第一段:它计算从0到len-1的所有alphas。
这就是。
alphas[k] = g * beta。
2/ 第二步,它将所有从0到len-1的字母加起来
这就是
for(int i=len-1; i>=0; i--) nlm = alphas;
问题是,我的图上总是有相同的字母?你怎么能在每根蜡烛上有不同的阿尔法,因为k、t等在每根蜡烛上都是一样的,而且不取决于收盘?
我在Prorealtime上的代码似乎是一样的。
Pi=3.14159265358979323846264338327950288
Cyclee = 4.0
Coeff = 3.0*Pi
相位=NlmPeriod-1
len = NlmPeriod*4 + Phase
alph=0
for k=0 to len-1
t=0
如果(k<=Phase-1) 那么
t = 1.0 * k/(Phase-1)
否则
t = 1.0 + (k-Phase+1)*(2.0*Cyclee-1.0)/(Cyclee*NlmPeriod-1.0)
结束语
beta = Cos(Pi*t)
g = 1.0/(Coeff*t+1)
如果(t <= 0.5 ) 那么
g = 1
endif
alphas= g * beta
alph=alph+alphas
下一个Zilliq
正如我所说的:有一个数组的alphas
我所显示的是一个阿尔法数组--不考虑时间部分。这些是阿尔法数组中每一个阿尔法值的值,这些是应用于每个价格元素的权重,你用来计算的。
我可能不明白你所说的字母阵列是什么意思(我理解的是每支蜡烛上的字母不同),抱歉
我将再试一次...
我可能不理解你所说的字母阵列(我理解的是每支蜡烛上的不同字母),对不起。
我将再试一次...Zilliq
价格0的系数(α)==1
价格1的系数(α)==0.9nnnnn
以此类推(因为它是由非滞后指数指标显示的),所有这些都用于连价,以获得当前的非滞后指数值。
好的,我想我理解了你的解释(你是伟大的
),我用你的代码在MT4上做了不同的测试
从1到len-1的不同值的阿尔法思考价格,最后我们除以阿尔法的总和。
这就是为什么右边的第一个字母值总是1,这就是为什么即使我们改变ne nlm值,图形上的字母方面总是相同的那种蛇)。
好吧,我知道我需要寻求如何在Prorealtime上做到这一点...。![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)