ICustom函数 - 页 20

 
Jeeves:
能否有好心人把我从痛苦中解救出来,重新做一下下面的东西,以允许使用 "Advanced_ADX "指标。 我知道这需要使用'icustom'函数,但我不知道该怎么做。

//h1数据

double h1adm = iadm(NULL,PERIOD_H1,2,MODE_CLOSE);

//h4数据

double h4adx = iadx(NULL,PERIOD_H4,2,MODE_CLOSE);

//d1数据

double d1adx = iadx(NULL,PERIOD_D1,2,MODE_CLOSE);

//定义颜色

color color_h1, color_h4, color_d1;

//定义字符串

string arrow_h1, arrow_h4, arrow_d1;

//h1上涨趋势

如果(h1adx < Bid ) { color_h1 = ColorUpGood; }

//h1下跌趋势

如果(h1adx > Bid ) { color_h1 = ColorDownGood; } //h1下跌趋势

//h4的上升趋势

如果(h4adx < Bid ) { color_h4 = ColorUpGood; } //h4下跌趋势

//h4下跌趋势

如果(h4adx > Bid ) { color_h4 = ColorDownGood; } //h4下跌趋势

//d1上升趋势

如果(d1adx < Bid ){ color_d1 = ColorUpGood; }//d1上升趋势。

//d1下跌趋势

如果(d1adx > Bid ) { color_d1 = ColorDownGood; }

使用类似这样的方法:

double h1adp=iADX(NULL,PERIOD_H1,ADXPeriod,PRICE_CLOSE,MODE_PLUSDI, 0);

double h1adm=iADX(NULL,PERIOD_H1,ADXPeriod,PRICE_CLOSE,MODE_MINUSDI,0)。

如果(h1adp > h1adm ) { color_h1 = ColorUpGood; }

如果(h1adp < h1adm ) { color_h1 = ColorDownGood; }

对所有你想测试的时间框架都这样做(你可能想用一些其他的数字来代替末尾的0--0 =>当前条,1 =>第一个收盘条,以此类推)。

 

编程问题2个问题,请帮助(日志文件)(自定义指标/ 标准指数

你好,我希望我可以找到一个可以帮助我解决这个问题的人,我将非常感激。

  • 最初的情况。
  • 我们在Metatrader的不同标准指标计算的基础上开发了一个多通道过滤指标。

    这个指标被设想在我们的专家顾问中使用。挑战是。

    在每个tick上,所有基于这些标准指标的计算都会导致无数的日志条目。

    由于这个原因,我们的交易被延迟了。

    是否有可能避免这些日志条目?

  • 我们试图解决这个问题。

我们得到了像标准指标一样的自定义指标程序。我们试图改变不同指标所使用的标准路线计算。但这些并没有带来预期的结果。

通过使用标准课程计算,标准指标带来的结果与自定义指标相同。但改变课程计算

导致自定义指标和相应的标准指标的差异?

是否有可能获得与标准指标完全一样的自定义指标(无论选择哪种课程计算)?

 
spongebozz:
嗨,我希望能找到人帮助我解决这个问题,我将非常感激
  • 最初的情况
  • 我们在Metatrader的不同标准指标计算的基础上开发了一个多通道过滤指标。

    这个指标被设想在我们的专家顾问中使用。挑战是。

    在每个tick上,所有基于这些标准指标的计算都会导致无数的日志条目。

    由于这个原因,我们的交易被延迟了。

    是否有可能避免这些日志条目?

  • 我们试图解决这个问题

我们得到了像标准指标一样的自定义指标程序。我们试图改变不同指标所使用的标准路线计算。但这些并没有带来预期的结果。

通过使用标准课程计算,标准指标带来的结果与自定义指标相同。但改变课程计算

导致了自定义指标和相应的标准指标的差异?

是否有可能获得行为与标准指标完全相同的自定义指标(无论选择哪种计算方式)?

嗨,Spongebozz。

这是针对你的问题的第一部分......关于日志太大,使你的系统变慢......

日志很可能是由PRINT语句产生的......太多了......在你的EA和/或你的指标中......。

你可以通过在每个你想停止打印到日志的PRINT语句前面放置两个右斜杠(//)来删除 或清除PRINT语句。

例如。

// Print("This is an example"); // 会使代码行空白,不打印到日志中。

如果你希望......所有的......PRINT语句被清空......你可以做一个查找/替换......

查找。打印

替换。// 打印

指标的类型是标准的还是自定义的...应该不重要...

只有当它有很多你需要删除或空白的PRINT语句时才有关系。

以后你可以随时回去取消你想要的PRINT语句的空白......而保留其他的空白或完全删除它们。

希望这对你有帮助。

罗伯特

 

大家好!

我正在做一个二元期权的EA,想从一个指标中获得 "信号",并在我的EA中接收。你可能知道,二元期权只做看涨或看跌,所以我想让iCustom听从我的指标,在我的EA中做看跌和看涨。有道理吗?

那么,我需要做什么呢?

我只需要把这样的东西放在indi里。

// PUT

if (AlignsForAput == true){

PutBuffer[] = 1;

}

// CALL

if (AlignsForAcall == true){

CallBuffer[] = 1;

}

PutBuffer[] = 0;

CallBuffer[] = 0;

请帮助我写一个好的例子,说明如何使这个工作。我需要写什么,在哪里写?

谢谢!

 

如果有人能写一个简单的例子,说明indi代码和EA代码应该是什么样子的,我将非常感激!请看上面关于我的问题。

 
SantaClaus:
如果有人能写一个简单的例子,说明indi代码和EA代码应该是什么样的,我将非常感激!请看上面关于我的问题。

对于指标,请查看这个:https://www.mql5.com/en/forum/173032 和这个:https://www.mql5.com/en/forum/173054

关于EA,请查看这个:https://www.mql5.com/en/forum/173136 和这个:https://www.mql5.com/en/forum/173171

 

所以你是在告诉我那里有很好的例子,如何将iCustom 用于上述目的?

 
SantaClaus:
所以你是在告诉我那里有很好的例子,如何将iCustom用于上述目的?

是的,这正是我想说的(你要求的是 "一个简单的例子,说明indi代码和EA代码应该是什么样子的"--这些主题可以帮助你)

 
mladen:
是的,这正是我想说的(你问的是 "一个简单的例子,说明indi代码和EA代码应该是什么样的"--这些线程可以帮助你)

没有,没有一个链接解释了我如何使用iCustom,正如我在第一个问题中所希望的。

 
SantaClaus:
没有,没有一个链接能像我的第一个问题那样解释我如何使用iCustom。

你在一个详细解释如何使用iCostom()的主题中发帖(你所要做的就是去这个主题的第一页),你却找不到如何做?

这里有一个简短的版本。

_________________________

iCustom

计算指定的自定义指标并返回其值。

[TABLE] double iCustom()

stringsymbol, // 符号

inttimeframe, // timeframe

stringname, // 自定义指标编译程序的路径/名称

... // 自定义指标输入参数(如果需要)

intmode, // 线路索引

intshift//移位

);[/TD]

[/TR]

[/TABLE]

参数

符号

用于计算指标的数据的符号名称。NULL 表示当前符号。

时间范围

时间框架。它可以是ENUM_TIMEFRAMES 枚举值中的任何一个。0表示当前图表的时间框架。

名称

自定义指标编译的程序名称,相对于根指标目录(MQL4/Indicators/)。如果指标位于子目录中,例如,在MQL4/Indicators/Examples 中,其名称必须指定为"Examples/indicator_name"(必须指定双反斜杠"\\"作为分隔符,而不是单一的)。

...

自定义指标输入参数,用逗号分隔。

传递的参数和它们的顺序必须与自定义指标的声明顺序和外部变量的类型一致。如果没有指定输入参数的值,将使用默认值

模式

线路索引。可以是0到7,必须与调用SetIndexBuffer() 函数时指定的索引对应。

移位

从指标缓冲区中提取的数值的索引(相对于当前的条形图,在给定的时间前移)。

返回值

指定的自定义指标的数字值。自定义指标必须被编译(*.EX4文件)并在terminal_directory/MQL4/Indicators/目录下。

例子。

[TABLE]

[TR]。

[TD]double val=iCustom(NULL,0,"SampleInd",13,1,0); [/TABLE] [/TABLE]

_________________________

PS:"行指数。可以从0到7"是metatrader在其文档中仍然存在的错误(应该是 "行指数。 可以从0到511"),但只要他们不正式改变其文档,我将坚持他们对iCustom()函数的定义。

编码愉快