Cotações do mercado de derivativos em MT5 - página 10

 

Saudações Colegas, vamos resumir o uso de COPY_TICKS_ALL ou COPY_TICKS_TRADES!!

Como entendo pelo que li, para um cálculo delta mais correto é melhor usar carrapatos por ofícios em vez de todos eles. Certo?

Qual é a diferença de usar um ou outro? Qual é o efeito sobre o resultado?

 
Mihail Marchukajtes #:

Saudações Colegas, vamos resumir o uso de COPY_TICKS_ALL ou COPY_TICKS_TRADES!!

Como entendo pelo que li, para um cálculo delta mais correto é melhor usar carrapatos por ofícios em vez de todos eles. Certo?

Qual é a diferença de usar um ou outro? Qual é o efeito sobre o resultado?

O que você quer dizer com "delta"?

 
Mihail Marchukajtes #:

Saudações Colegas, vamos resumir o uso de COPY_TICKS_ALL ou COPY_TICKS_TRADES!!!

Como entendo pelo que li, para um cálculo delta mais correto é melhor usar carrapatos por ofícios em vez de todos eles. Certo?

Qual é a diferença de usar um ou outro? Qual é o efeito sobre o resultado?

Eu vi um link para as capturas de tela de um membro do fórum em seu perfil.

Ou ele tinha um erro em seus cálculos ou a fórmula de preço está errada

Não faça propaganda, basta olhar para as fotos como elas se parecem

mas parece-me que o preço deve atingir Last com precisão, ou seja, sem delta, se for calculado corretamente

os próprios corretores dizem que o preço é calculado a cada segundo, pelo menos no MOEX

Eu não acredito na utilidade de cálculos tão grandes, eu quis verificar uma vez, eles me rolaram sobre o copo inteiro, e a Last...., eu fiquei desapontado e fugi da troca
 
prostotrader #:

A que delta você está se referindo?

Delta, a diferença entre o número de compradores e vendedores de um determinado bar.

Aqui está um pouco de código onde a solicitação de carrapatos e o cálculo do delta e do volume ocorre

   Linterest[0]=GlobalVariableGet("LLINTER");

   double delta=0;  
   double vola=0;
   int num= CopyTicksRange(Name_instrFS,tick_array,COPY_TICKS_TRADE,StartDate*1000,Start1Date*1000);
   //Print (num);
   if (num>0){
   long sumVolBuy=0;
   long sumVolSell=0;
       for (int q=0;q<num && !IsStopped();q++)
          { 
if(( tick_array[q].flags&TICK_FLAG_BUY)==TICK_FLAG_BUY && (tick_array[q].flags&TICK_FLAG_SELL)==TICK_FLAG_SELL) // Если тик обоих направлений
      Print(__FUNCTION__,": ОШИБКА! Тик '""' неизвестного направления!");
   else if(( tick_array[q].flags&TICK_FLAG_BUY)==TICK_FLAG_BUY) // Если тик на покупку
   sumVolBuy+=(long)tick_array[q].volume;
   else if(( tick_array[q].flags&TICK_FLAG_SELL)==TICK_FLAG_SELL) // Если тик на продажу
   sumVolSell+=(long)tick_array[q].volume;
           
       if(( tick_array[q].flags&TICK_FLAG_VOLUME)==TICK_FLAG_VOLUME)   vola+=tick_array[q].volume_real; 
          }
    delta=double(sumVolBuy-sumVolSell); 
    if (Ldelta!=delta) Ldelta=delta; else delta=0;
  }
    for (int i=0;i<5 && !IsStopped();i++)
    { 
      h=FileOpen("OpenI\\"+Name_instr+"_OI.csv",FILE_WRITE|FILE_READ|FILE_ANSI|FILE_CSV|FILE_COMMON|FILE_SHARE_READ,";");
       if(h!=INVALID_HANDLE)                                                         
       {  
         
         FileSeek(h,0,SEEK_END);
         FileWrite(h,RecDate,DoubleToString(Linterest[0],0),DoubleToString(delta,0),DoubleToString(vola,0)); 
         FileClose(h); 
         Sleep(100);
         FlagOFupdate[0]= true;
        break; 
       }
    } 

Originalmente era COPY_TICKS_ALL em CopyRang, mas mudou ontem para COPY_TICKS_TRADE. Quanto mais correto isto seria em relação ao problema manifestado anteriormente???

 
Mihail Marchukajtes #:

Delta, a diferença entre o número de compradores e vendedores de um determinado bar.

Aqui está um pouco de código onde o pedido de carrapatos e o cálculo do delta e do volume são efetuados

Inicialmente era COPY_TICKS_ALL em CopyRang, mas ontem eu o mudei para COPY_TICKS_TRADE. Isto é muito mais correto em relação ao problema que expressei anteriormente???

Em sua situação, você só deve tomar COPY_TICKS_TRADE porque somente as negociações têm o parâmetro de volume contratual.

Para utilizar volumes de contratos ASK e BID, é necessário utilizar um copo.

for (int i=0;i<5 && !IsStopped();i++)
    { 
      h=FileOpen("OpenI\\"+Name_instr+"_OI.csv",FILE_WRITE|FILE_READ|FILE_ANSI|FILE_CSV|FILE_COMMON|FILE_SHARE_READ,";");
       if(h!=INVALID_HANDLE)                                                         
       {  
         
         FileSeek(h,0,SEEK_END);
         FileWrite(h,RecDate,DoubleToString(Linterest[0],0),DoubleToString(delta,0),DoubleToString(vola,0)); 
         FileClose(h); 
         Sleep(100);
         FlagOFupdate[0]= true;
        break; 
       }
    } 

Este é um código bastante triste.

A cada iteração, você abre e fecha o arquivo.

 
prostotrader #:

Em sua situação somente COPY_TICKS_TRADE deve ser tomada , porque somente as negociações têm o parâmetro de volume contratual.

Para utilizar volumes contratuais ASK e BID, você precisa usar um copo.

Este é um código bastante triste.

A cada iteração, você abre e fecha o arquivo.

Se a primeira tentativa for bem sucedida, então não, mas os dados são escritos no início do minuto para o bar anterior é muito bom para gravar OI, delta e volume!!!
 
Mihail Marchukajtes #:
Se a primeira tentativa for bem sucedida, então não, mas os dados são escritos no início do minuto para o bar anterior é muito bom para registrar OI, delta e volume!

Você pode me mostrar uma captura de tela?

 
Renat Akhtyamov #:

Posso ver uma captura de tela?

Sim, por favor....

Tudo está escrito bem, mas não é possível saber a diferença de gravar todos os tiquetaques ou apenas comercializá-los. Eu não quero me incomodar. Afinal, para NS as compensações e erros insignificantes não são tão importantes, o principal é que após o treinamento os dados não foram alterados porque durante a inicialização da EA com NS ele deve calcular corretamente o histórico até o momento atual para que o próximo comece o cálculo a partir dos parâmetros atuais e corretos. Se a inicialização não foi feita corretamente, o valor atual do último sinal conhecido será diferente e o novo sinal começará a calcular a partir de outras posições, o que levará a resultados imprevisíveis. Portanto, não importa como você o fez, mesmo com erros. O principal é não mudá-lo após o treinamento!!!!

 
Mihail Marchukajtes #:

Sim facilmente....

Tudo está escrito bem, mas não é possível saber a diferença de gravar todos os tiquetaques ou apenas comercializá-los. Eu não quero me incomodar. Afinal, para NS as compensações e erros insignificantes não são tão importantes, o principal é que após o treinamento os dados não foram alterados porque durante a inicialização da EA com NS deve calcular o histórico corretamente até o momento atual para que o próximo comece o cálculo a partir dos parâmetros atuais e corretos. Se a inicialização não foi feita corretamente, o valor atual do último sinal conhecido será diferente e o novo sinal começará a ser calculado a partir de outras posições, o que levará a resultados imprevisíveis. Portanto, não importa como está escrito, mesmo com erros. O principal é não mudá-lo após o treinamento!!!!

Há um limite para o número de linhas no Excel. Se a máquina lança, tenha-o em mente. É melhor usar o sql. Qual é o resultado do cálculo a partir da captura de tela, qual é o ponto prático?
 
Renat Akhtyamov #:
Há um limite para o número de linhas em excel. Se a máquina atirar, tenha isso em mente. Melhor sql. Qual é o resultado do cálculo a partir da captura de tela, qual é o ponto prático?

Um arquivo comum da CWS é escrito.

Coleção da história da OI, delta e volume, respectivamente. Os dados que não serão 100% alterados no histórico, para não mencionar a ausência do histórico de OI como tal. O código para o cálculo dos parâmetros registrados que dei acima ....