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

 
EgorKim:

像这样。

而一些优化器的通道在可视化器中是重合的。

而有些通行证--根本就没有一笔交易。

差异可能是由于指标缓冲区 中未初始化的值--当计算通过时,缓冲区中可能有垃圾。


当信号出现时,只需打印缓冲区的数据。

 
Vladimir Karputov:

由于指标缓冲区 中未初始化的值,可能会出现差异--当计算结束后,缓冲区中可能有垃圾。


当信号出现时,只需打印出缓冲区的数据。

你说的是EA吗?

如果关于EA--我在例子中把一切都归零。

而如果你说的是一个指标--你可以做任何事情。我不是作者。

 
EgorKim:

你说的是EA吗?

如果你说的是EA,我在例子中把一切都归零。

但如果你说的是一个指标,它可能是任何东西。我不是作者。

我说的是指标:如果你错过了缓冲区中的一些指标,可能会有垃圾。一般来说,首先是一个可靠的指标 - 然后是使用它的专家顾问。

 
EgorKim:

像这样。

而一些优化器的通道在可视化器中是重合的。

而有些通行证根本就不符合任何贸易的要求

我认为问题出在指标上。

正如Artem所正确指出的,问题出在实际数据上。

它只是不愿意告诉我如何做)

不,我错了,我以为你有一个多时间框架的指标

你有一个最常见的指标,你想从别人的时间框架中检索其数据。

在EA中,你必须检查所需时间框架的数据的相关性。如果这个时间段还没有数据,那么就退出,直到下一个tick。
然后,当所有来自老框架的数据都以正确的数量被接收时--再调用指标。

试着这样做。

 
Artyom Trishkin:

不,我错了,我以为你有一个多时间框架的指标。

你有一个最常见的指标,你想从别人的时间框架中检索其数据。

在专家顾问中,你需要检查所需时间框架的数据的相关性。如果这个时间段还没有数据,那么就退出,直到下一个tick。
然后,当所有来自较早时间框架的数据都以正确的数量收到时--再调用指标。

试着这样做。

你是如何做到这一点的?我的意思是要检查其相关性。

好吧,我检查一下,它不是0.0(上面的代码)。

我还能做什么?指标给我什么,我就接受什么。

这就是指标的作用。

 
EgorKim:

你是如何做到这一点的?我的意思是要检查它是否是最新的。

好吧,我检查一下,它不是0.0(上面的代码)。

我还能做什么?我从指标中得到的东西,我得到了。

为此,它是一个指标。

你从KodoBase获取指标吗?如果是这样,你能给我它的网址吗?

 
EgorKim:

你是如何做到这一点的?我的意思是要检查它是否是最新的。

好吧,我检查一下,它不是0.0(上面的代码)。

我还能做什么?我从指标中得到的东西,我得到了。

为此,它是一个指标。

错误是在指标本身。

我已经重写了很多专家顾问,这是第一次出现这种问题。

你可以自己看并建立专家顾问,我已经给出了上面的逻辑。

而且你可以看到终端和测试器的表现有多糟糕。即使指标参数相同,其结果也是不同的)

 
Vladimir Karputov:

你是从KodoBase获得指标的吗?如果是这样,我可以得到它的网址吗?

https://www.mql5.com/ru/code/64

Plombiers - Осциллятор в канале
Plombiers - Осциллятор в канале
  • www.mql5.com
Просмотров: 6747 Рейтинг: Опубликован: 2010.01.26 12:54 Обновлен: 2016.11.22 07:33 Пример использования канала и осциллятора Stochastic. Иногда полезно смотреть поведение осциллятора в канале. Оценка ситуации упрощается. Изменяя параметры, можно гибко настроить отображение индикатора. Bulls Bears Power...
 

一般来说,你可以先测试一下(在指标Plombiers 上工作--通道中的振荡器--指标应该在文件夹[data folder]\MQL5\Indicators\plombiers.mq5)。


交易策略的想法

该专家顾问使用自定义指标Plombiers 工作。 对于信号的形成,指标的两条线被考虑:"阻力 "和 "支持"。

Plombiers EA

买入 开仓的信号:第1条的低价低于第1条的 "支持 "线

建立卖出头寸 的信号:第1条的价格高点高于第1条的 "阻力 "线

//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SearchTradingSignals(void)
  {
   double means[],resistance[],support[];
   MqlRates rates[];
   ArraySetAsSeries(means,true);
   ArraySetAsSeries(resistance,true);
   ArraySetAsSeries(support,true);
   ArraySetAsSeries(rates,true);
   int start_pos=0,count=3;
   if(!iGetArray(handle_iCustom,0,start_pos,count,means) || 
      !iGetArray(handle_iCustom,1,start_pos,count,resistance) || 
      !iGetArray(handle_iCustom,2,start_pos,count,support) || 
      CopyRates(m_symbol.Name(),Period(),start_pos,count,rates)!=count)
     {
      return(false);
     }

   int size_need_position=ArraySize(SNeedPosition);
   if(rates[1].low<support[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
     }
   if(rates[1].high>resistance[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
     }
//---
   return(true);
  }
 
Vladimir Karputov:

一般来说,你可以先测试一下(在指标Plombiers 上工作--通道中的振荡器--指标应该在文件夹[data folder]\MQL5\Indicators\plombiers.mq5)。


交易策略的想法

该专家顾问使用自定义指标Plombiers 工作。 对于信号的形成,指标的两条线被考虑:"阻力 "和 "支持"。


买入 开仓的信号:第1条的低价低于第1条的 "支持 "线

开设卖出头寸 的信号:条形图#1的高价位高于条形图#1的 "阻力 "线

从较高的时间框架中获取"支持 "和"阻力 "

也就是说,MTF指标必须在优化器的输入中。

input ENUM_TIMEFRAMES TimeFramePlombiers=PERIOD_H4;

handle_Plombiers=iCustom(Symbol(),TimeFramePlombiers,"plombiers",итд);

像这样

原因: