Teste de sistemas de previsão em tempo real - página 74

 
neoclassic писал(а) >>
Você pode ver o arquivo forecast.csv

Não mais :o( Mas terei mais alguns este fim de semana! :o)

 
Preciso entender a estrutura dos dados. Lembro-me de resolver um problema semelhante, eu precisava mostrar as trajetórias em um gráfico. Mas eu usei um indicador para este fim. Portanto, foi necessário obter o comprimento das trajetórias para determinar o SetIndexShift. O arquivo com trajetórias tinha o seguinte formato: linhas com valores da 1ª trajetória, vazia, 2ª, vazia, etc. Para determinar o comprimento, cada leitura foi verificada para uma linha vazia, e quando foi encontrada, o próximo buffer foi preenchido e determinado com um turno. Espero que tenha ajudado.
 
grasn >> :

Eu escrevi um roteiro para gerar uma série de realizações prováveis (é muito simples):

Eis como funciona o roteiro:

Como determinar automaticamente a extensão da amostra de probabilidade de um arquivo de texto é um mistério para mim, até agora é definido manualmente. Se você tem alguma idéia, por favor, me aconselhe.

Tenho uma função na ShowSeries para determinar o tamanho da série - isso é feito em uma leitura global por uma leitura preventiva extra do arquivo, como esta:

int GetFileCount()
{
  int count = 0;
  int columns = 0;
  int handle = FileOpen( FileName, FILE_CSV| FILE_READ, Delimiter);
  if( handle > 0)
  {
    while(!FileIsEnding( handle))
    {
      string x = FileReadString( handle);
      if(StringLen(StringTrimLeft(StringTrimRight( x))) == 0) break;
      if( count == 0)
      {
        columns++;
      }
      if(FileIsLineEnding( handle))
      {
        count++;
      }
    }
    FileClose( handle);
  }
  Comment("Column ", ColumnNo, "(", columns, "),", " Lines:", count);
  return( count);
}

Se você salvar em um arquivo de formato binário, você pode calcular rapidamente pela fórmula óbvia (comprimento-arquivo-cabeçalho- se-é)/dimensão-um-registro.

No entanto, não entendo o benefício de usar um monte de objetos em vez de indicadores. Normalmente, pelo contrário, se por acaso eu precisar usar algum código onde os objetos são aplicados, eu o converto em amortecedores. Os únicos objetos que são necessários são legendas, imho ;-), e somente porque as methacquotes não se preocuparam em fazer indicadores de texto.

E outro ponto importante. Não seremos capazes de construir o TS por objetos. Um indicador deve ser um sinal - dar sinais disponíveis através do iCustom.

Eu descartaria esta direção com objetos como sendo de desenho de compra impróprio ;-). Mas é claro que você é quem melhor sabe.

 
neoclassic >> :
Preciso entender a estrutura dos dados. Lembro-me de resolver um problema semelhante, eu precisava mostrar as trajetórias em um gráfico. Mas eu usei indicador para este fim. Portanto, foi necessário obter o comprimento das trajetórias para determinar o SetIndexShift. O arquivo com trajetórias tinha o seguinte formato: linhas com valores da 1ª trajetória, vazia, 2ª, vazia, etc. Para determinar o comprimento, cada leitura foi verificada para uma linha vazia, e quando foi encontrada, o próximo buffer foi preenchido e determinado com um turno. Espero que tenha ajudado.

Há uma matriz. Eu só preciso determinar o tamanho dessa matriz.

 
marketeer >> :

Eu tenho uma função na ShowSeries para determinar o tamanho da série - feita obliquamente por uma leitura extra preventiva do arquivo, como esta:

Se você salvar em um arquivo binário, você pode calcular rapidamente pela fórmula óbvia (comprimento-arquivo-cabeça- se-é)/dimensão-um-registro.

No entanto, não entendo o benefício de usar um monte de objetos em vez de indicadores. Normalmente, pelo contrário, se por acaso eu precisar usar algum código onde os objetos são aplicados, eu o converto em amortecedores. Os únicos objetos que são necessários são legendas, imho ;-), e somente porque as methacquotes não se deram ao trabalho de fazer indicadores de texto.


Eu vi a função e até mesmo entendi conceitualmente o que ela faz. O que falta entender é como funciona. OK. Vou fazer um intervalo no fim de semana e pensar sobre isso, e se eu não entender, vou implorar por uma explicação.


E outro ponto importante. Não seremos capazes de construir o TS por objetos. O indicador deve ser sinal - dar sinais disponíveis através do iCustom.

Eu fecharia desta forma com objetos como projeto de compra errado). Mas é claro que você sabe melhor.


Isto eu sei, mas por enquanto só preciso dele para a visualização das previsões. É claro que haverá um nível a ser negociado, e eu irei inserir os dados nas matrizes :o)

 
grasn >> :

há uma matriz. Eu só preciso determinar o tamanho dessa matriz.

Se cada fila da matriz é uma trajetória, então eu faria
   while(FileIsEnding( Handle)==false)
   {
      if(FileIsLineEnding(Handle)) //если строка закончилась, начинаем новую траекторию с 0
      {
         i=0;
      }

      COUNT=FileReadString( Handle);
      realisation=NormalizeDouble(StrToDouble( COUNT), 5);

      ObjectCreate(DoubleToStr( idCount, 10), OBJ_ARROW, 0,Time[0]- timeShift*15*60)+( i)*Period()*60+1, realisation);
      ObjectSet(DoubleToStr( idCount, 10), OBJPROP_ARROWCODE, 250);
      
      i= i+1;
      idCount= idCount+1;

   }
 
neoclassic >> :
Se cada fila da matriz é uma trajetória, então eu faria

Até o momento, o gramn gerou arquivos onde as filas são cronológicas e as trajetórias são escritas por colunas. Para manter este layout seria mais conveniente, pelo menos imho;-) -Utilizo-a em todos os lugares. A propósito, a Deductor também.

 

Eu olhei o código do indicador que se encontra na página anterior, ele lê as trajetórias por fileiras. O problema, tanto quanto sei, é que preciso saber a duração das trajetórias para começar a desenhar a partir da 0ª barra no tempo.

Sugerido pelo meu método detecta automaticamente o fim da linha e move o carro :-).

Sobre o que é mais conveniente - eu concordo.

 
Colegas, muito obrigado pelo conselho. Vou tentar.
 

EURUSD, M15.

Previsão para 300 contagens (pouco mais de 3 dias).

Principais trajetórias:


Dois grupos de trajetórias mais prováveis, mais ou menos "iguais":


Transferido para a MT:



PS1: Só por precaução - o sistema está sendo testado, é muito cedo para utilizá-lo para comercialização.

PS2: Eu suspeito fortemente que o gráfico "mudará" para a história na primeira citação.

Arquivos anexados:
files.rar  44 kb