分形指标在MT4里是内置指标
函数是:
上分形:iFractals(NULL,0,MODE_UPPER,shift)
下分形:iFractals( NULL,0,MODE_LOWER,shift)
根据这个函数,我定义了两个数组:
double upper_fractal[3];
double down_fractal[3];
可以得到:
上分形的值
upper_fractal[0]=?
upper_fractal[1]=?
upper_fractal[2]=?
和下分形的值
down_fractal[0]=?
down_fractal[1]=?
down_fractal[2]=?
代码如下:
double upper_fractal[3];
double down_fractal[3];
{
for(int l=0;l0)
{
if(n>2)
{
break;
}
upper_fractal[n]=iFractals(NULL,0,MODE_UPPER,l);
n++;
}
for(int x=0;x0)
{
if(m>2)
{
break;
}
down_fractal[m]=iFractals(NULL,0,MODE_LOWER,x);
m++;
}
}
return(0);
}
}
在实际的应用中却又出现了问题,每到市场数据发生变化,产生新的上分形和新的下分形的时候,好像这几个数组的值没有及时更新,于是就出现了错误,或者成交一次以后市场价格变化了就不再成交,或者不能成交,或者显示invalid Value of TakeProfit之类的问题(因为我的止损、止盈是和upper_fractal[ ]、down_fractal[ ]相关的)。
我查阅了很多资料,是不是因为占用内存缓存,MT4的数组是存在内存缓存里的,不能及时更新。
难道必须用C语言方案写一个外部链接文件存储和调用数组么?
谁能给解决一下新的分形产生时数组如何及时更新?
- 遇到严重的死循环求助
- 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论
- [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5.
peiyingxuan:
分形指标在MT4里是内置指标 函数是: 上分形:iFractals(NULL,0,MODE_UPPER,shift) 下分形:iFractals( NULL,0,MODE_LOWER,shift) 根据这个函数,我定义了两个数组: double upper_fractal[3]; double down_fractal[3]; 可以得到: 上分形的值 upper_fractal[0]=? upper_fractal[1]=? upper_fractal[2]=? 和下分形的值 down_fractal[0]=? down_fractal[1]=? down_fractal[2]=? 代码如下: double upper_fractal[3]; double down_fractal[3]; { for(int l=0;l0) { if(n>2) { break; } upper_fractal[n]=iFractals(NULL,0,MODE_UPPER,l); n++; } for(int x=0;x0) { if(m>2) { break; } down_fractal[m]=iFractals(NULL,0,MODE_LOWER,x); m++; } } return(0); } } 在实际的应用中却又出现了问题,每到市场数据发生变化,产生新的上分形和新的下分形的时候,好像这几个数组的值没有及时更新,于是就出现了错误,或者成交一次以后市场价格变化了就不再成交,或者不能成交,或者显示invalid Value of TakeProfit之类的问题(因为我的止损、止盈是和upper_fractal[ ]、down_fractal[ ]相关的)。 我查阅了很多资料,是不是因为占用内存缓存,MT4的数组是存在内存缓存里的,不能及时更新。 难道必须用C语言方案写一个外部链接文件存储和调用数组么? 谁能给解决一下新的分形产生时数组如何及时更新?
分形指标在MT4里是内置指标 函数是: 上分形:iFractals(NULL,0,MODE_UPPER,shift) 下分形:iFractals( NULL,0,MODE_LOWER,shift) 根据这个函数,我定义了两个数组: double upper_fractal[3]; double down_fractal[3]; 可以得到: 上分形的值 upper_fractal[0]=? upper_fractal[1]=? upper_fractal[2]=? 和下分形的值 down_fractal[0]=? down_fractal[1]=? down_fractal[2]=? 代码如下: double upper_fractal[3]; double down_fractal[3]; { for(int l=0;l0) { if(n>2) { break; } upper_fractal[n]=iFractals(NULL,0,MODE_UPPER,l); n++; } for(int x=0;x0) { if(m>2) { break; } down_fractal[m]=iFractals(NULL,0,MODE_LOWER,x); m++; } } return(0); } } 在实际的应用中却又出现了问题,每到市场数据发生变化,产生新的上分形和新的下分形的时候,好像这几个数组的值没有及时更新,于是就出现了错误,或者成交一次以后市场价格变化了就不再成交,或者不能成交,或者显示invalid Value of TakeProfit之类的问题(因为我的止损、止盈是和upper_fractal[ ]、down_fractal[ ]相关的)。 我查阅了很多资料,是不是因为占用内存缓存,MT4的数组是存在内存缓存里的,不能及时更新。 难道必须用C语言方案写一个外部链接文件存储和调用数组么? 谁能给解决一下新的分形产生时数组如何及时更新?
指标要在OnCalculate下面取值,EA的话要在OnTick下面取值。这样就能及时实时更新数值了。
另外还要注意你代码执行的顺序,要在取值之后再做条件判断是否下单。
Leon Lam:
指标要在OnCalculate下面取值,EA的话要在OnTick下面取值。这样就能及时实时更新数值了。
另外还要注意你代码执行的顺序,要在取值之后再做条件判断是否下单。
谢谢了,试一下
peiyingxuan:
谢谢了,试一下
还是
没有解决a