uma estratégia comercial baseada na Teoria da Onda de Elliott - página 26

 
Um apagão pode ser mitigado por fontes de energia ininterruptas.
O servidor do meu corretor foi desligado por algumas horas ontem. Não há nada que você possa fazer a respeito.
 
Um apagão pode ser mitigado por fontes de energia ininterruptas. <br / translate="no"> O servidor do meu corretor foi desligado por algumas horas ontem. Não há nada que você possa fazer a respeito.


Sim - não houve luz durante meio dia e o ISP está nas proximidades do escritório - sem luz ou sem rede :).

Boa sorte e boa sorte com as tendências.
 
Vladislav,
O procedimento do canal de regressão linear é uma coisa bastante simples. Mesmo implementado em múltiplas t/f + todas as outras lógicas (aquela que eu imagino) não levará muito tempo.
Ao mesmo tempo, uma vez você escreveu que o ciclo computacional de seu programa é de cerca de 30-40 segundos.
Até onde entendo, a parte básica deste tempo é ocupada pelo processo de otimização da busca de uma trajetória verdadeira, ou seja, o mínimo de funcionalidade do preço. É assim? Se não, o que consome uma quantidade de tempo tão grande?
 
Vladislav, <br / translate="no"> O procedimento do canal de regressão linear é uma coisa bastante simples. Mesmo implementado em várias t/fs + todas as outras lógicas (aquela que eu imagino) não levará muito tempo.
Ao mesmo tempo, uma vez você escreveu que o ciclo computacional de seu programa é de cerca de 30-40 segundos.
Até onde entendo, a parte básica deste tempo é ocupada pelo processo de otimização da busca de uma trajetória verdadeira, ou seja, o mínimo de funcionalidade do preço. É assim? Se não é assim, o que está demorando tanto tempo?


É exatamente isso que a otimização absorve. Há mais de um canal. Além disso, há passagens e refinamentos iterativos. Projeções. Só que já é um pouco mais rápido - acrescentei alguns critérios para cortar as amostras.

Boa sorte e boas tendências.
 
Vladislav

Há muito tempo venho pensando em fazer uma identificação de nível, mas não consigo chegar a ela. Eu relataria meus três kopecks (seguindo o princípio - quanto mais fácil, melhor). Usei o indicador MarketProfil, as linhas verdes são responsáveis pelos níveis de ontem, avermelhadas - para os de hoje (linhas desenhadas manualmente). O algoritmo ainda não está escrito, mas a idéia está clara na imagem (não sei quando vou escrevê-lo).

https://c.mql5.com/mql4/forum/2006/05/levels.gif
 
Olá a todos!

Um conhecido meu tem me incomodado, - olhe para Her-sta. E me enviou o roteiro e um link para esta página.
Achei muito difícil ver as coisas do jeito que eram, por isso esbocei rapidamente minha versão.
O texto está abaixo. A tabela é colocada arrastando e soltando com o mouse e pode ser movida conforme desejado.
Acho que é mais conveniente ver as coisas desta maneira. No entanto, pode ser mais fácil criar apenas um indicador.
Graças ao solandr pelo trabalho preliminar. Em algum momento, eu mesmo quis ir mais fundo em
Sempre quis fazer análises de erros de diferentes funções referentes à probabilidade de mudança de tendência, mas nunca cheguei a fazer isso.
Embora eu mesmo seja um grande defensor de extrapolações baseadas na transformação de Fourier ou métodos "rápidos" de amplitude temporal.
métodos de amplitude temporal. Uma linha é uma linha, mas uma onda é outra coisa.
E o que a VG tem feito? Interessante. Lembra-se de muito tempo atrás quando lhe enviei variantes de regressão polinomial?
Mas parece que então eu tenho um apelido diferente...
//------------------------
//#property show_inputs
//-----------------------
//extern int ip=800;
//extern int i0=570;
//-----------------------
double lr0,lrp;
int t0,tp;
double A[10],R[10],DDR[10];
double SA,is,aa,bb,sum2,SAo,disp_o;
double S,pMin,pMax,RM,Hrst; 
int T,i0,ip,f;
//**************************************************************
int init()
{
   t0=TimeOnDropped();
   i0=iBarShift(Symbol(),Period(),t0); 
   ip=i0+100;
   tp=Time[ip];
   T=ip-i0+1;
  
   ArrayResize(A, T);
   ArrayResize(R, T);
   ArrayResize(DDR, T);
  
   ObjectCreate("lrHerst",2,0,0,0,0,0);
   ObjectSet("lrHerst",OBJPROP_COLOR,Yellow);
} 
//**************************************************************
int start()
{
  while(IsStopped()==false)
  {
    if (f==1)
    {
      tp=ObjectGet("lrHerst",OBJPROP_TIME1);
      ip=iBarShift(Symbol(),Period(),tp);
      t0=ObjectGet("lrHerst",OBJPROP_TIME2);
      if (t0>Time[0]) t0=Time[0];
      i0=iBarShift(Symbol(),Period(),t0);
  
      T=ip-i0+1;
      ArrayResize(A, T);
      ArrayResize(R, T);
      ArrayResize(DDR, T);
    }
    
    for(int i=T-1; i>=0; i--) A[i]=Open[i+i0];

    SA=af_SA(A,T);
  
    //----------------------------LR----------------------------------------
    //----------aa-------------
    is=(T-1)/2.0;   //среднее значение по оси индекса
    aa=0;        
    sum2=0;
    
    for(i=T-1; i>=0; i--)
    {
       aa+=(i-is)*(A[i]-SA);
       sum2+=MathPow((i-is),2);
    }
    aa=aa/sum2;
    //-----------bb------------
    bb=SA-aa*is;
 
    for(i=T-1; i>=0; i--) DDR[i]=aa*i+bb; 

    lr0=DDR[0];
    lrp=DDR[T-1];
  
    //linregres_grafic_c(0,DDR,i0);
//----------------------------------------------------------------------

    //-----Расчёт ошибок линейной регрессии
    for(i=T-1; i>=0; i--) R[i]=A[i]-(aa*i+bb);

    SAo=af_SA(R,T);   //среднее значение ошибок линейной регрессии
    disp_o=af_disp_o(R,SAo,T);  // Дисперсия ошибок
    S=CKO(disp_o);
         
    pMin=Low[Lowest(NULL,0,MODE_LOW,T,i0)];
    pMax=High[Highest(NULL,0,MODE_HIGH,T,i0)];
    RM=pMax-pMin;
  
    Hrst = MathLog(RM/S)/MathLog(T*0.5);
    Comment("Хёрст = ",DoubleToStr(Hrst ,4),"\n","T = ",T);
    
    ObjectMove("lrHerst",0,tp,lrp); 
    ObjectMove("lrHerst",1,t0,lr0);
    f=1;
  
  }//---while
  //--------------------------------------------------
  return(0);
}
//***************************************************************
//функция для расчёта дисперсии ошибок
double af_disp_o(double data[], double centr, int T)
{
   double disp=0;
   for(int k=T-1; k>=0; k--) disp+=MathPow((data[k]-centr),2);
   if(T>1) disp=disp/(T-2);
   return(disp);
}
//***************************************************************
//функция для расчёта СКО
double CKO(double disp)
{
   double sko=MathPow(disp,0.5);
   return(sko);
}
//***************************************************************
//функция для подсчёта среднего арифметического значения по массиву
double af_SA(double data[],int T)
{
   double sum=0;
   for(int k=T-1; k>=0; k--) sum+=data[k];
   sum=sum/T;
   return(sum);
}
//***************************************************************
/*
//функция рисования канала линейной регрессии 
int linregres_grafic_c(int window_number, double data[], int i0b)
{
   int deletedArrows,k,size;
   string line_name;
   //очистка предыдущего рисунка
   deletedArrows=ObjectsDeleteAll(window_number,OBJ_TREND);
   
   //находим размер массива
   size=ArraySize(data);
   
   //рисуем центральную линию линейной регрессии
   for(k=size-1; k>=1; k--)
   {
      line_name="line_lin_reg"+k;
      ObjectCreate(line_name,OBJ_TREND,window_number,Time[k+i0b],data[k],Time[k+i0b-1],data[k-1]);
      ObjectSet(line_name,OBJPROP_COLOR,Yellow);
      ObjectSet(line_name,OBJPROP_STYLE,DRAW_LINE);
      ObjectSet(line_name,OBJPROP_WIDTH,2);
      ObjectSet(line_name,OBJPROP_BACK,true);
      ObjectSet(line_name,OBJPROP_RAY,false);
   }
   
   //рисуем проекцию центральной линии линейной регрессии
   line_name="line_lin_reg_proec";
   ObjectCreate(line_name,OBJ_TREND,window_number,Time[size-1+i0b],data[size-1],Time[i0b],data[0]);
   ObjectSet(line_name,OBJPROP_COLOR,Red);
   ObjectSet(line_name,OBJPROP_STYLE,DRAW_LINE);
   ObjectSet(line_name,OBJPROP_WIDTH,1);
   ObjectSet(line_name,OBJPROP_BACK,false);
   ObjectSet(line_name,OBJPROP_RAY,true);
   
   return(0);
}
*/
//***************************************************************
void deinit()
{
  ObjectDelete("lrHerst");
  Comment(" ");
}
//***************************************************************



Atenciosamente - Alexander.

 
Vladislav, a análise que solandr fez na época estava correta, mas era de alta qualidade.

Mas o mercado Forex não pode ter outras análises e previsões antes de mais nada por causa de sua fractalidade!
Ou seja, há uma flutuação constante de intervalos de confiança e probabilidades de movimento em uma direção ou outra. E cada próxima flutuação pode mudar o tipo de trajetória de preços e eu acho que é bastante significativa. Ao mesmo tempo, a totalidade dos acidentes (por exemplo, notícias) que influenciaram a flutuação atual pode levar ao desenvolvimento de um ou outro cenário da trajetória de preços. Ou seja, o preço pode visitar os limites dos intervalos de confiança, mas as trajetórias podem ser muito diferentes. Não podemos prever a trajetória - o máximo que podemos fazer é apenas olhar onde o preço está agora e o que ele pode fazer em seguida. Ou seja, algumas previsões padrão como comprar aqui, e depois vender ali com uma parada aqui são de pouco efeito no Forex. O preço não alcançará/transgredirá os níveis recomendados e vagará entre eles várias vezes enquanto o comerciante deve esperar.
Na verdade, como me parece, a julgar pelos primeiros negócios feitos no sistema Vladislava, o mercado simplesmente rastreia a probabilidade de movimento em uma direção ou outra e toma decisões sobre os negócios pelos comerciantes. A única diferença entre os comerciantes de decisão do sistema Vladislava é que cada comerciante toma uma decisão por sua própria intuição, que é toda diferente (todos têm seu próprio canal, que na opinião do comerciante movimenta o preço ;o)). Enquanto o sistema Vladislava é baseado no teorema do limite central das estatísticas matemáticas, que na aplicação para o mercado Forex pode ter a seguinte interpretação. Se considerarmos a comercialização de um único comerciante, comercializando por sua própria intuição, então de acordo com o teorema central do limite, a distribuição do preço de mercado, formada pela ação conjunta de todos os comerciantes, comercializando por suas próprias estratégias, tenderá para a distribuição normal. Para aplicar isto ao mercado, precisamos apenas encontrar, primeiro, os canais observados pelos comerciantes, estimá-los em termos de quais canais são observados pela maioria dos comerciantes, ou quais canais são ótimos de acordo com a estimativa integral tomada sobre toda a amostra de comerciantes;o). Tendo tais canais selecionados, podemos então calcular a probabilidade de localização do preço a várias distâncias do centro do canal, com base na qual podemos fazer suposições sobre a probabilidade de movimento do preço para um ou outro lado. É claro que os canais mudam constantemente, especialmente no comércio intradiário e os preços vão e vêm. E o que estava correto, por exemplo, há 3 horas atrás, pode ter pouco ou nada a fazer exatamente agora, a fim de obter lucro. Assim, na melhor das hipóteses, aqueles que estão interessados podem olhar para o trabalho do consultor especializado de Vladislava para ter algum tipo de orientação sobre a situação atual. Bem, e a previsão na forma padrão, claro, impossível - na melhor das hipóteses, algum tipo de raciocínio qualitativo. E a decisão real será tomada quando a situação se tornar necessária. Ao mesmo tempo, os níveis e horários só podem ser previstos com antecedência nos mais amplos intervalos.

PS: A propósito, veja a questão de como os comerciantes negociam. Tantas trocas comerciais em um mercado rápido. Por causa disso, é preciso uma grande pressa para agarrar algo. É por isso que mesmo este fórum está cheio de tópicos que exigem dos desenvolvedores do MT4 alguns botões mais confortavelmente apertados ao abrir/fechar ordens em um mercado rápido, ou ordens rápidas de abertura/fechamento por um EA quando toda a multidão está fazendo o mesmo, entupindo todos os recursos técnicos de negociação (apenas geralmente a multidão faz a mesma coisa quando metade dela já é passada e quase não há possibilidades de o mercado se mover em uma direção ou outra) :o))) Ou seja, o movimento mais forte é quando a linha central do canal é passada (o centro da distribuição de probabilidade do preço - toda a multidão pulou e entrou no jogo).
 
Mas não pode haver outras análises e previsões para o mercado forex, principalmente por causa de sua natureza fractal!

solandr,
Eu não queria ofendê-lo de forma alguma. Quero dizer apenas que Vladislav, no início da discussão de sua estratégia, enfatizou sua diferença em relação à maioria dos outros. E foi exatamente o fato de permitir previsões não aleatórias devido às estimativas quantitativas das probabilidades de diferentes direções de movimentação de preços.
 
Vladislav,
Parece-me que nesta discussão há algum mal-entendido sobre o conceito de fractalidade.
Tanto quanto sei, a fractalidade é uma auto-similaridade de estruturas aleatórias. Ela não pode, por si só, nos impedir de fazer estimativas quantitativas. E que estas estimativas têm caráter probabilístico, portanto não decorre da fractalidade, mas do caráter casual do fenômeno com o qual lidamos.
Gostaria de ouvir sua opinião sobre este assunto. Em particular, que sentido prático você coloca nesta declaração:
Uma vez que você constrói uma amostra básica (meia hora=>níveis diários) você pode refiná-la ao nível de detalhe correto (você já esqueceu que aqui é usada uma abordagem fractal?).

E mais uma pergunta, em relação à sua última resposta:
É exatamente isso que a otimização absorve. Há mais de um canal ali.

Um de seus axiomas é a existência de uma trajetória verdadeira (ou seja, uma única), que é determinada como resultado do processo de otimização. Como uma única trajetória pode levar a múltiplos canais?
 
Rosh,
Pelo que entendi, o MarketProfil dá a resposta de freqüência da faixa. Ou seja, quantas vezes durante um determinado período de tempo o preço tomou um determinado valor. Eu acertei?
Se assim for, entendo a disposição das linhas vermelhas. Mas por que existem tantos verdes?
Tive uma idéia para fazer a identificação dos níveis com base nisso. Embora eu nunca tenha lidado com o indicador MarketProfil. É bom saber que se trata de uma bicicleta. :-) Pelo menos isso me poupou muito tempo.