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

 
darirunu1:

你是否有视力障碍?

这些马的文字是怎么回事?

 
Сергей Таболин:

你是否有视力障碍?

这些马的文字是怎么回事?

一个意外。

 
Alexey Viktorov:

如果一个人为自己而写呢?

反正他也不可能从一个看不见的点测出距离,交点会在别的地方。

 
Taras Slobodyanik:

反正它不会测量从一个看不见的点的 距离,交点会在不同的地方。

我是说,如果一个人是为自己写作,他就明白自己在做什么,明白会发生什么。

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

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

Taras Slobodyanik, 2021.02.28 09:37

如果你不知道如何检查交易的正确性,它们将被挂在空中,用户会说--MT4是一个故障。)


而正是为了从一个看不见的点开始测量,你需要把这个值放到一个变量中。
 
Alexey Viktorov:

我是说,如果一个人为自己写作,他就会明白自己在做什么,明白会发生什么,不会说什么。


而只是为了从一个看不见的点开始测量,你需要把这个值放到一个变量里。

这就是Grails 的诞生过程)

那么,就不是进入一个变量,而是进入一个缓冲区,因为会有很多这样的点。

 
看看你最后得到了什么。底部指标,我没有改变本地代码,我只是玩了一下参数。我在指标的代码中把零条改为价格图中的第一条。
 
Alexey Viktorov:

在穿越的那一刻,MA的价值与酒吧关闭后变得不一样了。因此,这个值只能在穿越的时候找到。

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//---

double     FixPrice;        // переменная
bool       Fix = false;      // маркер
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(Fix == false)
     {
      if(Close[0] > MA_lo)
         FixPrice = Close[0];
     }                                                                              // делаем замер пока цена не пересечет МА
   if(Close[0] < MA_lo)
      Fix = true;
   if(Fix == true)
      FixPrice_L = FixPrice ;
//+------------------------------------------------------------------+
  }
//+------------------------------------------------------------------+

这是你想让价值被记住的方式。

但请记住,在

Close[0]=Open[0] 
и Close[0]=High [0] и Close[0]=Low[0]


在蜡烛的开口处。

因此,如果你需要即时、实时的数据,你最好使用

double Bidd=NormalizeDouble(Bid,Digits); если цена сверху или
double Askk=NormalizeDouble(Askk,Digits); если цена снизу МА

double MA_lo=NormalizeDouble(MA_lo,Digits);

最好将所有的价格正常化,以便在条件下进行比较,这样你就不会感到惊讶了 :)

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • 2021.02.28
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
Александр:

这是你希望价值被记住的方式。

但请记住,在

在蜡烛的开口处。

因此,如果你想要即时的、实时的,最好使用

最好将所有价格正常化,以便在条件下进行比较,这样你就不会感到惊讶 :)

我的天啊!我是不是想要什么?我有要求什么吗?你认为我是谁?
 

大家好!
在编写测试EA的代码时,我需要在每分钟的蜡烛内实时搜索低点。为了做到这一点,我选择了一个预定义的变量 Low[0],索引为0。索引为0是为了搜索每个当前蜡烛的低点。

以下是我的代码
void OnTick()

{

Print("------------", Low[0] );

}

在第一个(黄色)蜡烛图上,变量显示的是我需要的最小值

在随后的所有蜡烛图上,直到2010.01.04 00:30:00,变量显示为-1.6119,也就是说,它重复了第一个蜡烛图的最小值,而不是在每一根分钟蜡烛图上寻找最小值。
2010.01.04 00:30:00 的蜡烛图上,它又显示了每一个最小值

在这根蜡烛之后的下一根蜡烛上,它显示的是-1.6128,也就是说,它重复了第一根蜡烛的最低点,而不是在每根一分钟的蜡烛内寻找低点

我用同样的函数 iLow(NULL , 0,0)代替了Low[0] 变量,但效果是一样的。
问题
如何使用提到的函数或变量来搜索每分钟蜡烛的最小值,或者在MQL4中可以使用什么其他函数?

感谢大家的帮助。

Документация по MQL5: Предопределенные переменные
Документация по MQL5: Предопределенные переменные
  • www.mql5.com
Предопределенные переменные - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
iLow(NULL,1,0)
原因: