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

 
Alexey Viktorov:

我举了一个分形作为例子。而你如何定义最低限度(在你的情况下)可能是一个军事秘密......或者完全误解了所问的内容。

我的代码由几个字符串组成,你可以用肉眼看到它的最小值是如何定义的

黄线中定义的是最小值

void OnTick()//484
{
if (Bid<LoU)
LoU=Bid;
//**************************************************************||TimeCurrent()==1262568096
if (Bid-LoU>=0.0030&&Pr!=LoU)
{
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0);
Print("---------------------КАЖДЫЙ ТИК ------Tick---------=     "    ,   Tick);
Pr=LoU;
LoU=Bid;
}
}
 
MakarFX:

你不需要计入条数

在订单打开后,将Low[0]值(当前条形图的最小值)分配给该变量,然后在条形图关闭后,如果Low[1]值低于该变量,则将新值分配给它。

如果不是,则保留旧值,即最小值。

这种算法我早已理解并使用....。也就是说,不是在tick上检查最小值,而是在烛台上检查。但我认为有一种更经济的算法,即我上次描述的算法,当你不是在之前,而是在之后检查最小值。但我不知道如何快速而经济地计算从BIDA到第五十根蜡烛的数量。是的,到第五十根蜡烛,我知道如何计算蜡烛的数量。如何数到LOU最低的那支蜡烛。也就是说,从BIDA到这支蜡烛

 
ANDREY:

我的代码由几行组成,显示了最小值是如何用肉眼定义的

黄线中定义了最小值。

那么,问题出在哪里?这里重要的是如何声明 LoU变量。如果是在全球层面,那就好。如果它是一个局部变量,它必须是静态的。在每一个刻度上检查当前价格与这个变量中的价格的差异,微秒的成本将是如此微不足道,以至于谈论它没有意义。

 
ANDREY:

这是我长期以来理解和使用的一种算法....。也就是说,不是在tick上检查最小值,而是在烛台上检查。但我认为有一种更经济的算法,即我上次描述的算法,当你不在最小值之前检查,而是在它出现之后检查。但我不知道如何快速而经济地计算从BIDA到第五十根蜡烛的数量。是的,到第五十根蜡烛,我知道如何计算蜡烛的数量。如何数到LOU最低的那支蜡烛。就是说,从BIDA到这支蜡烛.

这里面有一些不正常的逻辑......为什么要计算一些50条?如果不是50岁呢?

 
ANDREY:

这是我长期以来理解和使用的一种算法....。也就是说,不是在tick上检查最小值,而是在烛台上检查。但我认为有一种更经济的算法,即我上次描述的算法,当你不在最小值之前检查,而是在它出现之后检查。但我不知道如何快速而经济地计算从BIDA到第五十根蜡烛的数量。

无论你想出什么办法,检查将在每个刻度上进行--这是OnTick()函数的 一个特点。

 
MakarFX:

无论你想出什么检查方法,它仍然会在每一个刻度上进行--这是OnTick()函数的 一个特点。

检查是一回事,找到最低限度是另一回事。

 
Alexey Viktorov:

那么问题出在哪里?这里主要的是如何声明 LoU变量。如果是在全球范围内,那就可以了。如果它是一个局部变量,它必须是静态的。在每一个刻度上检查当前价格与这个变量中的价格的差异将是如此微不足道,以至于谈论它没有意义。

谢谢你为我提供的新的有价值的信息,.....,我不知道这些。

 
Alexey Viktorov:

这里面有一些不正常的逻辑......为什么要计算任何50条?如果不是50岁呢?

50美元是用于抽象的情况。它可能是20个或150个,也可能是3个或1个。意思是如何知道在当前的BIDE和当地的低点之间有多少个柱子....,如果这个BIDE和当地的低点之间有30个点,就需要开单。如果( Bid - Low[ 50] >= 30 pips)- 开立一个订单。

 
MakarFX:

无论你想出什么检查方法,它仍然会在每一个刻度上进行--这是OnTick()函数的 一个特点。

谢谢。如果我知道,....也许我就不会这么费心了。

因此,如果我不是在每个tick上检查LOW,而是在每个烛台上检查,程序仍然会花费时间来处理每个tick,而且看起来和在每个tick上检查是一样的。

在你的代码中没有办法避免这个功能吗?它不应该在每一个tick上进行,而是应该在每一个分钟蜡烛的LOW上进行。

 
ANDREY:

谢谢你。如果我知道,....也许我就不会这么费心了。

那么,如果我不是在每个tick上检查LOW,而是在每个candle上检查,程序仍然会在处理每个tick上花费时间,而时间将与我在每个tick上检查时一样?

在你的代码中没有办法避免这个功能吗?它不应该在每一个tick上进行,而应该在每一个分钟蜡烛的LOU上进行。

空白()

原因: