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

 
ANDREY:

很高兴我可以为你提供一些帮助:=):=):=)

现在说说我的代码,它可能是如此糟糕,以至于在其中探究是不愉快的。但至少告诉我,如果我把这个代码的一个数组(包含价格值)写在一个文件中,然后程序从这个文件中读取它,并在进一步的计算中使用它的值,一个只有60个元素的数组,我的代码会有什么好处?我的代码中到底有哪些地方是最佳的?
谢谢你的帮助。

这不是关于代码的质量。我不看任何其他人的代码。除了我需要的东西或在慈善事业的痛苦中,:=)))但这种情况越来越少了......。

如果你愿意,你可以用文字描述需要什么结果,以及你为之做了什么。然后就会清楚问题的正确方向是什么。

 
Alexey Viktorov:

或者是在慈善的阵痛中,:=))) ....

我读到过,复发通常发生在初春。 我希望你的缓解期能早点结束:=)))。

而且 我希望你的 攻击 能像可能的..... :=))一样频繁。:=)))

 
ANDREY:

谢谢你的提示。我已经开始阅读科瓦列夫教科书中的FILE OPERATIONS部分。的确......有些事情开始变得清晰了。我了解到,我测试的所有EA都是在Tester终端目录下读取以.cvv为扩展名的条形价格文本文件(尽管不是由我的程序创建)。
换句话说,来自任何程序的信息(数据)被写入文件,并从文件中读取这些数据,也是由任何程序进行的。在我看来,这些文件存储了大量的数据,在程序中存储这些数据是不合理的。类似mqh文件的东西。
如果你想给我解释一下Alexey Victorov这句话的意思:"....你想写.csv和读array....." ,来自 的帖子,参考我在 的代码
我以为他是指文本文件.cvv,有来自测试者目录的条形价格。但他到底是什么意思,我还是不明白。我不是在写这些.cvv文件,而是Alpari经销商的程序...程序是如何从数组中读取的--一般来说,我了解一点...它通过地址访问数组中的一个单元,进入该单元并访问该单元的值(即读取它)。一个程序怎样才能读入一个数组而不是读出一个数组?这是个无法解决的矛盾....,在我这个外行看来,这是一个无法解决的矛盾。我认为,出于某种原因, 一个数组,你只能写一些值。而且你只能 一个数组 读取。

用二进制写一个数组,没有科瓦列夫。这本教科书是2009年的。只有binfiles。而后来出现的阵列到bin文件。Bin文件的写入和读取速度更快。他们没有线状物。但它们对人类来说是不可读的)。

 
Valeriy Yastremskiy:

科瓦列夫没有一个二维码阵列记录。这本教科书是2009年的。那里只有binfiles。后来出现了指向bin文件的阵列。Bin文件的写入和读取速度更快。他们没有线状物。但它们对人类来说是不可读的)。

非常感谢你提供的信息,这对我来说是全新的。而我的理解是50%....我将深入研究这个主题,如果我确定我在目前的发展阶段需要它。
目前,我专注于我的小代码试图用最少的时间和其他计算机资源,找到在一分钟蜡烛上开出的2个相邻订单之间的最低价格,有2个点的差异。为此,我创建了一个数组。有些人在这里试图说服我,这个数组必须用一个函数写入一个文件,然后用另一个函数从文件(即从数组)中获取数据,以便进一步计算。

但是,如果我把这段代码的一个数组(包含价格值)写到一个文件中,然后程序从这个文件中读取它,并在随后的计算中使用它的值,那么它的优势在哪里呢? 而且这个数组将只包含60个元素。在我的代码中,究竟什么才是最佳的?

自然是在测试过程中。 将会有很多这样的订单 内的分钟蜡烛,我们将需要计算其间的最小值。 将会有很多人。.我的代码只是对我想到的一个想法的说明。
阿列克谢-维克多罗夫不能回答这个问题,因为他还没有发作过慈善....。而且他还没有与之相关的痛苦和抽搐:=)。
也许你已经具备了所有的先决条件,可以帮助我向前迈进。


谢谢你的帮助。

 
ANDREY:

很难理解圣杯的 创造者。可以将所有的计算传递给指标,并获得信号进入专家顾问。

 
ANDREY:

非常感谢你提供的信息,这对我来说是新的。而且我理解了50%的内容....如果我确定在我发展的这个阶段需要它,我将彻底研究这个主题。
目前,我专注于我的代码试图用最少的时间和其他计算机资源,找到在一分钟蜡烛上打开的2个相邻订单之间的最低价格,并有2点的差异。为此,我创建了一个数组。有些人在这里试图说服我,这个数组必须用一个函数写入一个文件,然后用另一个函数从文件(即从数组)中获取数据,以便进一步计算。

但是,如果我把这段代码的一个数组(包含价格值)写到一个文件中,然后程序从这个文件中读取它,并在随后的计算中使用它的值,那么它的优势在哪里呢? 而且这个数组将只包含60个元素。在我的代码中,究竟什么才是最佳的?

