[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 1069

 
goldtrader:

让我们做一个简单的实验,证明单独(每笔)交易的缩减不会显示在余额/权益图上。

我们来写一个两行代码的专家顾问。

让我们在2010年5月1日至2010年8月1日的欧元兑美元D1图表上运行它。它将不得不在1.2200买入欧元,不设止损,并在1.3000处获利平仓。 我们将在平衡/权益图和可视化图上看到缩减。

正如你所看到的,在可视化图表上(截图中的上部),缩减是可见的,而在平衡/权益图表上,缩减则不是。那里只有一个交易。让我们来看看测试员的报告。

在测试员报告中,缩水是FIGURING。

我希望这个问题现在已经解决了?

.

也许,有一个问题 "为什么这样做?"这不是我们用户的问题,而是MT4开发者的问题。在我看来,这是不对的,因为余额/权益表并没有显示出超额出价。

亚历山大,非常感谢你!非常详细和彻底,非常感谢你的工作。难道MT4的开发者不在这里回答吗?
 

同事们,也许有人遇到过这个问题。

在同一时间打开的文件数量是否有限制?4号是可以的,5号是开放的,但它没有写到它。我搞不清楚哪里出了问题。

 

有一个问题。当通过指标走廊的上边界(买入)或下边界(卖出)时,应开启交易。

double barier = 0.08; // 走廊的边界。

R() - 指标函数

用于检查越过上界下界 条件的功能。

int RFilter()

{

如果 ( R(2)> -barier && R(1) < -barier ) 返回 (-1)。

如果 ( R(2)< barier && R(1) > barier ) 返回 (1)。

}

当指标通过一个边界(不管是哪一个)时,专家顾问会立即开仓。如果它上涨--买入,如果它下跌--卖出。

 
dzhini:

有一个问题。交易应在通过指标走廊的上边界(买入)或下边界(卖出)时开启。

...

实际上,当指标通过边界时,EA会立即开仓(哪一个并不重要)。如果它上涨--买入,如果它下跌--卖出。

稍微增加barier变量的值
 
costy_:

向鉴赏家提问

我可以为我的测试员创建自己的交易工具吗?

用我的或其他的东西取代EURUSD30_2.fxt。

metaquotes/tester/history/EURUSD30_2.fxt

我试图创建simple_csv2fxt,但测试人员用自己的文件替换了该文件。

也许有人对创作有一些经验,谢谢你。

有的,有的。而且有一篇关于这个问题的好文章
 
Reshetov:
稍微增加barier变量的值
没有帮助。这可能是由于符号分配错误造成的吗?
 
dzhini:
没有帮助。会不会是由于符号分配错误造成的?

你可以阅读咖啡渣或其他东西,因为显然没有足够的信息。

1. 一个指标或震荡器。

2.如果是振荡器,它是否有限制?如果有,它的高点和低点是什么?

3.也许问题不在上述函数的代码中,而是在其解释的代码中?

既然这里没有心灵感应者,而你所掌握的所有必要信息都是保密的,那么问题就是答案。也就是说,根据你提供的信息,增加变量应该能解决这个问题。

 
Reshetov:

你可以阅读咖啡渣或其他东西,因为信息明显不足。

1. 一个指标或震荡器。

2.如果它是一个振荡器,它是否有限制?如果有,它的最大值和最小值是多少?

3.也许问题不在于上述函数的代码,而在于其解释的代码?

既然这里没有心灵感应者,而且你有所有你需要的信息被标记为秘密,那么问题就是答案。也就是说,从你提供的信息来看,一目了然,增加这个变量应该能解决问题。

这是一个指标,其公式如下。

双重R(int shift)
{
double coef1 = 100.0 * (iMA(NULL, 0, perfast, 0,MODE_LWMA, PRICE_CLOSE, shift) - iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift)* iATR(NULL, 0, perslow, shift)。
double coef2 = coef1 / iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift) / iATR(NULL, 0, perslow, shift) 。
double main =(MathExp(2.0 * coef2) - 1.0) / (MathExp(2.0 * coef2) + 1.0) 。

返回(主)。

}

限制因素。(-1;1)

 
dzhini:

这是一个有这个公式的指标。

双重R(int shift)
{
double coef1 = 100.0 * (iMA(NULL, 0, perfast, 0,MODE_LWMA, PRICE_CLOSE, shift) - iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift)* iATR(NULL, 0, perslow, shift)。
double coef2 = coef1 / iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift) / iATR(NULL, 0, perslow, shift) 。
double main = (MathExp(2.0 * coef2) - 1.0) / (MathExp(2.0 * coef2) + 1.0) 。

返回(主)。

}

限制因素。(-1;1)

你的功能必须根据评论中提到的条件正确工作。

int RFilter()

{

if ( R(2)> -barier && R(1) < -barier ) return (-1); // Short pose if the indicator value on previous bar is higher than the lower bar and current one is lower than this bar.

if ( R(2)< barier && R(1) > barier ) return (1); // Long pose if indicator value is below upper bar on the previous bar and is above this bar on current one.

return(0); // 在所有其他情况下不做任何事情。

}

 
Reshetov:

那么你的函数对于注释中的条件应该能正确工作。

int RFilter()

{

if ( R(2)> -barier && R(1) < -barier ) return (-1); // Short pose, if the indicator value on previous bar is higher than the lower bar and current one is lower than this bar.

if ( R(2)< barier && R(1) > barier ) return (1); // Long pose if indicator value is below upper barrier on the previous bar and is above it on the current bar.

return(0); // 在所有其他情况下不做任何事情。

}

但这并不奏效 :(
原因: