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

 
barabashkakvn:

你好。

1.我不能使用 "Blau_Ergodic "指标,因为在文章的结尾没有存档。现在我需要一个包含文件" WilliamBlau.mqh"请把这个文件发给我(最好通过资料信息)。

2.所有的指标都是在...MQL5\Indicators\Examples\ - 这些是自定义指标,即那些指标,你可以修改代码

已发送。
 
forexman77:

我正试图在一个自定义指标 的基础上建立一个交易信号发生器。

出现了以下问题。

1.我可以在CiCustom之后的一行中指定任何名称,例如将其标记为 "m_ind;"。

2.这句话正确吗?

我的理解是正确的,这里我得到的是指标本身的值?

3.我无法理解程序如何获得指标值。也就是说,如果我们使用MQL4,我们应该指定指标名称,程序会根据名称找到它。那么我在哪里输入它的名字?

我已经创建了这个代码)我不会再进一步了,因为我需要更多的专家顾问在我的创作上。

总的来说,一切都很正确。这里只是代码。

   double             Custom(int index)                   { return(m_ind.ParamDouble(index));}
   double             Open(int index)                     { return(m_open.GetData(index));  }
   double             Close(int index)                    { return(m_close.GetData(index)); }

提出了一个问题。ParamDouble - 获取指定的浮点参数的值,该参数在创建指标时使用。也许我们需要访问指标缓冲区的值。

   double             Custom(int index)                   { return(m_open.GetData(index));  }
   double             Open(int index)                     { return(m_open.GetData(index));  }
   double             Close(int index)                    { return(m_close.GetData(index)); }

?

 
barabashkakvn:

总而言之,一切都很正确。除了代码。

提出了一个问题。ParamDouble - 获得指定的浮点参数值,在创建指标时使用。也许我们需要访问指标缓冲区的值。

?

看了一下帮助,在我看来,似乎需要 "ParamDouble"。我们实际上需要从缓冲区获取数值。

"CiCustom"类中只找到 "NumBuffers"

 
forexman77:
看了一下帮助,在我看来,它需要 "ParamDouble"。当然,一般来说,你需要从缓冲区中获取数值。
好吧,我可以看到,一切都会为你解决的。
 
barabashkakvn:
好吧,我看一切都会为你解决的。
如果我理解正确的话
double             Custom(int index)                   { return(m_ind.ParamDouble(index));}

这一行要求的指标值是什么?

在标准指标中,缓冲区的值是通过数据访问获得的,但在自定义指标 中没有关于数据访问的内容。

技术指标和时间序列的基本类和辅助类组 中有一些功能,但我如何附加它们?还是说它不合适?

 
forexman77:
如果我理解正确的话

这一行要求的指标值是什么?

在标准指标中,缓冲区的值是通过数据访问获得的,但在自定义指标 中没有关于数据访问的内容。

技术指标和时间序列的基本类和辅助类组 中有一些功能,但我如何附加它们?还是说它不合适?

1.是参数值--例如,将计算指标的输入参数。

2.不要混淆 - 你可以改变代码的指标是一个自定义指标。即使其名称与标准库中的指标相同。一个自定义指标的例子 - ...MQL5\Indicators\Examples\和 任何其他可以改变代码的地方。指标缓冲区将其内容(数据)绘制在图表上。你只需改变指标缓冲区中的数据,就可以在图表上绘制。你问的是什么权限?

3.我不明白。

 
barabashkakvn:

1.是的参数值 - 例如,将计算指标的输入参数。

2.不要混淆 - 你可以改变代码的指标是一个自定义指标。即使其名称与标准库中的指标相同。一个自定义指标的例子 - ...MQL5\Indicators\Examples\和 任何其他可以改变代码的地方。指标缓冲区将其内容(数据)绘制在图表上。你只需改变指标缓冲区中的数据,就可以在图表上绘制。你问的是什么权限?

3.我不明白。

这里是输入参数周期,用于计算指标 "q"。

class CSampleSignal : public CExpertSignal
  {
protected:
   CiCustom           m_ind;              // объект для доступа к значениям ind
   CiOpen             m_open;            // объект для доступа к ценам открытия баров
   CiClose            m_close;           // объект для доступа к ценам закрытия баров
  //--- настраиваемые параметры
   int      q;  // q - период, по которому вычисляется индикатор
   double             m_stop_loss;       // уровень установки ордера "stop loss" относительно цены открытия
   double             m_take_profit;     // уровень установки ордера "take profit" относительно цены открытия
public:
              CSampleSignal();
   //--- методы установки параметров настройки
   void               Q(int value)                 { q=value;   }
   void               StopLoss(double value)       { m_stop_loss=value;   }
   void               TakeProfit(double value)     { m_take_profit=value; }

对问题2。现在,下面的代码

protected:
   //--- метод инициализации объектов
   bool               Initind(CIndicators* indicators);
   bool               InitOpen(CIndicators* indicators);
   bool               InitClose(CIndicators* indicators);
   //--- методы доступа к данным объектов
   double             Custom(int index)                   { return(m_ind.ParamDouble(index));}//знаю, что не правильно
   double             Open(int index)                     { return(m_open.GetData(index));  }
   double             Close(int index)                    { return(m_close.GetData(index)); }
  };

如果我理解正确的话,我们在这里指定要接收关于开盘价和收盘价的信息,来自指标缓冲区的数值?

我理解你对标准指标的意思。缓冲区的数据是通过"主 " 获得的。例如,它显示在下面的代码中

 double             MA(int index)                       { return(m_MA.Main(index));       }
 double             Open(int index)                     { return(m_open.GetData(index));  }
 double             Close(int index)                    { return(m_close.GetData(index)); }

对第三个问题。如何从自定义指标 中获取数据?

为了更好地理解,简要介绍一下在创建交易信号发生器的过程中必须通过哪些步骤?

 
如果我理解正确的话,我们在这里指定要从指标缓冲区获得关于开盘价和收盘价的信息、数值?

是的。

标准指标是明确的。缓冲区的数据通过 "主 "检索。例如,如下面的代码。

是的,CiMA 类有Main 方法

如何从自定义指标 中获取数据?

.GetData(index))
其中索引是指标缓冲区编号。
 
barabashkakvn:

是的。

是的,CiMA 类有一个 方法

其中索引是指标缓冲区编号。
double             Main(int ind)                       { return(m_ind.GetData(0,ind));   }
对吧)?
 


什么时候能在windows phone 8上推出metatrader?