当然,在测试的过程中。 将会有很多这样的订单 内的分钟烛台,我们将不得不计算其间的最小值。 将会有很多人。.我的代码只是对我想到的一个想法的说明。
阿列克谢-维克多罗夫无法回答这个问题,因为他还没有进行过慈善袭击....。而且他还没有与之相关的痛苦和抽搐:=)。
也许你已经具备了所有的先决条件,可以帮助我向前迈进。


谢谢你的帮助。

我一点也不理解这种逻辑。为什么要把几个数据写在数组中? 你可以把它们写在变量中。数组是指有许多相同类型的变量。而如果少于5个,你可以把它们储存在变量中。为什么存储在数组中的数据要被写入一个文件,以后可以在同一个专家顾问中读取?反正他们都可以用。它们被写在文件中,以便在不同的专家顾问之间交换或进一步处理,而不是在本EA中。此外,如果我没记错的话,这个数组总是全局的。

 
ANDREY:

非常感谢你提供的信息,这对我来说是新的。而且我理解了50%的内容....如果我确定在我发展的这个阶段需要它,我将彻底研究这个主题。
目前,我专注于我的代码试图用最少的时间和其他计算机资源,找到在一分钟蜡烛上打开的2个相邻订单之间的最低价格,并有2点的差异。为此,我创建了一个数组。有些人在这里试图说服我,这个数组必须用一个函数写入一个文件,然后用另一个函数从文件(即从数组)中获取数据,以便进一步计算。

但是,如果我把这段代码的一个数组(包含价格值)写到一个文件中,然后程序从这个文件中读取它,并在随后的计算中使用它的值,那么它的优势在哪里? 而且这个数组只包含60个元素。在我的代码中,究竟什么才是最佳的?

自然,在测试期间。 将会有很多这样的订单 内的分钟烛台,我们将需要计算其间的最小值。 将会有很多人。.我的代码只是对我想到的一个想法的说明。
阿列克谢-维克多罗夫无法回答这个问题,因为他还没有进行过慈善袭击....。而且他还没有与之相关的痛苦和抽搐:=)。
也许你已经具备了所有的先决条件,可以帮助我向前迈进。


谢谢你的帮助。

开头太远了,很难详细回答......但我还是要努力做到聪明......。

如果我没记错的话,你必须确定开单的蜡烛上的低点是什么时候形成的。当这个蜡烛图是当前的时候,就没有问题了:我们把两个数字中较小的那个放入变量中,这样做直到蜡烛图收盘。但如果我们需要在这根蜡烛已经是第10根的时候确定它,那么对于mql4来说已经是一个问题了。在mql5中很容易做到,只要复制 "从和到 "选定的时间刻度,数组就会包含你需要的一切。但是对于mql4来说,有人建议你把ticks写到一个文件里,这样以后你就可以得到这些ticks,并使用这个数组来判断,如果该蜡烛图的Low低于数组中的最小值,就意味着Low是在订单打开之前。如果它们相等,这意味着Low是在订单打开后形成的。

然而......如果EA有效,那么在一个变量中确定它就足够了,就像这里写的那样;有一个函数可以达到这个目的,你可以在文件中的数学函数部分阅读。

 
Alexey Viktorov:

开始是如此遥远,以至于很难详细回答......但我会试着聪明点......

如果我没记错的话,你必须确定开立订单的蜡烛低点是什么时候形成的。当这个蜡烛图是当前的时候,就没有问题了:我们把两个数字中较小的那个放入变量中,这样做直到蜡烛图收盘。但如果我们需要在这根蜡烛已经是第10根的时候确定它,那么对于mql4来说已经是一个问题了。在mql5中很容易做到,只要复制 "从和到 "选定的时间刻度,数组就会包含你需要的一切。但是对于mql4来说,有人建议你把ticks写到一个文件里,这样以后你就可以得到这些ticks,并使用这个数组来判断,如果该蜡烛图的Low低于数组中的最小值,这意味着Low是在订单打开之前。如果它们相等,这意味着Low是在订单打开后形成的。

然而......如果EA有效,那么将其存储在一个变量中就足够了,正如这里所描述的,有一个函数可以达到这个目的,你可以在文档中的数学函数部分阅读。

非常感谢你为我提供的新信息....,特别是关于 在这种情况下 mql4mql5 相比的能力。 然而,尽管看起来很奇怪,你所描述的任务,我自己已经解决了,而且解决的方式让我对其独创性和优化性感到惊讶
之后,我又遇到了一个类似的问题
我被告知要把刻度线写到一个文件里,

我创建了一个代码,它解决了我的任务,而不需要将点数写入文件使用这个代码,我试图用最少的时间和其他计算机资源找到在一分钟蜡烛上打开的2个相邻订单之间的最低价格 当然,在一分钟的蜡烛图里面 会有很多 这样的订单我们必须计算出它们之间的最小值这只是对我的想法的一个说明。

现在我对这个问题的答案很感兴趣,如果我像你建议的那样把ticks写到文件里,我的代码会有什么好处?我的代码中到底有什么是最理想的?


关于这个问题,Valeriy Yastremskiy 做了说明,但我想听听建议我把蜱虫放入文件的人的反馈。
谢谢你的帮助。

 
Valeriy Yastremskiy:

这个逻辑有点不清楚。为什么要把成对的数据写在一个数组中。你可以把它们写在变量中。数组是指有许多相同类型的变量。而如果少于5个,你可以把它们储存在变量中。为什么存储在数组中的数据要被写入一个文件,以后可以在同一个专家顾问中读取?反正他们都可以用。 它们被写入文件,以便在不同的专家顾问之间进行交流或进一步处理,而不是在本EA中。此 外,如果我没记错的话,这个数组总是全局的。

谢谢你的提示。我同意,有时可能会有5个或更少的虱子。但在一分钟的蜡烛中,可以有比秒数多得多的点数,其相邻订单之间的数量也可以远远超过5。
我特别高兴的是,我的想法与突出的红色相吻合。但我对他们没有把握,因为更多有经验的同志加强了我的不确定性。

 
ANDREY:

非常感谢你为我提供的新信息....,特别是关于 在这种情况下 mql4mql5 相比的能力。 然而,尽管看起来很奇怪,我自己已经解决了上述问题,我对其独创性和优化性感到惊讶
然后我又遇到了这个帖子中提出的另一个类似问题。

每一个刻度 的价格值。我也知道如何在X+2 的时候用一个周期来做,以及如何iLow和iLowest 那样在X+2 的时候一次性 做。
如果你能教我怎么做,我将非常感激。
谢谢


有人建议我将蜱虫记录在一个文件中

关于交易、自动交易系统和测试交易策略的论坛。

新手对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论

Alexey Viktorov, 2021.04.09 18:33

你可以。你应该在你的.bin文件中使用

uint  FileWriteArray( 
   int          file_handle,         // handle файла 
   const void&  array[],             // массив 
   int          start=0,             // начальный индекс в массиве 
   int          count=WHOLE_ARRAY    // количество элементов 
   );

并阅读

uint  FileReadArray( 
   int    file_handle,               // handle файла 
   void&  array[],                   // массив для записи 
   int    start=0,                   // стартовая позиция для записи в массив 
   int    count=WHOLE_ARRAY          // сколько читать 
   );

我已经创建了代码,解决了我的问题,而不是将刻度线写到文件中去

把它写进文件?如我的代码。这不是一个工作代码,而是为了说明我的想法,即如何在一分钟烛台上找到两个相邻订单之间的最小值
,感谢您的帮助。

double P[60],Z;
int Tick,x,x1,G,G1,G2,T;

void OnTick()
{
Tick++;

if (OrdersTotal()==1&&Tick<2189)
{
P[x]=Bid;
Print("------------------------P[x]=Bid------------------------=", DoubleToString(P[x],5), "  x ",  x);
x++;
}
if (OrdersTotal()==2&&Tick==2189)
{
x1=x;
x=0;
ArraySort(P,WHOLE_ARRAY,0,MODE_ASCEND);
T=(60-x1);
Print("------------------------МИНИМУМ=------------------------=",DoubleToString(P[T],5), "  Tick ",  Tick, "  x1 ",  x);
}

if (Tick==2176||Tick==2188)
{
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,Ask+300*Point,Ask-100*Point,"300",0);
G2=G;
G=Tick;
}
}

这意味着我直接将每个tick的价格写进数组,而不是写进文件。


通过这段代码,我试图用最少的时间和其他计算机资源找到在一分钟蜡烛上打开的两个相邻订单之间的最低价格,并有2点的差异 当然,在一分钟的蜡烛图里面 会有很多 这样的订单我们必须计算出它们之间的最小值这只是对我的想法的一个说明。

现在我对这个问题的答案很感兴趣,如果我像你建议的那样把ticks写到文件里,我的代码会有什么好处?我的代码中到底有什么是最理想的?


关于这个问题,Valeriy Yastremskiy 做了说明,但我想听听建议我把蜱虫放入文件的人的反馈。
谢谢你的帮助。

为了不使试图帮助的人感到吃力,特别是我,最好把信息 "放在口袋里 "并粘贴,而不是链接到它。

现在说说这个问题:1号订单已经开仓......此时的Low当然低于订单的开仓价。好吧,让我们面对它...

2号订单是开放的,我们必须控制价格在.......... 我们再次使用数学函数fmin()将蜡烛收盘前的数值写入变量。一旦蜡烛被关闭,我们就停止价格控制,我们不再需要它了。获得的值将是第二笔订单开盘和蜡烛收盘之间的时间间隔内的最低价格。也许我搞错了......

原因: