Impulso - página 21

 
Karputov Vladimir:
  1. Bom. O tempo de chegada do tick pode ser registrado não em incrementos, mas diretamente em microssegundos desde o início do programa MQL5. É assim que será calculada a pausa entre os carrapatos.
  2. O segundo campo será então o preço da matriz fechada[] - isto é, a licitação.
  3. Tenho algumas dúvidas em relação à Ask. Vale a pena recebê-lo? O indicador recebe uma matriz de spread[] - ele pode ser escrito. A pessoa que precisar calculará Ask.
  4. Nome do arquivo neste formato: Data_ticks_GBPUSD.f_2015.07.20 16_02_36.csv

Acrescentado: Esta é uma mesa como esta:

Nenhuma compatibilidade retroativa com versões de terminais. Para o MT4, ele tem que ser completamente refeito. O que o impede de registrar a data e não algum tempo sintético? Você pode ligar a data a qualquer coisa, usá-la sem recalcular com nada. Por que fazer uma bagunça deliberadamente no futuro? Você não sabe o que mais terá a ver com o tempo... E aqui temos que recalcular/converter também ...

O que nos impede de escrever o atual Ask ao invés de array spread[], que é inútil no MT4 ? Você está cortando deliberadamente seu pé até o pescoço? :)))

 

Bom. Este é o formato do arquivo:

Время тика, микросекунд Время тика, секунд      Bid             Ask
76718                   20.07.2015 18:09        1.55962         1.55981
76838                   20.07.2015 18:09        1.55962         1.55981
190796                  20.07.2015 18:09        1.55961         1.55980
533045                  20.07.2015 18:09        1.55960         1.55979
989364                  20.07.2015 18:09        1.55961         1.55980
2058082                 20.07.2015 18:09        1.55960         1.55979
2397266                 20.07.2015 18:09        1.55961         1.55980
3498990                 20.07.2015 18:09        1.55962         1.55981
5276197                 20.07.2015 18:09        1.55962         1.55981
5276318                 20.07.2015 18:09        1.55962         1.55981
5714501                 20.07.2015 18:09        1.55967         1.55986
5825529                 20.07.2015 18:09        1.55968         1.55987
5825630                 20.07.2015 18:09        1.55968         1.55987
6095716                 20.07.2015 18:09        1.55969         1.55988
6419932                 20.07.2015 18:09        1.55968         1.55987
6795191                 20.07.2015 18:09        1.55969         1.55988
6972306                 20.07.2015 18:09        1.55968         1.55987
7017356                 20.07.2015 18:09        1.55967         1.55986
É bom?
 
Roman Shiredchenko:

Qualquer coisa a acrescentar sobre o assunto...

Há um link para um vídeo - eles o apagaram - eles pensaram que era publicidade.

Como posso compartilhar a estratégia de escalonamento sobre a qual estou escrevendo os indicadores?

Como posso colocar o vídeo do youtube em "vídeos interessantes de julho"?

Não vou postar o link - vou enviá-lo para o Google: "As principais características da estratégia do"Velocímetro Forex" são a ausência de indicadores e a simplicidade da negociação. Tipo de estratégia - escalpagem. A estratégia pode ser usada em qualquer par de moedas, mas é aconselhável escolher as altamente voláteis com spread pequeno".

------------------------------------------------------------------------------------------

Este tópico também foi abordado aqui. O que contar o tempo de chegada de cada tick da matriz e como contar a velocidade.

É evidente que existem variantes. É claro que em milissegundos o tempo de cada carrapato capturado será visível. (Como usar isto depois? talvez...)

Artem escreve novamente para os especialmente dotados. :-)

Lá é oferecido exatamente para contar carrapatos por segundo - aqui também essa variante foi oferecida...

Há outra pergunta aqui - como testá-la? As contas da ndd do meu corretor com spread min. não têm demo. Se eu quisesse usar a demonstração e a conta real do meu corretor, eu teria verificado o número de ticks - é a mesma coisa...

Ou seja, a questão será como processar de forma programática os dados coletados sobre o comércio virtual no arquivo csv eexcel e ticks... a partir de contas reais.

A questão será processar os dados coletados para os negócios virtuais, em arquivo csv em eexsv e carrapatos das contas reais... :-)

Como posso incorporar os carrapatos no arquivo csv na história para o testador de estratégia MT4?

Eu tentei algo semelhante (não esta estratégia, eu inventei a minha) não há muito tempo, mas abandonei-a. Tenho que testar tal sistema em tempo real, porque o testador apenas simula carrapatos. Estive observando o Expert Advisor por duas horas, depois copiei o código por 5 minutos e assim por diante, e depois me aborreci. Os resultados não são muito bons, muitos acordos com pequenos lucros, mas um prejuízo muitas vezes supera todos os lucros. Como alternativa, deve-se usar o martingale para evitar o acúmulo de perdas no patrimônio líquido. Tenho um consultor especializado em um martin sem isso e sua implementação é muito mais simples.
 

A base para o registro de carrapatos está lá.

//+------------------------------------------------------------------+
//|                                             IndTickCollector.mq5 |
//|                              Copyright © 2015, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.01"
#property indicator_chart_window
#property description "Индикатор хранит тики. Время тика, микросекунд, Время тика, секунд , Bid, Ask"
#property indicator_buffers 0
#property indicator_plots   0
//+------------------------------------------------------------------+
//| Индикатор расчитывает скорость прихода тиков.                    |
//+------------------------------------------------------------------+
//--- parameters
int file_handle; // хэндл файла
string FileName; // имя файла
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- open file
//--- время начала сбора тиков - текущее
   datetime time_start=TimeCurrent();
//--- откроем файл для записи значений индикатора (если его нет, то создастся автоматически)
   ResetLastError();
   FileName="Data_ticks_"+Symbol()+"_"+TimeToString(time_start,TIME_DATE|TIME_MINUTES|TIME_SECONDS)+".csv";
   StringReplace(FileName,":","-");
   file_handle=FileOpen(FileName,FILE_READ|FILE_WRITE|FILE_CSV);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("Файл %s открыт для записи",FileName);
      PrintFormat("Путь к файлу: %s\\MQL5\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- запишем название колонок
      FileWrite(file_handle,"Время тика, микросекунд","Время тика, секунд","Bid","Ask");
     }
   else
      PrintFormat("Не удалось открыть файл %s, Код ошибки = %d",FileName,GetLastError());
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,      // размер массива price[]
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const int begin,            // откуда начинаются значимые данные
                 const double& price[]       // массив для расчета
                 )
  {
   ulong microsecond_count=GetMicrosecondCount(); // зафиксировали вход в OnCalculate()
   int start=0;
   if(prev_calculated!=0) // работаем только на пришедших тиках, так как на истории нет времени тиков
     {
      MqlTick last_tick;
      //---
      if(SymbolInfoTick(Symbol(),last_tick))
        {
         FileWrite(file_handle,microsecond_count,last_tick.time,
                   DoubleToString(last_tick.bid,Digits()),DoubleToString(last_tick.ask,Digits()));
        }
      else Print("SymbolInfoTick() failed, error = ",GetLastError());
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- закрываем файл
   FileClose(file_handle);
   PrintFormat("Данные записаны, файл %s закрыт",FileName);
//--- очищаем комментарии
   Comment("");
  }
//+------------------------------------------------------------------+


Formato do nome do arquivo:

Data_ticks_GBPUSD.f_2015.07.21 12-06-14.csv

O arquivo tem quatro colunas:

Время тика, микросекунд Время тика, секунд      Bid             Ask
76718                   20.07.2015 18:09        1.55962         1.55981
76838                   20.07.2015 18:09        1.55962         1.55981
190796                  20.07.2015 18:09        1.55961         1.55980
533045                  20.07.2015 18:09        1.55960         1.55979
989364                  20.07.2015 18:09        1.55961         1.55980


Restam dúvidas sobre a freqüência com que se deve iniciar novos arquivos. Acho que cada arquivo deve ser iniciado a cada hora. Isto facilitará a análise posterior.

 
Karputov Vladimir:

A base para o registro de carrapatos está lá.

Formato do nome do arquivo:

O arquivo tem quatro colunas:

Restam dúvidas sobre a freqüência com que se deve iniciar novos arquivos. Acho que cada arquivo deve ser iniciado a cada hora. Desta forma, será mais fácil analisar mais tarde.

Não é tecnicamente ideal. Antes de mais nada, por que escrever microssegundos? Este formato é melhor:

Время, DD.MM.YYY HH:mm:ss:sss     Bid    Ask
20.07.2015 18:09:323            1.55962  1.55981 

O formato CSV deve ser abandonado em favor do XML. A tarefa de serializar os dados de Objeto para Xml <--> XML para Objeto é óbvia. Em caso de necessidade, será fácil acrescentar novos parâmetros. Para armazenar por dia, é claro. 1 arquivo - 1 dia de história do tick.

 
Quanto à idéia em si - é claro que é um completo absurdo (com todo respeito). Você está fazendo uma identidade entre a volatilidade e o momentum (movimento direcional). Mas isto é fundamentalmente errado. Praticamente não existe tal correlação e, portanto, a abordagem escolhida não levará a lugar algum.
 
Vasiliy Sokolov:
Quanto à idéia em si - evidentemente, um completo absurdo (com todo respeito). Você está fazendo uma identidade entre a volatilidade e o momentum (movimento direcional). Mas isto é fundamentalmente errado. Praticamente não existe tal correlação e, portanto, a abordagem escolhida não levará a lugar algum.

O principal é a coleta de dados sobre tiques. Isto é como a base da pesquisa. E já com base nisso, diferentes modelos podem ser testados.

Acrescentado: E sim, ainda não há uma definição clara de impulso.

 
Karputov Vladimir:

O principal é a coleta de dados sobre tiques. Isto é como a base da pesquisa. E já com base nisso, diferentes modelos podem ser testados.

Acrescentado: E sim, ainda não há uma definição clara de impulso.

Para ser mais preciso: aqui não há uma formulação clara necessária... e afinal de contas é uma base, uma base realmente necessária... sem tal formulação tudo será instável, trêmulo...

Por exemplo, há uma formulação tão clara na engenharia de impulso. Dei um exemplo antes. É claro que você não pode se limitar a apenas uma imagem. Esta teoria é extensa, e será muito útil para sua aplicação aqui.

 

Vou tentar mais uma vez deixar claro meu ponto de vista...

Embora muito rude, ainda é uma imagem que dá uma idéia:



Os parâmetros de pulso - variáveis - têm que ser determinados na hora certa.

 
Олег avtomat:

Vou tentar explicar meu ponto mais uma vez...

Embora muito rude, ainda é uma imagem que dá uma idéia:



Os parâmetros - variáveis - dos pulsos devem ser determinados na mosca.

Oleg, onde está o pulso nesta foto? Em seguida, decomponha-o em componentes de tempo de tiquetaque, em vez de propor um gráfico de dias.