新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 356

 
Nauris Zukas:

谢谢你,但这样我还得对数据进行缩放(如果我理解正确的话)。看来扩大数据规模是唯一的解决办法。

为什么要扩大任何东西的规模?只需使用2个缓冲器,把正值放在一个,把负值放在另一个。如果计算只产生正值,你可以将其乘以-1。但如果计算结果既是正值又是负值,那么我的建议就不适合。

然后你可以制作不同宽度的直方图。首先,用宽直方图显示的缓冲区被填满数值,然后用薄直方图显示的缓冲区被填满数值。

这将产生一个直方图。这里使用了四个缓冲区。


 
Alexey Viktorov:

为什么要扩大任何东西的规模?只需使用2个缓冲器,把正值放在一个,把负值放在另一个。如果计算只产生正值,你可以将其乘以-1。但如果计算结果既是正值又是负值,那么我的建议就不适合。

然后我们可以制作不同宽度的直方图。首先,宽直方图中显示的缓冲区应该被填满数值,然后薄直方图中显示的缓冲区应该被填满数值。

这将产生一个直方图。这里使用了四个缓冲区。


谢谢,但它不适合这个变体,因为带线的缓冲区的范围是1.19653到1.19674,直方图的范围是0到250。抽搐和传播在一个窗口,这就是为什么我想做第二个Y轴。

 
Nauris Zukas:

谢谢你,但这是行不通的,因为带线的缓冲区会在1.19653到1.19674之间,而直方图会在0到250之间。抽搐和扩散在一个窗口,这就是为什么我想做第二个Y轴。

我同意,它不适合。但是!!!缩放会怎么做?也许将直方图的值除以100?或者乘以0.01...

 
Alexey Viktorov:

我同意,它不适合。但是!!!缩放会怎么做?把直方图的值除以100怎么样?或者乘以0.01...

到目前为止,以下概念:我们从线性缓冲区中提取最大/最小值,并在这些值下做最大的传播,其他传播在最大值下被缩放。

 
Artyom Trishkin:

所以经纪商不允许你的账户进行自动交易,因为一切都已启用,而EA并没有开仓或下单。

当EA试图向服务器发送交易请求 时,日志显示什么?

订单已下,但IsTradeAllowed()为0。这怎么可能呢?

 
Andrei:

你是说允许自动交易吗?这也使得...

给经纪人的服务台打电话有意义吗?

 
Andrei:

订单已下,但IsTradeAllowed()为0。这怎么可能呢?


该账户有竞争力吗?

至少有四个参数需要检查。

ACCOUNT_TRADE_EXPERT
ACCOUNT_TRADE_ALLOWED
TERMINAL_TRADE_ALLOWED
IsTradeAllowed(_Symbol,TimeCurrent())
 

你能告诉我如何写一段代码来比较所选交易工具的当前刻度和前一个刻度吗?

我需要比较:如果Tick(当前)>Tick(上一个),则继续执行这种ticks,反之,如果Tick(当前)<Tick(上一个),则继续进行ticks2的计算。

因此,我想计算在选定的图表和时间框架上,每个条形图中有多少点在增加价格,有多少点在减少价格。

请指教!我正在写我的第一个训练指标,也是我人生中的第一个程序:(

我说的对吗?

int Tick;

int Tick2;

int start()

如果((Bid - Bid[1]) > 0)

{

Tick++;

返回。

}

否则

{

Tick2++;

返回。

}

 
YarTrade:

你能告诉我如何写一段代码来比较所选交易工具的当前刻度和前一个刻度吗?

我需要比较:如果Tick(当前)>Tick(上一个),那么就去执行这种ticks的计数,反之,如果Tick(当前)<Tick(上一个),那么就去计算ticks2。

因此,我想计算在选定的图表和时间框架上,每个条形图中有多少点是增加价格的,有多少是减少价格的。

请指教!我正在写我的第一个训练指标,也是我生命中的第一个程序 :(

我做得对吗?

试着在每个勾上 写上 日期、时间、出价和你的计算结果。然后将其上传到Excel并进行检查。每十几行的程序都要进行核对,这几乎是没有意义的!

但你看,你在条件运算符的每个分支中都有返回,也就是说,它总是被执行。所以我们把它从条件运算符中拿出来。

int Tick=0, Tick2=0;       // Для вставки программы используйте кнопку SRC
double Bid1;

void OnInit()
{
  Bid1=Bid;
}

void start()   // Вместо start более модно писать OnTick
{
    if(Bid > Bid1) Tick++;                             
    else           Tick2++;
    Bid1=Bid;                          
}

Bid[1] - 是这样的吗?

 
STARIJ:
// Вместо start более модно писать OnTick

:)

原因: