Discussão do artigo "Uso dos Recursos no MQL5" - página 2

[Excluído]  
Obrigado.
 

O uso de recursos no testador deve funcionar? Não está funcionando. Erro 4802.

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1

#resource "\\Indicators\\Examples\\ADX.EX5"
#property tester_indicator "\\Indicators\\Examples\\ADX.EX5"
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int handle=iCustom(Symbol(),Period(),"::Indicators\\Examples\\ADX.EX5");
   if(handle!=INVALID_HANDLE)
     {
      ChartIndicatorAdd(0,1,handle);
     }
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Função de iteração de indicador personalizado
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
  
  return(rates_total);}

	          
 
Karlson:

O uso de recursos no testador deve funcionar? Não está funcionando. Erro 4802.

O que você realmente deseja fazer?

Substituir a função de cálculo OnCalculate desse indicador em um indicador externo com seu próprio mecanismo de cálculo? Não é possível fazer isso.

 
Sim, eu queria que meu indicador recebesse dados do Zigzag e o incluísse como um recurso.
 

Mas para verificar o indicador no testador, você ainda precisa da presença do próprio mecanismo de travamento.

if(MQL5InfoInteger(MQL5_TESTING)==true) // se testador, obter da pasta
     {
      f_h=iCustom(_Symbol,_Period,"Examples\\Zigzag",5,5,3);
     }
   else                                 // se, no gráfico, usarmos o
     {
      f_h=iCustom(_Symbol,_Period,"::Indicators\\Examples\\Zigzag.EX5",5,5,3);
     }

Outra opção é embutir a trava de segurança completamente.

 

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Discussão do artigo "Usando recursos em MQL5".

Renat, 2013.01.16 22:21

Isso foi adicionado na compilação 730 em 24 de novembro de 2012:

  • MQL5: Adicionado suporte para armazenar indicadores em recursos EX5. Os indicadores em recursos não poderão trabalhar com seus próprios recursos.
Você poderia me dizer como criar um objeto gráfico do tipo OBJ_BITMAP_LABEL em um indicador carregado a partir de recursos e sobrepor o texto de TextOut nele?
Podemos fazer uma exceção apenas para TextOut - a capacidade de trabalhar com seus próprios recursos de programas carregados a partir de recursos?
 
fyords:
Poderia me dizer como é possível criar um objeto gráfico do tipo OBJ_BITMAP_LABEL no indicador carregado a partir de recursos e sobrepor a ele o texto do TextOut?
Somente o TextOut pode abrir uma exceção - a capacidade de trabalhar com seus próprios recursos de programas carregados a partir de recursos?
E em que lugar exatamente está o problema? O que exatamente não está funcionando?
 
Renat:
Onde exatamente está o problema? O que exatamente não está funcionando?

Há um indicador, a partir do qual o indicador filho é iniciado, a partir de recursos.
TextOut é usado no indicador filho e o resultado é carregado em OBJ_BITMAP_LABEL por meio de ResourceCreate, mas não há possibilidade de usar recursos no recurso.

O resultado é que o objeto aparece, o recurso é especificado nas propriedades, mas o texto em si não é gerado.

 
fyords:

Há um indicador, a partir do qual um filho é iniciado, a partir de recursos.
TextOut é usado no filho e o resultado é carregado em OBJ_BITMAP_LABEL por meio de ResourceCreate, mas não há possibilidade de usar recursos no recurso.

O resultado é que o objeto aparece, o recurso é especificado nas propriedades, mas o texto em si não é gerado.

Sim, atualmente é impossível carregar recursos de um objeto de recurso.

Na verdade, a situação é a seguinte: o indicador "puxado" de um recurso de terceiros começa a viver dentro do módulo chamado e todas as suas chamadas para recursos vão para o corpo do módulo chamado, não para o corpo nativo. No momento, estamos pensando sobre esse problema e provavelmente o resolveremos.

 
Renat:

... Estamos pensando nesse problema agora e provavelmente o resolveremos.

Obrigado, estarei aguardando.