ICustom函数 - 页 4 1234567891011...23 新评论 ralphronnquist 2008.02.03 07:53 #31 TheRumpledOne: 如果它是 "垃圾",那为什么还要张贴? 我有一个类似的想法.... matrixebiz 2008.02.04 13:05 #32 关于iCustom的一个问题。 您能解释并举例说明关于iCustom命令中的Line和Shift变量吗? 谢谢你 TheRumpledOne 2008.02.04 13:28 #33 matrixebiz: 关于iCustom的一个问题。您能解释一下,并给出一些关于iCustom命令的Line和Shift变量的例子吗? 谢谢你 iCustom - MQL4 文档 模式- 线路索引。shift- 从指标 缓冲区中提取的数值的索引(相对于当前条形图的给定时间前的移动)。 使用MODE来告诉你的指标你想要什么缓冲区。 支撑阻力指标可以使用缓冲区0 ( MODE=0 ) 表示阻力,缓冲区1 ( MODE=1 ) 表示支撑。 SHIFT说要使用iCustom调用的指标Bar(SHIFT)的值。 这有帮助吗? matrixebiz 2008.02.04 14:09 #34 TheRumpledOne:iCustom - MQL4 文档mode- 线路索引。shift- 从指标 缓冲区中提取的数值的索引(相对于当前条形图的给定时间前的移动)。 使用MODE来告诉你的指标你想要什么缓冲区。 支撑阻力指标可以使用缓冲区0 ( MODE=0 ) 表示阻力,缓冲区1 ( MODE=1 ) 表示支撑。 SHIFT说要使用iCustom调用的指标Bar(SHIFT)的值。 这有帮助吗? 好吧,我明白了Shift,我必须多读一些关于Mode的书。 你会编码吗?我有这个指标,我从我的EA中调用,但不确定如何正确设置它。见图片。 它只有两条线,当蓝色变化并与另一条线对齐时,就会产生多头信号(与红色的想法相同)。 我尝试了一些不同的代码,比如我在VQ指标中使用的代码。 double Entry1 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 1); double Entry2 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 2); double Up2 = iCustom(NULL, 0, "VQ", 24, 30....., 1, 2); double Down2 = iCustom(NULL, 0, "VQ", 24, 30....., 2, 2); 只是交易不对。 谢谢 附加的文件: ci.jpg 66 kb ICustom function Please check my first Little question about EA's ralphronnquist 2008.02.04 14:33 #35 matrixebiz: 好的,我得到了Shift,将不得不做更多关于Mode的阅读。 你会编码吗?我有这个指标,我从我的EA中调用,但不知道如何正确设置它。见图片。它只有两条线,当蓝色变化并与另一条线对齐时,就会产生多头信号(与红色的想法相同)。我尝试了一些不同的代码,比如我在VQ指标中使用的代码。double Entry1 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 1);double Entry2 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 2);double Up2 = iCustom(NULL, 0, "VQ", 24, 30....., 1, 2);double Down2 = iCustom(NULL, 0, "VQ", 24, 30....., 2, 2);只是交易不对。 谢谢 如果你指的是底部的指标,它似乎被命名为 "#MTF CI",那么我认为可能该指标有4个缓冲区:每条线的两种颜色各一个。你可以调出数据窗口(ctrl-D),看看指标有哪些缓冲区,以及它们的索引(iCustom调用 的MODE参数)。 TheRumpledOne 2008.02.04 14:56 #36 matrixebiz: 好吧,我明白了Shift,我得多看看关于Mode的书。你会编码吗? 谢谢 我已经知道在我的时间里编码了一两个指标(几百个)....LOL! matrixebiz 2008.02.04 22:31 #37 ralph.ronnquist: 如果你指的是底部的指标,它似乎被命名为 "#MTF CI",那么我认为可能该指标有4个缓冲区:每条线的两种颜色各有一个。你可以调出数据窗口(ctrl-D)来查看指标有哪些缓冲区,以及它们的索引(iCustom调用的MODE参数)。 是的,你说的对,我怎样才能定制这些并创建贸易? 对于其他两个(QQEA 4个缓冲区和VQ 2个缓冲区),我使用这个方法。 double Entry1 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 1); double Entry2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 2); double Up2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 1, 2); double Down2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 2, 2); double qqe0_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,1); double qqe0_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,2); double qqe1_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,1); double qqe1_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,2); //买入 qqe0_0>qqe1_0 && qqe0_1Entry2 && .... 谢谢拉尔夫 附加的文件: data.jpg 24 kb ICustom function 波动性质量指数 专家: The MasterMind 3 ralphronnquist 2008.02.04 23:30 #38 matrixebiz: 是的,你是对的,我怎样才能定制这些并创建交易? 对于其他两个(QQEA 4个缓冲区和VQ 2个缓冲区)正在工作的,我使用这个。 double Entry1 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 1); double Entry2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 2); double Up2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 1, 2); double Down2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 2, 2); double qqe0_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,1); double qqe0_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,2); double qqe1_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,1); double qqe1_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,2); //Buy qqe0_0>qqe1_0 && qqe0_1Entry2 && .... 谢谢你,拉尔夫 一般来说,当你看到一条有多种颜色的指示线时,那么通常是由多个缓冲区实现的;每种颜色一个。你可以从数据窗口中找出缓冲区的索引,其中最上面的缓冲区的索引为0,并向下递增。缓冲区在有数值时就会被绘制出来(如果是LINE绘图风格,则需要两个或两个以上的连续数值才能被绘制出来)。 如果你有指标的源代码,有时更容易窥视它,并从SetIndexBuffer函数调用 中了解缓冲区的索引。 顺便提一下:一个指标也可以在显示屏上绘制 "对象",而这些对象不能通过iCustom调用获得。相反,你需要知道 "对象名称",并能读出其属性。 因此,你总是需要清楚地知道要从哪个指标缓冲区读出,并使用该索引作为iCustom的第二个最后参数。 例如,VQ指标的使用似乎不太正确,因为(根据我看到的资料),它的缓冲区[1]和[2]分别用于绿线和红线,而且从来没有出现过它们都不空的情况。也就是说,"Up2==Down2 "总是假的,除非两者都是 "空 "的时候,那就是VQ线既不是绿色也不是红色,而是黄色。 除此以外,我认为你做事的方式是正确的。当然,人们可以讨论变量名称的选择,但这是学术性的。要走的路是使用iCustom调用选择感兴趣的值,然后在交易条件中表达特定的所需值关系。 matrixebiz 2008.02.04 23:53 #39 ralph.ronnquist: 一般来说,当你看到一条有多种颜色的指标线时,通常是由多个缓冲区实现的;每种颜色一个。你可以从数据窗口中找出缓冲区的索引,其中最上面的缓冲区的索引为0,并向下递增。当缓冲区有一个值时,它就会被绘制出来(或者如果是LINE绘图风格,它需要两个或更多的连续值才能被绘制出来) 如果你有指标的源代码,有时更容易窥视它,并从SetIndexBuffer函数调用中了解缓冲区的索引。顺便提一下:一个指标也可能在显示屏上绘制 "对象",而这些对象不能通过iCustom调用获得。相反,你需要知道 "对象名称",并能读出其属性。因此,你总是需要清楚地知道要从哪个指标缓冲区读出,并使用该索引作为iCustom的第二个最后参数。例如,VQ指标的使用似乎不太正确,因为(根据我看到的资料),它的缓冲区[1]和[2]分别用于绿线和红线,而且从来没有出现过它们都不空的情况。也就是说,"Up2==Down2 "总是假的,除非两者都是 "空的",那就是当VQ线既不是绿色也不是红色,而是黄色。 除此以外,我认为你的做法是正确的。当然,人们可以讨论变量名称的选择,但这是学术性的。要走的路是使用iCustom调用选择感兴趣的值,然后在交易条件中表达特定的所需值关系。 不幸的是,我没有上面提到的三个指标的源代码。如果我想让它们只在每个指标同时变色的时候检查 买入或卖出条件,你会如何编写这些代码? 谢谢 ralphronnquist 2008.02.05 00:35 #40 缺少来源不是问题。让我们关注一下你图片中的指标窗口2,它显示了一个有4个缓冲区的指标。如果你在指标上左右移动鼠标,你可以算出哪个缓冲区用于哪个颜色。 让我假设第一个缓冲区([0])用于顶行的蓝色指示,第二个缓冲区([1])用于顶行的红色指示,同样,[2]和[3]是底行 的蓝色和红色。然后你可以按以下方式读出指标。 double top_is_blue = iCustom( ..., 0, 1 ); double top_was_blue = iCustom( ..., 0, 2 ); double top_is_red = iCustom( ..., 1, 1 ); double top_was_red = iCustom( ..., 1, 2 ); double bot_is_blue = iCustom( ..., 2, 1 ); double bot_was_blue = iCustom( ..., 2, 2 ); double bot_is_red = iCustom( ..., 3, 1 ); double bot_was_red = iCustom( ..., 3, 2 ); [/PHP] Then you can summarise them as follows: [PHP]bool top_goes_blue = ( top_is_blue == top_was_red ); bool top_goes_red = ( top_is_red == top_was_blue ); bool bot_goes_blue = ( top_is_blue == top_was_red ); bool bot_goes_red = ( top_is_red == top_was_blue ); bool both_go_blue = ( top_goes_blue && bot_goes_blue ); bool both_go_red = ( top_goes_red && bot_goes_red ); 如何做到这一点,取决于你在寻找什么。特别是。 如果你想结合两条线的非同步读数,可能会变得更多的编码。例如,布尔变量 "both_go_blue "指的是两条线的同时读数,并没有捕捉到 "一条线变蓝,另一条线稍后变蓝"。 ICustom function 精英指标 :) Elite indicators :) 1234567891011...23 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果它是 "垃圾",那为什么还要张贴?
我有一个类似的想法....
关于iCustom的一个问题。
您能解释并举例说明关于iCustom命令中的Line和Shift变量吗?
谢谢你
关于iCustom的一个问题。
您能解释一下,并给出一些关于iCustom命令的Line和Shift变量的例子吗?
谢谢你iCustom - MQL4 文档
模式- 线路索引。shift- 从指标 缓冲区中提取的数值的索引(相对于当前条形图的给定时间前的移动)。
使用MODE来告诉你的指标你想要什么缓冲区。 支撑阻力指标可以使用缓冲区0 ( MODE=0 ) 表示阻力,缓冲区1 ( MODE=1 ) 表示支撑。
SHIFT说要使用iCustom调用的指标Bar(SHIFT)的值。
这有帮助吗?
iCustom - MQL4 文档
mode- 线路索引。shift- 从指标 缓冲区中提取的数值的索引(相对于当前条形图的给定时间前的移动)。
使用MODE来告诉你的指标你想要什么缓冲区。 支撑阻力指标可以使用缓冲区0 ( MODE=0 ) 表示阻力,缓冲区1 ( MODE=1 ) 表示支撑。
SHIFT说要使用iCustom调用的指标Bar(SHIFT)的值。
这有帮助吗?好吧,我明白了Shift,我必须多读一些关于Mode的书。
你会编码吗?我有这个指标,我从我的EA中调用,但不确定如何正确设置它。见图片。
它只有两条线,当蓝色变化并与另一条线对齐时,就会产生多头信号(与红色的想法相同)。
我尝试了一些不同的代码,比如我在VQ指标中使用的代码。
double Entry1 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 1);
double Entry2 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 2);
double Up2 = iCustom(NULL, 0, "VQ", 24, 30....., 1, 2);
double Down2 = iCustom(NULL, 0, "VQ", 24, 30....., 2, 2);
只是交易不对。
谢谢
好的,我得到了Shift,将不得不做更多关于Mode的阅读。
你会编码吗?我有这个指标,我从我的EA中调用,但不知道如何正确设置它。见图片。
它只有两条线,当蓝色变化并与另一条线对齐时,就会产生多头信号(与红色的想法相同)。
我尝试了一些不同的代码,比如我在VQ指标中使用的代码。
double Entry1 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 1);
double Entry2 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 2);
double Up2 = iCustom(NULL, 0, "VQ", 24, 30....., 1, 2);
double Down2 = iCustom(NULL, 0, "VQ", 24, 30....., 2, 2);
只是交易不对。
谢谢如果你指的是底部的指标,它似乎被命名为 "#MTF CI",那么我认为可能该指标有4个缓冲区:每条线的两种颜色各一个。你可以调出数据窗口(ctrl-D),看看指标有哪些缓冲区,以及它们的索引(iCustom调用 的MODE参数)。
好吧,我明白了Shift,我得多看看关于Mode的书。
你会编码吗?
谢谢我已经知道在我的时间里编码了一两个指标(几百个)....LOL!
如果你指的是底部的指标,它似乎被命名为 "#MTF CI",那么我认为可能该指标有4个缓冲区:每条线的两种颜色各有一个。你可以调出数据窗口(ctrl-D)来查看指标有哪些缓冲区,以及它们的索引(iCustom调用的MODE参数)。
是的,你说的对,我怎样才能定制这些并创建贸易?
对于其他两个(QQEA 4个缓冲区和VQ 2个缓冲区),我使用这个方法。
double Entry1 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 1);
double Entry2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 2);
double Up2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 1, 2);
double Down2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 2, 2);
double qqe0_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,1);
double qqe0_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,2);
double qqe1_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,1);
double qqe1_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,2);
//买入
qqe0_0>qqe1_0 && qqe0_1Entry2 && ....
谢谢拉尔夫
是的,你是对的,我怎样才能定制这些并创建交易?
对于其他两个(QQEA 4个缓冲区和VQ 2个缓冲区)正在工作的,我使用这个。
double Entry1 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 1);
double Entry2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 2);
double Up2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 1, 2);
double Down2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 2, 2);
double qqe0_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,1);
double qqe0_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,2);
double qqe1_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,1);
double qqe1_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,2);
//Buy
qqe0_0>qqe1_0 && qqe0_1Entry2 && ....
谢谢你,拉尔夫一般来说,当你看到一条有多种颜色的指示线时,那么通常是由多个缓冲区实现的;每种颜色一个。你可以从数据窗口中找出缓冲区的索引,其中最上面的缓冲区的索引为0,并向下递增。缓冲区在有数值时就会被绘制出来(如果是LINE绘图风格,则需要两个或两个以上的连续数值才能被绘制出来)。
如果你有指标的源代码,有时更容易窥视它,并从SetIndexBuffer函数调用 中了解缓冲区的索引。
顺便提一下:一个指标也可以在显示屏上绘制 "对象",而这些对象不能通过iCustom调用获得。相反,你需要知道 "对象名称",并能读出其属性。
因此,你总是需要清楚地知道要从哪个指标缓冲区读出,并使用该索引作为iCustom的第二个最后参数。
例如,VQ指标的使用似乎不太正确,因为(根据我看到的资料),它的缓冲区[1]和[2]分别用于绿线和红线,而且从来没有出现过它们都不空的情况。也就是说,"Up2==Down2 "总是假的,除非两者都是 "空 "的时候,那就是VQ线既不是绿色也不是红色,而是黄色。
除此以外,我认为你做事的方式是正确的。当然,人们可以讨论变量名称的选择,但这是学术性的。要走的路是使用iCustom调用选择感兴趣的值,然后在交易条件中表达特定的所需值关系。
一般来说,当你看到一条有多种颜色的指标线时,通常是由多个缓冲区实现的;每种颜色一个。你可以从数据窗口中找出缓冲区的索引,其中最上面的缓冲区的索引为0,并向下递增。当缓冲区有一个值时,它就会被绘制出来(或者如果是LINE绘图风格,它需要两个或更多的连续值才能被绘制出来)
如果你有指标的源代码,有时更容易窥视它,并从SetIndexBuffer函数调用中了解缓冲区的索引。
顺便提一下:一个指标也可能在显示屏上绘制 "对象",而这些对象不能通过iCustom调用获得。相反,你需要知道 "对象名称",并能读出其属性。
因此,你总是需要清楚地知道要从哪个指标缓冲区读出,并使用该索引作为iCustom的第二个最后参数。
例如,VQ指标的使用似乎不太正确,因为(根据我看到的资料),它的缓冲区[1]和[2]分别用于绿线和红线,而且从来没有出现过它们都不空的情况。也就是说,"Up2==Down2 "总是假的,除非两者都是 "空的",那就是当VQ线既不是绿色也不是红色,而是黄色。
除此以外,我认为你的做法是正确的。当然,人们可以讨论变量名称的选择,但这是学术性的。要走的路是使用iCustom调用选择感兴趣的值,然后在交易条件中表达特定的所需值关系。不幸的是,我没有上面提到的三个指标的源代码。如果我想让它们只在每个指标同时变色的时候检查 买入或卖出条件,你会如何编写这些代码?
谢谢
缺少来源不是问题。让我们关注一下你图片中的指标窗口2,它显示了一个有4个缓冲区的指标。如果你在指标上左右移动鼠标,你可以算出哪个缓冲区用于哪个颜色。
让我假设第一个缓冲区([0])用于顶行的蓝色指示,第二个缓冲区([1])用于顶行的红色指示,同样,[2]和[3]是底行 的蓝色和红色。然后你可以按以下方式读出指标。
double top_was_blue = iCustom( ..., 0, 2 );
double top_is_red = iCustom( ..., 1, 1 );
double top_was_red = iCustom( ..., 1, 2 );
double bot_is_blue = iCustom( ..., 2, 1 );
double bot_was_blue = iCustom( ..., 2, 2 );
double bot_is_red = iCustom( ..., 3, 1 );
double bot_was_red = iCustom( ..., 3, 2 );
[/PHP]
Then you can summarise them as follows:
[PHP]bool top_goes_blue = ( top_is_blue == top_was_red );
bool top_goes_red = ( top_is_red == top_was_blue );
bool bot_goes_blue = ( top_is_blue == top_was_red );
bool bot_goes_red = ( top_is_red == top_was_blue );
bool both_go_blue = ( top_goes_blue && bot_goes_blue );
bool both_go_red = ( top_goes_red && bot_goes_red );
如何做到这一点,取决于你在寻找什么。特别是。
如果你想结合两条线的非同步读数,可能会变得更多的编码。例如,布尔变量 "both_go_blue "指的是两条线的同时读数,并没有捕捉到 "一条线变蓝,另一条线稍后变蓝"。