Vou escrever o indicador gratuitamente - página 18

 
Yurij Izyumov:
Como distribuir o volume do carrapato em um castiçal, o castiçal tem um alcance e às vezes um grande

Não sei muito sobre os detalhes, mas acho que isto vai funcionar

Vamos assumir que um castiçal de 1 minuto tem um intervalo de HL=100 pontos e alguma quantidade de unidades de volume de tick

Se tomarmos a teoria de que cada um deles é multidirecional com ordem aleatória, obtemos, por exemplo, um castiçal de 5 minutos e veremos a distribuição do preço com

HL_0bar/volume antico HL_1bar/volume antico HL2bar/volume antico etc.

ou seja, já operamos com a unidade "candlestick value/antic volume". Na verdade, a linha refletirá o valor deste indicador em relação a outros semelhantes verticalmente. E podemos utilizá-lo em gráficos m5

o mesmo com o castiçal de 15 minutos, que consiste em candelabros de 15 minutos

É claro que a definição atual não é bem o que queríamos inicialmente, mas acabei de olhar a documentação - não há histórico de carrapatos em nenhum lugar, então a vela mínima é de um minuto.

 

Boa tarde. Preciso de uma LER padrão com um alerta. É possível implementar tal idéia para rastrear sinais confortavelmente. Até agora encontrei um monte de lixo amarrado ao RSI ou um alerta quando uma vela se fecha (e o trem partiu...)

Um bip com uma mensagem deve vir com a indicação de um par, no qual o evento ocorre.

O sinal vem uma vez durante a formação de uma vela no intervalo de tempo selecionado ao cruzar o nível superior ou inferior, respectivamente, somente ao cruzar para cima ou para baixo e somente no momento da travessia, não quando a vela se fecha.

É desejável fazer mais um nível, no momento de sua travessia, há também um sinal único.

Exemplo.

No período de 5M, o preço do EUR/USD desce. Em algum momento, tendo cruzado o nível RSI 30 (por exemplo, no 80º segundo de uma vela), um alerta é gerado e uma mensagem é exibida dizendo que o par EUR/USD tem um sinal de compra preliminar em um determinado momento.

Se no tempo restante da formação de uma vela RSI tocar o próximo nível (por exemplo 20), um alerta soa e sai a mensagem de que em um determinado momento no par eVor dólar há um segundo sinal para comprar.

De preferência, a mensagem deve de alguma forma mostrar que o sinal é preliminar ou já é específico (ou seja, repetido).

 
Yurij Izyumov:

A fim de reescrevê-lo, todos os indicadores a serem incluídos também devem estar abaixo de mql5

B Desculpe o atraso na resposta, mas eu preciso REALMENTE de sua ajuda. Estou escrevendo um artigo e o moderador me pediu para reescrever todos os códigos dos arquivos anexados para mql5. Preciso reescrever apenas dois deles. O resto dos códigos será replicado para outros arquivos.

Eu ficaria muito grato se você não pudesse procrastinar, pois a publicação do artigo é atrasada precisamente por causa disso. Eu, por minha vez, prometo informá-lo sobre meu tratado. Mais uma vez, obrigado!

1. portanto, o que você precisa fazer. No indicador TDSEQUENTA_by_nikelodeon.mq5 adicionei outro buffer que é responsável pela transmissão do sinal, onde 1 é Compra e -1 é Venda, acho que não deve haver erro aqui. Mas é necessário adicionar mais um buffer, onde na formação de um ponto azul ou vermelho, ou seja, o próprio sinal, o número de pontos verdes de cada sinal seria escrito neste buffer. Já acrescentei um tampão número 7, a única coisa que me resta é organizar a escrita.

2. eVOLution-dvoid.1.3 (1).mq5 indicador deve ser completamente reescrito para MQL5 este indicador retira dados de arquivos que estão na pasta{\i1}Filesevolution-dvoid-BP.csv. Usamos o formato csv, mas como este formato não é suportado no fórum, vou colá-lo no formato txt. Após o download, ele deve ser colocado na pasta especificada e renomear a extensão para csv. Nosso indicador deve funcionar com este arquivo.

O indicador BuyVOLDOWNNOPDOWN.mq5 deve ser reescrito em MQL5 para mostrar como outros indicadores são chamados no exemplo de eVOLution-dvoid.1.3 (1).mq5, ele é chamado lá.

Quanto aos arquivos da família Cluster_X, vou tentar baixá-los para o MT5 e depois veremos como anexá-los. Mas o mais importante agora é resolver a questão com os indicadores acima. Muito obrigado!!!!

