[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 443 1...436437438439440441442443444445446447448449450...1145 新评论 keekkenen 2010.02.24 08:52 #4421 是的,我知道... [删除] 2010.02.24 08:53 #4422 也许我不明白? 这样的一句话。 if( MACD[ i] < 0) ExtMapBuffer2[ i] = High[ i]+iATR(Symbol(), 0, 14, i); 将MACDa值与零进行比较,如果条件符合,就会画出一个箭头。 它是如何工作的? if (MACD[i] * MACD[i+1]<0) { 它是怎么做的?如果MACD[i]>0并且macd[i+1]也大于0,那么如何满足条件?????????????????? Victor Nikolaev 2010.02.24 09:04 #4423 igrok2008 писал(а)>> 也许我不明白? 这样的一句话。 将MACDa值与零进行比较,如果条件符合,就会画出一个箭头。 它是如何工作的? 这是什么意思?如果MACD[i]>0,并且MACD[i+1]也大于0,那么如何满足条件?????????????????? 如果前一个值与当前值的乘积小于零,那么这些值就在零线的不同一侧。 乘法比逻辑条件快10倍左右。我已经用一个乘法和一个逻辑条件代替了两个逻辑条件。 首先,我们检查是否有一个零线的交点。如果有一个交叉点,那么确定交叉点的方向。 [删除] 2010.02.24 09:31 #4424 请原谅,但我在执行该条件时遇到了困难。 MACD向上,越过N水平(当然,是减号)--画出一个箭头,NACD向下,越过N水平(+号)--画出一个箭头。 N级是一个特定的水平,比如对于CCI - 20和80。逻辑很清楚,但如何实现......?????。 Victor Nikolaev 2010.02.24 09:37 #4425 igrok2008 писал(а)>> 请原谅我,但我的条件是不可行的。 MACD向上,越过N水平(当然,是减号)--画出一个箭头,NACD向下,越过N水平(+号)--画出一个箭头。 N级是一个特定的水平,比如对于CCI - 20和80。逻辑很清楚,但如何实现......?????。 if ((MACD[i]-Level)*(MACD[i+1]-Level)<0) 这是一种水平渗透控制。在你的情况下,你将需要做两个控制。分别用于正负两个级别 [删除] 2010.02.24 09:53 #4426 Vinin >>: Это контроль пробития уровня. В твоем случае нужно будет делать два контроля. Для положительного и отрицательного Level отдельно 它是这样的吗? if ((MACD[i]-Level)*(MACD[i+1]-Level)<0) ((MACD[i]+Level)*(MACD[i+1]+Level)>0){ [删除] 2010.02.24 09:57 #4427 抱歉打扰了,你已经帮我定义了NonLagDOT指标的输入参数,并通过iCustom()函数将其输出到专家顾问中。 请告知如何为该指标开立订单。 /+------------------------------------------------------------------+ ||NonLagDOT.mq4 | //| Copyright © 2009, MetaQuotes Software Corp. //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, MetaQuotes Software Corp. #属性链接 "http://www.metaquotes.net" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 黄色 #property indicator_width1 1 #property indicator_color2 RoyalBlue #property indicator_width2 1 #property indicator_color3 Red #property indicator_width3 1 //---- 输入参数 外来的int Price = 0; 外部int Length = 20; extern intplace Displace = 0; 外来的int Filter = 0; 外来的int Color = 1; 外部int ColorBarBack = 0; 外来的双倍偏差 = 0; double Cycle = 4; //---- 指示器缓冲区 双重MABuffer[]。 双倍UpBuffer[]。 双重DnBuffer[]。 双倍价格[]。 双重趋势[]。 //+------------------------------------------------------------------+ //|自定义指标初始化功能 //+------------------------------------------------------------------+ int init() { int ft=0。 string short_name; //---- 指标线 IndicatorBuffers(5)。 SetIndexStyle(0,DRAW_ARROW)。 SetIndexBuffer(0,MABuffer)。 SetIndexStyle(1,DRAW_ARROW)。 SetIndexBuffer(1,UpBuffer)。 SetIndexStyle(2,DRAW_ARROW)。 SetIndexBuffer(2,DnBuffer)。 SetIndexBuffer(3,price)。 SetIndexBuffer(4,trend)。 IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS))。 SetIndexArrow(0,159); SetIndexArrow(1,159); SetIndexArrow(2,159); SetIndexArrow(3,159); //---- DataWindow和指标子窗口标签的名称 short_name="NonLagDot("+Length+")"。 IndicatorShortName(short_name)。 SetIndexLabel(0, "NLD")。 SetIndexLabel(1, "Up")。 SetIndexLabel(2, "Dn")。 //---- SetIndexShift(0,Displace)。 SetIndexShift(1,Displace)。 SetIndexShift(2,Displace)。 SetIndexDrawBegin(0,Length*Cycle+Length)。 SetIndexDrawBegin(1,Length*Cycle+Length)。 SetIndexDrawBegin(2,Length*Cycle+Length)。 //---- return(0); } //+------------------------------------------------------------------+ //| NonLagMA_v4 | //+------------------------------------------------------------------+ int start() { int i,shift, counted_bars=IndicatorCounted(),limit; double alfa,beta,t,Sum,Weight,step,g; 双重π=3.1415926535。 double Coeff = 3*pi; int Phase = Length-1; double Len = Length*Cycle + Phase; 如果( counted_bars > 0 ) limit=Bars-counted_bars。 如果( counted_bars < 0 ) 返回(0)。 如果( counted_bars ==0 ) limit=Bars-Len-1。 如果( counted_bars < 1 ) for(i=1;i<Length*Cycle+Length;i++) { MABuffer[Bars-i]=0。 UpBuffer[Bars-i]=0。 DnBuffer[Bars-i]=0。 } 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。 //如果(shift>=1) price[i] = iMA(NULL,0,Per,Displace,Mode,Price,shift+i)。 //其他 price[i] = iMA(NULL,0,1,0,MODE_SMA,Price, shift+i); Sum += alfa*price[i]; 重量 += alfa; 如果 ( t < 1 ) t += 1.0/(Phase-1); else if ( t < Len-1 ) t += (2*Cycle-1)/(Cycle*Length-1) 。 } 如果(重量>0)MABuffer[shift]=(1.0+Deviation/100)*Sum/Weight。 如果(Filter>0) { 如果( MathAbs(MABuffer[shift]-MABuffer[shift+1]) < Filter*Point ) MABuffer[shift]=MABuffer[shift+1]; } 如果(颜色>0) { trend[shift]=trend[shift+1]。 如果(MABuffer[shift]-MABuffer[shift+1]>Filter*Point) trend[shift]=1。 如果(MABuffer[shift+1]-MABuffer[shift]>Filter*Point) trend[shift]=-1。 如果(趋势[shift]>0) { UpBuffer[shift] = MABuffer[shift]。 如果(趋势[shift+ColorBarBack]<0)UpBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack]。 DnBuffer[shift] = 0。 } 如果(趋势[shift]<0) { DnBuffer[shift] = MABuffer[shift]。 如果(趋势[shift+ColorBarBack]>0)DnBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack]。 UpBuffer[shift] = 0。 } } } return(0); } 将免费为您创建专家顾问! [WARNING CLOSED!] Any newbie 编码帮助 Victor Nikolaev 2010.02.24 09:58 #4428 igrok2008 писал(а)>> 它是这样的吗? if (( MACD[ i]- LevelUP)*( MACD[ i+1]- LevelUP)<0) { if ( MACD[ i]- Level>0) {//} } if (( MACD[ i]- LevelDN)*( MACD[ i+1]- LevelDN)<0){ if ( MACD[ i]- LevelDN<0) {//} } 它可能是这样的。只要你知道自己在做什么。显然,我让你很为难 [删除] 2010.02.24 10:01 #4429 请解释LevelUP和LevelDN这两个术语 Victor Nikolaev 2010.02.24 10:10 #4430 igrok2008 писал(а)>> 请解释LevelUP和LevelDN这两个术语 LevelUP--积极的水平 LevelDN--负数水平。 一般来说,它们的绝对值是相等的。 如果它们是相等的,可以用 if (( MACD[ i]- Level)*( MACD[ i+1]- Level)<0) { if ( MACD[ i]- Level>0) {//} } if (( MACD[ i]+ LevelDN)*( MACD[ i+1]+ LevelDN)<0){ if ( MACD[ i]+ Level<0) {//} } 1...436437438439440441442443444445446447448449450...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,我知道...
也许我不明白?
这样的一句话。
将MACDa值与零进行比较,如果条件符合,就会画出一个箭头。
它是如何工作的?
它是怎么做的?如果MACD[i]>0并且macd[i+1]也大于0,那么如何满足条件??????????????????
也许我不明白?
这样的一句话。
将MACDa值与零进行比较,如果条件符合,就会画出一个箭头。
它是如何工作的?
这是什么意思?如果MACD[i]>0,并且MACD[i+1]也大于0,那么如何满足条件??????????????????
如果前一个值与当前值的乘积小于零,那么这些值就在零线的不同一侧。
乘法比逻辑条件快10倍左右。我已经用一个乘法和一个逻辑条件代替了两个逻辑条件。
首先,我们检查是否有一个零线的交点。如果有一个交叉点,那么确定交叉点的方向。
请原谅,但我在执行该条件时遇到了困难。
MACD向上,越过N水平(当然,是减号)--画出一个箭头,NACD向下,越过N水平(+号)--画出一个箭头。
N级是一个特定的水平,比如对于CCI - 20和80。逻辑很清楚,但如何实现......?????。
请原谅我,但我的条件是不可行的。
MACD向上,越过N水平(当然,是减号)--画出一个箭头,NACD向下,越过N水平(+号)--画出一个箭头。
N级是一个特定的水平,比如对于CCI - 20和80。逻辑很清楚,但如何实现......?????。
Это контроль пробития уровня. В твоем случае нужно будет делать два контроля. Для положительного и отрицательного Level отдельно
它是这样的吗?
抱歉打扰了,你已经帮我定义了NonLagDOT指标的输入参数,并通过iCustom()函数将其输出到专家顾问中。
请告知如何为该指标开立订单。
/+------------------------------------------------------------------+||NonLagDOT.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp.
#属性链接 "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 黄色
#property indicator_width1 1
#property indicator_color2 RoyalBlue
#property indicator_width2 1
#property indicator_color3 Red
#property indicator_width3 1
//---- 输入参数
外来的int Price = 0;
外部int Length = 20;
extern intplace Displace = 0;
外来的int Filter = 0;
外来的int Color = 1;
外部int ColorBarBack = 0;
外来的双倍偏差 = 0;
double Cycle = 4;
//---- 指示器缓冲区
双重MABuffer[]。
双倍UpBuffer[]。
双重DnBuffer[]。
双倍价格[]。
双重趋势[]。
//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
int init()
{
int ft=0。
string short_name;
//---- 指标线
IndicatorBuffers(5)。
SetIndexStyle(0,DRAW_ARROW)。
SetIndexBuffer(0,MABuffer)。
SetIndexStyle(1,DRAW_ARROW)。
SetIndexBuffer(1,UpBuffer)。
SetIndexStyle(2,DRAW_ARROW)。
SetIndexBuffer(2,DnBuffer)。
SetIndexBuffer(3,price)。
SetIndexBuffer(4,trend)。
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS))。
SetIndexArrow(0,159);
SetIndexArrow(1,159);
SetIndexArrow(2,159);
SetIndexArrow(3,159);
//---- DataWindow和指标子窗口标签的名称
short_name="NonLagDot("+Length+")"。
IndicatorShortName(short_name)。
SetIndexLabel(0, "NLD")。
SetIndexLabel(1, "Up")。
SetIndexLabel(2, "Dn")。
//----
SetIndexShift(0,Displace)。
SetIndexShift(1,Displace)。
SetIndexShift(2,Displace)。
SetIndexDrawBegin(0,Length*Cycle+Length)。
SetIndexDrawBegin(1,Length*Cycle+Length)。
SetIndexDrawBegin(2,Length*Cycle+Length)。
//----
return(0);
}
//+------------------------------------------------------------------+
//| NonLagMA_v4 |
//+------------------------------------------------------------------+
int start()
{
int i,shift, counted_bars=IndicatorCounted(),limit;
double alfa,beta,t,Sum,Weight,step,g;
双重π=3.1415926535。
double Coeff = 3*pi;
int Phase = Length-1;
double Len = Length*Cycle + Phase;
如果( counted_bars > 0 ) limit=Bars-counted_bars。
如果( counted_bars < 0 ) 返回(0)。
如果( counted_bars ==0 ) limit=Bars-Len-1。
如果( counted_bars < 1 )
for(i=1;i<Length*Cycle+Length;i++)
{
MABuffer[Bars-i]=0。
UpBuffer[Bars-i]=0。
DnBuffer[Bars-i]=0。
}
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。
//如果(shift>=1) price[i] = iMA(NULL,0,Per,Displace,Mode,Price,shift+i)。
//其他
price[i] = iMA(NULL,0,1,0,MODE_SMA,Price, shift+i);
Sum += alfa*price[i];
重量 += alfa;
如果 ( t < 1 ) t += 1.0/(Phase-1);
else if ( t < Len-1 ) t += (2*Cycle-1)/(Cycle*Length-1) 。
}
如果(重量>0)MABuffer[shift]=(1.0+Deviation/100)*Sum/Weight。
如果(Filter>0)
{
如果( MathAbs(MABuffer[shift]-MABuffer[shift+1]) < Filter*Point ) MABuffer[shift]=MABuffer[shift+1];
}
如果(颜色>0)
{
trend[shift]=trend[shift+1]。
如果(MABuffer[shift]-MABuffer[shift+1]>Filter*Point) trend[shift]=1。
如果(MABuffer[shift+1]-MABuffer[shift]>Filter*Point) trend[shift]=-1。
如果(趋势[shift]>0)
{
UpBuffer[shift] = MABuffer[shift]。
如果(趋势[shift+ColorBarBack]<0)UpBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack]。
DnBuffer[shift] = 0。
}
如果(趋势[shift]<0)
{
DnBuffer[shift] = MABuffer[shift]。
如果(趋势[shift+ColorBarBack]>0)DnBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack]。
UpBuffer[shift] = 0。
}
}
}
return(0);
}
它是这样的吗?
请解释LevelUP和LevelDN这两个术语
LevelUP--积极的水平
LevelDN--负数水平。
一般来说,它们的绝对值是相等的。
如果它们是相等的,可以用