先读......然后再读,直到你掌握。
https://book.mql4.com/variables/arrays
例如,数组的第一个元素是0号元素, 有点像Bars, fumy that, eh ?;-)
- 你说得太偏了。
- array[1,2,3,4,5,6,7] giberish
- array[1] = (Low[3] < Low[4] && Low[3]... array是一个bool
- Low_1 = array[1] 意味着数组不是一个bool
- "将信号存储到一个静态数组中",如果你可以在需要的时候计算它们,为什么它需要是静态的呢。
哦,我是说int array[1][7]。
谢谢你的回复
在进一步阅读了你的指导和问题之后,我想数组可能不是我想做的。
基本上,我想学习创建我自己定义的高点和低点;并且能够在新条形图形成后引用它们作为信号。但是我只选择其中的一些,而不是整个完整的历史高点/低点。
我可能在这里走错了路。
我将重新考虑这个问题。
谢谢你
基本上,我想学习创建我自己定义的高点和低点;并且能够在新的条形图形成后参考它们作为信号。但是,我只选择其中的一些,而不是整个完整的历史高点/低点。
我想我会做更多像这样的事情。
我想这使得这篇文章在这一点上不再是关于数组的,所以我将收回这个质疑,直到我能够学到更多关于数组的知识。
谢谢。
static double Low_A; if(Low[2] < Low[2] && Low [2] < Low[1]) { Low_A = Low[3]; Print (Low_A + " Low_A has formed"); }
为什么?你能解释一下你想达到什么目的吗?
当然,它实际上不是某个特定蜡烛的高点和低点,而是一系列的蜡烛。举个例子,根据我想使用多少根蜡烛,可以称之为Low_A,但也可以说,一个低点被认为是左边4根更高的蜡烛,右边4根更高的蜡烛,这个低点蜡烛将被认为是Low_A 或者我可以用更多的蜡烛,或者更少的蜡烛来组成一个低点或高点,然后为高点和低点创建其他类似的东西。然后创建一些
函数 来比较以前的低点和以后的低点,以及以前的高点和以后的高点。然后也许可以从2个高点/低点或3个高点/低点或更多的系列中画出一条趋势线 或者我可以像这个例子中那样,只使用左边有一个较低的蜡烛,右边有一个较低的蜡烛,并称其为低点。最初我考虑将结果放入一个数组中,但我不认为这能达到我想要的效果,或者至少我对数组的理解还不足以确定这一点。多读一些书无疑会让我明白。呵!我真的不确定数组是否能达到我想要的效果。我真的不确定数组对于存储我定义的一系列高点和低点是否有用。
如果我打印Low[2],它给我的是8位数,而不是5位数,而且有些都是0.0000000
可能是因为我使用的数据类型是静态的double Low_A。
我不确定我是否需要让它正确打印,然而为了存储正确的静态,我不确定该使用什么数据。
我需要一个新的设计,很明显,我试图做的事情将无法正常工作,我现在明白了原因。
所以,又回到了画板上。呜呼
回到这个问题上。
经过一番学习,我在想到底有没有静态数组这种东西,或者说数组的静态主要是默认的,看了你提供的链接后,我说所有的都是默认的静态。很好。
总之,我在想iFractals,而不是在我定义高点和低点时试图标记它们。我可以暂时使用分形,直到我得到更好的知识和更多的阅读。
那么iFractals呢,我如何标记它们并参考它们?
我是否只需创建额外的iFractals并改变转变,并以这种方式引用它,或者带有iFractals的转变仍然是在谈论Bars而不是之前的Fractal?
//+------------------------------------------------------------------+ //| Support and Resistance | //| Copyright © 2004/5 Barry Stander | //| http://www.4Africa.net/4meta/ | //+------------------------------------------------------------------+ #property copyright "Support and Resistance Barry_Stander_4@yahoo.com" #property link "http://www.4Africa.net/4meta/" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Blue //---- buffers double v1[]; double v2[]; double val1; double val2; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { //---- IndicatorBuffers(2); SetIndexArrow(0, 119); SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Red); SetIndexBuffer(0, v1); SetIndexLabel(0,"Resistance"); SetIndexArrow(1, 119); SetIndexStyle(1,DRAW_ARROW,STYLE_DOT,1,Blue); SetIndexBuffer(1, v2); SetIndexLabel(1,"Support"); //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int i=Bars; //---- while(i>=0) { val1=iFractals(NULL, 0, MODE_UPPER,i); if (val1 > 0) v1[i]=High[i]; else v1[i]=v1[i+1]; val2=iFractals(NULL, 0, MODE_LOWER,i); if (val2 > 0) v2[i]=Low[i]; else v2[i]=v2[i+1]; i--; } //---- return(0); } //+------------------------------------------------------------------+
有人写了这段代码,我明白它是如何工作的,但我不确定我如何从数组中选择一个特定的高点和/或低点,也就是支撑/阻力。我的意思是,我肯定可以做一个
函数,如果(val1 > imacd)或其他什么,就可以打开一个交易,但之前的iFractals呢,或者说后面的2个, 这只是一个简单的转移问题吗? 还是我需要把它放到另一个数组中?
请指教
谢谢
大家好。
首先感谢大家的回答,这对学习MQL4很有帮助
,我现在要 继续了解如何建立数组。
主题。
如何将信号存储到一个静态数组中,例如。例如:一系列蜡烛的高点和低点等,我可能会在每个高点和低点的上面放一条小线。
所以我在想静态数组[1,2,3,4,5,6,7] 。
array[1] = (Low[3] < Low[4] && Low[3] < Low[3]) //或类似这样的东西?
Low_1 = array[1]
Low_2 = array[2],以此类推。
这是否是一个标准的方法,还是我的方法不对?
请指教,谢谢