[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 235

 
FinBuda писал(а) >>

Olá, estou pedindo ajuda ao conhecedor, meu indicador não quer puxar pelo fluxo, tenho que trocar constantemente de quadro para atualizá-lo para a última barra, como posso consertar esta falha? Estou muito agradecido por isso.

Você não pode testá-lo sem o segundo indicador.

 
Vinin >> :

Sem um segundo indicador, ainda não há como verificar.

Desculpe! Eu estou corrigido :)

Arquivos anexados:
indu2.mq4  3 kb
 
FinBuda писал(а) >>

Desculpe! Eu estou corrigido :)

Funciona, é claro, mas os freios são terríveis. É necessário transferir os cálculos do indicador auxiliar para o indicador principal. Em geral, seria melhor otimizar os cálculos.

Arquivos anexados:
norms2.1.mq4  4 kb
 
Vinin >> :

Funciona, é claro, mas os freios são terríveis. É necessário transferir os cálculos do indicador auxiliar para o indicador principal. Em geral, seria melhor otimizar os cálculos.

Muito obrigado por sua ajuda! Outra pergunta no caminho, como posso otimizar os cálculos, e como normalizar melhor o MACD para que funcione dentro de certos limites? Estou apenas longe dos detalhes e da programação, por isso só consegui encontrar um normalizador mais ou menos adequado, visto acima :)

 
FinBuda писал(а) >>

Muito obrigado por sua ajuda! E outra pergunta pelo caminho, como posso otimizar os cálculos, e como melhor normalizar o MACD para que funcione dentro de certos limites? Estou apenas longe dos detalhes e da programação, por isso tudo que pude encontrar mais ou menos adequado foi o normalizador mostrado acima :)

Pode haver muitas opções de otimização. Eu realmente não entrei no código.

 
FinBuda >> :

Muito obrigado por sua ajuda! Tenho outra pergunta, qual é a melhor maneira de otimizar o cálculo e como normalizar o MAKD para mantê-lo dentro dos limites que defini? Estou apenas longe do hardware e da programação, por isso tudo o que pude encontrar mais ou menos adequado foi o normalizador visto acima :)

Você está usando uma variante que foi postada na base de código, é apenas um conceito e não está otimizada para o desempenho. Para fins práticos, sugiro definir a variável characteristic_period manualmente a partir de variáveis externas, selecionando-a de tal forma, que 3-4 ciclos completos do indicador principal ocorram durante um determinado número de períodos

//+------------------------------------------------------------------+
//|                                                   Normalizer.mq4 |
//|                                          Copyright © 2008, al_su |
//|                                                  al_su31@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, al_su"
#property link      "al_su31@mail.ru"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_maximum 1
#property indicator_minimum -1
#property indicator_level1 0.25
#property indicator_level2 0.5
#property indicator_level3 0.75
#property indicator_level4 -0.25
#property indicator_level5 -0.5
#property indicator_level6 -0.75
#property indicator_color1 RoyalBlue
//---- input parameters
#define PERIODS_CHARACTERISTIC 3

extern string  Indicator="ind-2";
extern int     mode=0;
extern int     param1=8;//Ну или 9, не важно...
extern int     param2=34;
//extern int param3;Скока надо параметров, стока и задаем
extern double  characteristic_period; //как видите, переменную вынесли вовне

//---- buffers 
double Normalizer[];
double sigma;

//-------------------------------------------------------------------------------
double Indyuk(int shift)
{
   return (iCustom(0,0, Indicator, param1, param2,/*param3, и т.д.:)*/ mode, shift));
}

double MathTanh(double x)
{ 
   double exp;
   if( x>0)  {exp=MathExp(-2* x);return ((1-exp)/(1+exp));}
   else {exp=MathExp(2* x);return ((exp-1)/(1+exp));}
}

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorShortName("Normalized "+ Indicator);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Normalizer);
   SetIndexDrawBegin(0, characteristic_period);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int   i, j, limit, counted_bars=IndicatorCounted();
   double S;
   if( counted_bars>0) counted_bars--;
   limit=MathMax(Bars- counted_bars-1,0);
//----
   for( i= limit; i>=0; i--)
   {
      S=0;
      for( j=0; j< characteristic_period; j++) S+=MathPow( Indyuk( i+ j),2);
      S/= characteristic_period;
      S=MathSqrt( S);
      if( S>0) Normalizer[ i]= Indyuk( i)/ S;
      Normalizer[ i]= MathTanh( Normalizer[ i]);
   } 
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
alsu >> :

Outra opção - que eu pessoalmente uso com mais freqüência - é especificar o número de dias para a corrida do exterior e convertê-los em período_característico no corpo do indicador

...

extern double days_for_normalization=3;   // например, смотрим за три дня

...

int init()
{

...


characteristic_period=1440./Period()* days_for_normalization;   // 1440 - это количество минут в сутках
}
 
Em geral, Vinin está certo, o cálculo é realmente mais rápido se o código do segundo indicador for inserido no primeiro. A desvantagem aqui é que você tem que fazer mais codificação (e o que você tirou do kodobase foi um dos objetivos de mostrar como simplificar este trabalho), mais o segundo indicador ocupa buffers do primeiro, o que nem sempre é aceitável.
 
Obrigado a todos por sua ajuda!!! Vamos tentar :)
 

Não está dando certo...quando você lê todos estes EAs aqui, mas eu só tenho MM, gostaria de ter uma pequena expectativa de maturidade de +.... eh...


A expectativa matemática -0,12 é normal sem otimização em um longo intervalo de tempo? Quero dizer, todo mundo consegue sem otimização e depois a expectativa sobe por ajuste, ou não é uma opção e eu deveria mudar a EA completamente?