初学者的问题 MQL5 MT5 MetaTrader 5 - 页 952

 
vladzeit:

***

1.要求提供当前工具的当前价格。

***

2.1 如果当前价格是点>=100点,我们开仓。

***

你想抓住一个缺口吗?

 
Vladimir Karputov:

你想抓住一个缺口吗?

弗拉基米尔, 令我羞愧的是,我不确定我是否理解什么 是Gap)

我想实现一个简单的算法,在这个算法中,价格变化若干点将是进入市场、购买或出售的条件。并不重要。

因此,我想学习如何获得符号的当前价格,将其保存在一个局部或全局变量中,并在一个事件中从那里取回它,并将其重置为零。

我想把它主要用于寻找市场的进入点。

我刚刚开始学习mql5,主要是因为你的专家顾问的例子,你写了很多,谢谢你)。

我能够根据你的例子拼凑出自己的算法,但我对获取当前价格并将其保存在一个变量中感到困惑。

 
vladzeit:

***

我想实现一个简单的算法,在这个算法中,价格变化若干个点将是进入市场的条件,买入或卖出。无所谓了。

***

你必须明白,如果你在当前的tick上设置了一个价格,在下一个tick上,这个价格可能根本没有变化,或者变化的点数非常小。

因此,你需要更具体地说明你想做什么。

  • 例如,在N秒内获得一次当前价格
  • 仅在新条形图形成时获得当前价格。
  • ...
  • 然后才将这个价格与之前的存储值进行比较。

 
Vladimir Karputov:

应该理解的是,如果你记住了当前刻度的价格,那么在下一个刻度上,这个价格可能根本没有变化,或者变化的点数非常小。

因此,你需要更具体地说明你想做什么。

  • 例如,在N秒内获得一次当前价格
  • 仅在新条形图形成时获得当前价格。
  • ...
  • 然后才将该价格与之前的记忆值进行比较。

嗯...我没有想到这些特点)

  • 只在新条形图诞生的时刻获得当前价格。
这个例子对我来说更有用。
 
vladzeit:

嗯...这些是我没有想到的功能)

  • 只有当一个新的条形图诞生时,才能获得当前的价格。
这个例子对我来说会更有用。

我今晚会试着展示一个例子(很晚)。

 

下午好!
我正在努力加快指标的速度。我正试图加快指标的速度,因为我有一个时间数组,应该与条形索引 进行比较,我看到这里有一些缓慢的情况。我已经检查过了,如果我准备了一个带索引的数组,并与条形索引相比较,我在7秒内得到40K个元素,但如果我有一个时间数组,则需要140秒。有什么窍门可以加快指标的速度吗?

   bool FindArr(int Bar)
     {
      int Size=CheckSizeTime;
      for(int i=restBars; i<Size; i++)
        {
         datetime BarTime=iTime(NULL,PERIOD_CURRENT,Bar);
         if(BarTime==ArrCol.BarTimeArray[i])
           {
            restBars++;
            return(true);
           }
        }
      return(false);
     }
if(prev_calculated==0)         
        for(int i=0;i<rates_total;i++)
           {
            if(Arr.FindArr(i))
              {
               ColorSectionBuffer[i]=low[i];
               ColorSectionColors[i]=0;
              }
            else
              {
               ColorSectionBuffer[i]=0;
               ColorSectionColors[i]=EMPTY_VALUE;
              }
           }
 
vladzeit:

嗯...这些是我没有想到的功能)

  • 只有当一个新的条形图诞生时,才能获得当前的价格。
这个例子对我来说会更有用。
弗拉基米尔-卡尔普托夫

我今晚会试着展示一个例子(很晚)。

这里正在为某人做一个例子,让他在每一次打勾 时获得价格。

//+------------------------------------------------------------------+
//|                                               Display prices.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.000"
//---
#include <Trade\SymbolInfo.mqh>  
CSymbolInfo    m_symbol;                     // symbol info object
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(!m_symbol.Name(Symbol())) // sets symbol name
      return(INIT_FAILED);
   RefreshRates();
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(!RefreshRates())
      return;
   Comment("Ask: ",DoubleToString(m_symbol.Ask(),m_symbol.Digits()),"\n",
           "Bid: ",DoubleToString(m_symbol.Bid(),m_symbol.Digits()));
  }
//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates(void)
  {
//--- refresh rates
   if(!m_symbol.RefreshRates())
     {
      Print("RefreshRates error");
      return(false);
     }
//--- protection against the return value of "zero"
   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
      return(false);
//---
   return(true);
  }
//+------------------------------------------------------------------+

解释将在明天进行,我今晚已经在睡觉了。

明天还将有一个新酒吧的例子。

附加的文件:
 
Vladimir Karputov:

这里有一个为别人获取每个勾的 价格的例子。

我明天再解释吧,我今晚已经在床上了。

明天还将有一个新酒吧的例子。

弗拉基米尔,谢谢你。CSymbolInfo RefreshRates 函数 ,有了一点了解。我在你的报告中看到过它,也在一本初级读物中读到过。

OnTick 中调用这个函数Comment 中输出价格值,我从这个例子中也很清楚。OnInit检查当前符号 的程序对我来说也很清楚

在等待新栏的例子的同时,我将尝试用你的例子进行一些实践,我还没有在实践中使用过它。我将尝试一下。


 
fxsaber:

谢谢你,我已经把它修好了

谢谢 - 现在它似乎只正确地给出了目录。

然而,我意识到,子目录是由一个"\"分隔的,而MQL标准提供了两个"\"斜线。也就是说,代码需要生成文件路径,由于有一个斜线,如果不进行额外的后期处理是不可能的,是否有一个选项可以一次获得两个斜线?

 
Aleksey Vyazmikin:

谢谢你--现在它似乎只正确地给出了目录。

然而,我意识到,子目录是由一个"\"分隔的,而MQL标准提供了两个"\"斜线。也就是说,代码需要生成文件路径,由于有一个斜线,如果不进行额外的后期处理是不可能的,是否有一个选项可以一次获得两个斜线?

Print("\\");
原因: