如何编码? - 页 15

 

我需要一个程序员!

所有的程序员,我需要你们帮助我为我的交易编码或制作EA。我没有任何做EA的经验,所以我需要你们。

该EA。

LWMA - 5 (关闭)

SMA - 8 (收盘价)

买入--当这两条线交叉时,等待下一个条形图并自动开始触发。做空也是如此。

止损 - 30

获利 - 30

止损--15

请帮助我。

谢谢。

 
Sinar FX:
所有的程序员,我需要你们帮助我为我的交易编码或制作EA。我没有任何做EA的经验,所以我需要你们。

EA :

LWMA - 5 (关闭)

均线 - 8 (收盘价)

买入 - 当两条线交叉时,等待下一个柱状图并自动开始触发。做空也是如此。

止损 - 30

获利 - 30

止损--15

请帮助我。

谢谢。

什么时间框架?

 

请帮助我理解自定义指标代码

你好,我是一个MQL4的新手。我注意到,许多自定义指标包含以下几行,以准备进行条形计数循环。

int counted_bars = IndicatorCounted()。

if( counted_bars < 0 ) return(-1);

如果( counted_bars > 0 ) counted_bars--。

int limit = Bars - counted_bars;

for(int i=0; i<limit; i++)

根据metatrader.info的教程,counted_bars = IndicatorCounted()将在指标第一次启动时计算counted_bars为0。"之后,它将是图表上的总条数减去1"。什么之后?第一次启动后?我必须要启动两次指标才能工作吗?MQL4参考手册也不太清楚。"IndicatorCounted()返回在上次指标启动后没有改变的条数。在大多数情况下,相同的指数值的计数不需要重新计算。用于优化计算。"

然后是Bars,它是 "图表上的条数"。为什么不简单地使用以下条形计数循环。

for(int i=1;i<=Bars;i++)

如果有人能用简单的英语解释一下以下内容,我就明白了

int counted_bars = IndicatorCounted();

if( counted_bars < 0 ) return(-1);

如果( counted_bars > 0 ) counted_bars--。

int limit = Bars - counted_bars;

for(int i=0; i<limit; i++)

在什么方向上计算条数:向前(从最早的条数到最新的条数)还是向后?谢谢你在avdance!

 

看看这篇文章是否有帮助。

https://www.mql5.com/en/articles/1497

好运。

 

谢谢,Maji。这很有帮助。如果我说错了,请纠正我。

1.IndicatorCounted在条形图实时更新的图表中很有用。因此,当一个新条形图出现时,不必重新计算所有条形图的指标值,而只计算这个新条形图的指标值。

2.2. "限制 "是指需要计算指标的新条形的数量。

3.3.指标指数向后计算条数,i=0表示新的(当前)条数。

我想我的困惑是基于我之前使用Wealth-Lab的经验,在那里写的指标代码是这样的:即使只需要计算新的条形图,也要为所有的条形图计算指标值。然而,Wealth-Lab有一些内置的智能,有可能指标只为新的条形图自动重新计算。我有一种感觉,MQL4不想为你做这样的决定,而是把这些决定留给你,迫使你做额外的编程步骤。我其实很喜欢这样,因为我总是讨厌一个软件为你做决定,而这些决定与你的决定不一样。我对MQL4的唯一问题是,我希望它有更好的文档。

 

fiqe,

我相信你的假设是正确的。我认为MT4只计算一次指标是正确的,而WL hogs资源以其他方式计算。

我可能错了,我希望其他更有知识的人可以纠正我们两个人。

 
 

尼克。

检查 你的电子邮件。我已经在那里给你发了一个例子。

请告诉我。

马吉

 

好的,我认为你可以这样做。

首先,你必须指出你搜索的是哪一个小时 - 如果你的经纪人是GMT+3,那么为了计算GMT时间的枢轴,你必须将经纪人的时间减去3,所以如果你搜索00.00小时,你将搜索你经纪人时间的21.00。

现在,一天是24小时,我们从屏幕的右边部分开始搜索。你的经纪人时间是+3,所以我们将把这个数字加到转移值上。

for(int i = 3 ; i <= 27 ; i++)

{

if(TimeHour(Time)==21)

{

//This should be your GMT midnight so u can take OHLC values from here

double open = iOpen(Symbol(),60,i);

double high = iHigh(Symbol(),60,i);

double low = iLow(Symbol(),60,i);

double close = iClose(Symbol(),60,i);

}

}

我不知道这是否是一个简单的方法,但它是有效的。

 

你好。

在SimpleDailyRangeBreakoutExpert的最后一个版本中,你可以找到为任何时间段 制作蜡烛(OHLC)的代码。