Arquivos anexados:
 
Mihail Marchukajtes:
Posso perguntar qual será o tema do artigo?
 
Alexey Kozitsyn:
Posso perguntar qual será o tema do artigo?
Sistemas de Inteligência Artificial
 
Boa tarde. Estou no indicador Delta_RSI, ele continua desenhando (ver captura de tela) histo em ambas as direções ao mesmo tempo (procurar por erro). E é possível colorir a cor sem sinal para acima/abaixo do zero. Obrigado.
Arquivos anexados:
 

OláYurij Izyumov! Vagando pelos fóruns e fazendo esta pergunta, eu não obtive uma resposta clara... todos ofereceram sua solução, mas apenas em palavras e sem confirmar que funcionaria. Eu gostaria de ver a implementação prática da questão. E a questão é a seguinte...

Há um indicador da CodyBase https://www.mql5.com/ru/docs/series/copybuffer

O problema é que quando você muda o prazo nos parâmetros de entrada do indicador, o atraso do cálculo do indicador até o aparecimento de um novo tick, e pode levar até várias horas para diferentes instrumentos.

Você tem a possibilidade de implementar esta lacuna? Obrigado!

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyBuffer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Tango_X:

OláYurij Izyumov! Vagando pelos fóruns e fazendo esta pergunta, eu não obtive uma resposta clara... todos ofereceram sua solução, mas apenas em palavras e sem confirmar que funcionaria. Eu gostaria de ver a implementação prática da questão. E a questão é a seguinte...

Há um indicador da CodyBase https://www.mql5.com/ru/docs/series/copybuffer

O problema é que quando você muda o prazo nos parâmetros de entrada do indicador, o atraso do cálculo do indicador até o aparecimento de um novo tick, e pode levar até várias horas para diferentes instrumentos.

Você tem a possibilidade de implementar esta lacuna? Obrigado!

Você pode chamar a OnCalculate() à força, pressionando o botão refresh. Você também pode fazer todos os cálculos em OnTimer() ou OnBookEvent().
 

Olá. É possível fazer uma flecha nestes indicadores? Modelos e screenshots de ofícios na pasta. Desculpe por adicionar este ind. não dá a pasta para carregar

A DESCOMPILAÇÃO É PROIBIDA! ARQUIVO REMOVIDO!

 
Alexey Kozitsyn:
Você pode chamar a OnCalculate() à força, pressionando o botão refresh. Você também pode fazer todos os cálculos em OnTimer() ou OnBookEvent().

Eu o implementei com OnTimer() e nada saiu dele. Infelizmente o evento onTimer() não calcula o indicador e o atraso é salvo, talvez uma declaração alta e eu tenha feito algo errado, por favor, corrija. Obrigado!

//+------------------------------------------------------------------+
//|                                              TestCopyBuffer3.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//---- plot MA
#property indicator_label1  "MA"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- input parameters
bool               AsSeries=true;
int                period=15;
input ENUM_TIMEFRAMES    TimeFrame=PERIOD_CURRENT; //Период графика
ENUM_MA_METHOD     smootMode=MODE_EMA;
ENUM_APPLIED_PRICE price=PRICE_CLOSE;
int                shift=0;
//--- indicator buffers
double                   MABuffer[];
int                      ma_handle;
int to_copy;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,MABuffer,INDICATOR_DATA);
   Print("Параметр AsSeries = ",AsSeries);
   Print("Индикаторный буфер после SetIndexBuffer() является таймсерией = ",
         ArrayGetAsSeries(MABuffer));
//--- set short indicator name
   IndicatorSetString(INDICATOR_SHORTNAME,"MA("+period+")"+AsSeries);
//--- set AsSeries (depends on input parameter)
   ArraySetAsSeries(MABuffer,AsSeries);
   Print("Индикаторный буфер после ArraySetAsSeries(MABuffer,true); является таймсерией = ",
         ArrayGetAsSeries(MABuffer));
//---
   ma_handle=iMA(Symbol(),TimeFrame,period,shift,smootMode,price);
   EventSetTimer(1);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- check if all data calculated
   if(BarsCalculated(ma_handle)<rates_total) return(0);
//--- we can copy not all data
   //int to_copy;
   if(prev_calculated>rates_total || prev_calculated<=0) to_copy=rates_total;
   else
     {
      to_copy=rates_total-prev_calculated;
      //--- last value is always copied
      to_copy++;
     }
//--- try to copy
  
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   CopyBuffer(ma_handle,0,0,to_copy,MABuffer);
   Print("Таймер");
  }
//+------------------------------------------------------------------+