PDA

View Full Version : 请帮助指标



Teyoxxa
05-04-2010 08:02, 08:02 AM
嗨,大家好,

我正在玩iMAOnArray函数,但无法获得以下指标来输出结果。我拖动到此的指示器窗口保持空白。

任何帮助赞赏。

问候
史蒂夫

// ----------------------------------------------- -------------------
//| iMAOnArray.mq4 |
//|编码大师|
//|
http://www.metatrader.info|
// ----------------------------------------------- -------------------

#property版权所有者Guru
#property链接http://www.metatrader.info


#property indior_separate_window
#property indior_color1 LawnGreen
#property指示符颜色2深蓝色

double ExtMapBuffer1 [];
双RSI_Val [];
双RSI_Val_SMA [];

int init()
{
IndiorDigits(MarketInfo(符号(),MODE_DIGITS));
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);

返回(0);
}

int deinit()
{
返回(0);
}

int start()
{
int bar,limit;

int counted_bars = IndiorCounted();
if(counts_barslt; 0)return(-1);
if(counts_barsgt; 0)counting_bars--;
极限=棒材 - IndiorCounted();


for(bar = 0; barlt; limit; bar )
RSI_Val [bar] = iCustom(NULL,0,RSI,0,0,bar);

for(bar = 0; barlt; limit; bar )
RSI_Val_SMA [巴] = iMAOnArray(RSI_Val,酒吧,5,0,MODE_SMA,巴);

for(bar = 0; barlt; limit; bar ){
如果(RSI_Val [巴] GT; RSI_Val_SMA [巴])
ExtMapBuffer1 [bar] = 1;
其他
ExtMapBuffer1 [bar] = 0;
}

返回(0);
}

lsgsolayno
11-18-2021 08:44, 08:44 AM
我想我已经找到了你必须设置数组大小的问题,插入代码double ExtMapBuffer1#91;#93 ;; double RSI_Val#91;#91; color = DarkOrange#93;在这里输入一个数字#91;color#93;#93 ;;双RSI_Val_SMA#91;#91; color = DarkOrange#93;在这里放一个数字#91;color#93;#93 ;;但是接下来出现另一个问题计算的数字与图表中显示的计算数字不匹配..........

CHttka
11-18-2021 10:04, 10:04 AM
int init(){IndiorBuffers(3); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexBuffer(1,RSI_Val); SetIndexBuffer(2,RSI_Val_SMA);返回; }

lsgsolayno
11-18-2021 11:25, 11:25 AM
int init(){IndiorBuffers(3); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexBuffer(1,RSI_Val); SetIndexBuffer(2,RSI_Val_SMA);返回; }
rsival和rsivalsma是不能绘制的,是否需要为imaonarray设置缓冲区才能使用?

Teyoxxa
11-18-2021 12:46, 12:46 PM
嗨lmyyyks,感谢您的电子邮件。我不想听起来很愚蠢,但还有什么我不得不放进去的。我把它改成了我下面的内容,但仍然没有输出。基本上我希望它显示一个值为1或0的行,具体取决于条件。如果你有明确的要求,请将代码添加到回复中。关心史蒂夫// --------------------------------------------- --------------------- /| iMAOnArray.mq4 |/|编码大师|/|
http://www.metatrader.info/|/ ----------------------------------------------- ------------------- #property copyright Coders大师#属性链接http://www.metatrader.info#属性indior_separate_window #property indior_color1 LawnGreen #property indior_color2 DarkBlue double ExtMapBuffer1 [];双重RSI_Val [5000];双重RSI_Val_SMA [5000]; int init(){IndiorDigits(MarketInfo(Symbol(),MODE_DIGITS)); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1);返回(0); } int deinit(){return(0); } int start(){int bar,limit; int counted_bars = IndiorCounted(); if(counts_barslt; 0)return(-1); if(counts_barsgt; 0)counting_bars--;极限=棒材 - IndiorCounted();对于(bar = 0; barlt; limit; bar )RSI_Val [bar] = iCustom(NULL,0,RSI,0,0,bar);对于(bar = 0; barlt; limit; bar )RSI_Val_SMA [bar] = iMAOnArray(RSI_Val,Bars,5,0,MODE_S MA,bar);对于(bar = 0; barlt; limit; bar ){if(RSI_Val [bar] gt; RSI_Val_SMA [bar])ExtMapBuffer1 [bar] = 1; else ExtMapBuffer1 [bar] = 0; } return(0); }

我想我已经找到了你必须设置数组大小的问题,插入代码double ExtMapBuffer1#91;#93 ;; double RSI_Val#91;#91; color = DarkOrange#93;在这里输入一个数字#91;color#93;#93 ;;双RSI_Val_SMA#91;#91; color = DarkOrange#93;在这里放一个数字#91;color#93;#93 ;;但是接下来出现另一个问题计算的数字与图表中显示的计算数字不匹配..........

我想我已经找到了你必须设置数组大小的问题,插入代码double ExtMapBuffer1#91;#93 ;; double RSI_Val#91;#91; color = DarkOrange#93;在这里输入一个数字#91;color#93;#93 ;;双RSI_Val_SMA#91;#91; color = DarkOrange#93;在这里放一个数字#91;color#93;#93 ;;但是接下来出现另一个问题计算的数字与图表中显示的计算数字不匹配..........

lsgsolayno
11-18-2021 14:07, 02:07 PM
嗨,感谢您的电子邮件。我不想听起来很愚蠢,但还有什么我不得不放进去的。我把它改成了我下面的内容,但仍然没有输出。基本上我希望它显示一个值为1或1的行。
把这个插入代码SetArrayAsSeries(RSI_Val_SMA,true); SetArrayAsSeries(RSI_Val,true);也许功能拼写错误或参数计数错误。我现在没有参考。但这是我处理它的方式。请记住检查返回的值,因为它与导航窗口和图表中显示的值不同。我不记得有任何电子邮件发送给你。

Teyoxxa
11-18-2021 15:28, 03:28 PM
感谢那。我会放弃它。对不起,当我说电子邮件时,我的意思是你贴的帖子。

把这个插入代码SetArrayAsSeries(RSI_Val_SMA,true); SetArrayAsSeries(RSI_Val,true);也许功能拼写错误或参数计数错误。我现在没有参考。但这是我处理它的方式。请记住检查返回的值,因为它与导航窗口和图表中显示的值不同。我不记得有任何电子邮件发送给你。

把这个插入代码SetArrayAsSeries(RSI_Val_SMA,true); SetArrayAsSeries(RSI_Val,true);也许功能拼写错误或参数计数错误。我现在没有参考。但这是我处理它的方式。请记住检查返回的值,因为它与导航窗口和图表中显示的值不同。我不记得有任何电子邮件发送给你。

Teyoxxa
11-18-2021 16:48, 04:48 PM
嗨,大家好,这太棒了,谢谢你的帮助。问候史蒂夫

不它不是。但它会使数组易于使用,而不必担心数组初始化。问题的主要原因是这一行:RSI_Val [bar] = iCustom(NULL,0,RSI,0,0,bar);使用0意味着RSI周期= 0。最好使用外部参数。或者使用iRSI()函数[/php]

不它不是。但它会使数组易于使用,而不必担心数组初始化。问题的主要原因是这一行:RSI_Val [bar] = iCustom(NULL,0,RSI,0,0,bar);使用0意味着RSI周期= 0。最好使用外部参数。或者使用iRSI()函数[/php]