iCustom é uma boa solução para iCustom, mas iCustom sempre executa todo o código do indicador, e se eu precisar de muitos parâmetros de indicador em uma EA (e é) então, em vez de um cálculo de indicador, teremos vários, o que pode retardar significativamente o processo até que o tick atual seja perdido, eu esqueci das variáveis predefinidas.....
Sinto muito, mas não entendo por que o oncalculate deve passar valores de variáveis pré-definidas se elas são globais e também disponíveis
Dê uma olhada em um exemplo
//+-------------------------------------------------------+//|Параметры функции PROBA.mq4|//+-------------------------------------------------------+#property strictvoidOnStart()
{
Alert(Сумма(2,5));
int Сум=0;
Сумма(2,5,Сум); // Передаем в функцию 2 числа и получаем суммуAlert(Сум);
}
int Сумма(int a, int b)
{
return a+b;
}
void Сумма(int a, int b, int & s)
{
s= a+b;
}
Os parâmetros de uma função podem ser entrada - que nós passamos para ela, e saída - que ela retorna para nós
ijonhson: int rates_total=Bars; int prev_calculated=0;
Estas variáveis são necessárias para calcular toda a linha indicadora, mas você precisa de um único valor. Tudo é muito mais simples. Analisar o programa indicador e determinar qual fórmula é usada para o cálculo. E use esta fórmula no Expert Advisor
Rapazes, digam-me como implementar este algoritmo:
Há uma série cronológica com volume
Quero comparar o Volume[1] para ser maior do que cada uma das barras anteriores do Volume[1] e especificar uma janela (número) de barras anteriores com variável externa (int externa)
Rapazes, digam-me como implementar este algoritmo:
Há uma série cronológica com volume
Quero comparar o Volume[1] para ser maior do que cada uma das barras anteriores do Volume[1] e especificar uma janela (número) de barras anteriores com variável externa (int externa)
Funcionou sem erros, parece que eu mesmo o removi, por auto-substituição via ctrl+h, e não notei >_<. De qualquer forma, provavelmente foram os Illuminati que o fizeram. Mais uma vez obrigado !
Rapazes, digam-me como implementar este algoritmo:
Há uma série cronológica com volume
Quero comparar o Volume[1] para ser maior do que cada uma das barras anteriores do Volume[1] e especificar uma janela (número) de barras anteriores com variável externa (int externa)
Escreva uma amostra de código, se não for difícil
Não é difícil. Escrevi-o de joelhos de memória (posso ter perdido algo).
//+------------------------------------------------------------------+bool IsLastVolumeTheLargest(conststring symbol_name, constENUM_TIMEFRAMES timeframe,constint start_pos,constint count)
{
long array[]; // Массив для хранения объёмов//--- если скопировалось меньше, чем нужно, вернём falseif(CopyTickVolume(symbol_name,timeframe,start_pos,count,array)<count) returnfalse;
//--- вернём флаг того, что максимальный объём находится в последней ячейке массива (соответствует индексу start_pos)returnArrayMaximum(array)==count-1;
}
//+------------------------------------------------------------------+
Olá. Eu não posso compartilhar o arquivo. A tarefa - Preciso que o arquivo do período mais antigo (por exemplo, M20) seja gerado em М1 durante o teste manual em МТ4 (MQL4) tester. Para este fim escrevi um indicador baseado no roteiro do PeriodConverter. Como no modo de teste é impossível salvar o arquivo (EURUSD20.csv) diretamente no histórico da pasta, o arquivo é salvo na pasta compartilhada por todos os terminais -MetaQuotesTerminalCommon. Então o script em loop, trabalhando em um gráfico padrão M1, copia os dados do arquivo EURUSD20.csv para o arquivo EURUSD20.hst, localizado na pasta History. O arquivo EURUSD20.csv não pode ser aberto no script, se ao mesmo tempo for aberto no indicador no testador (5004 ERR_FILE_CANNOT_OPEN File open error). Se você remover o indicador do testador, o arquivo no script é aberto e copiado sem problemas. O arquivo é aberto no indicador da seguinte forma: ExtHandle=FileOpen(c_symbol+(string)20+".csv",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_READ|FILE_SHARE_READ|FILE_COMMON); O arquivo no script é aberto da seguinte forma: ExtHandleR=FileOpen("EURUSD20.csv",FILE_BIN|FILE_READ|FILE_SHARE_READ); Favor indicar meu erro.
Olá. Eu não posso compartilhar o arquivo. A tarefa - Preciso que o arquivo do período mais antigo (por exemplo, M20) seja gerado em М1 durante o teste manual em МТ4 (MQL4) tester. Para este fim escrevi um indicador baseado no roteiro do PeriodConverter. Como no modo de teste é impossível salvar o arquivo (EURUSD20.csv) diretamente no histórico da pasta, o arquivo é salvo na pasta compartilhada por todos os terminais -MetaQuotesTerminalCommon. Então o script em loop, trabalhando em um gráfico padrão M1, copia os dados do arquivo EURUSD20.csv para o arquivo EURUSD20.hst, localizado na pasta History. O arquivo EURUSD20.csv não pode ser aberto no script, se ao mesmo tempo for aberto no indicador no testador (5004 ERR_FILE_CANNOT_OPEN File open error). Se você remover o indicador do testador, o arquivo no script é aberto e copiado sem problemas. O arquivo é aberto no indicador da seguinte forma: ExtHandle=FileOpen(c_symbol+(string)20+".csv",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_READ|FILE_SHARE_READ|FILE_COMMON); O arquivo é aberto no script da seguinte forma: ExtHandleR=FileOpen("EURUSD20.csv",FILE_BIN|FILE_READ|FILE_SHARE_READ|FILE_COMMON); Favor apontar meu erro.
Eu não entendo. Esta opção indica a localização do arquivo -MetaQuotesTerminalCommon. Sem esta opção não poderei agarrar o arquivo que foi gerado no testador. Sem esta opção o arquivo será pesquisado em MQL4\Files - e eu não posso colocar o arquivo do testador lá.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Obrigado, mas ela é
iCustom para ajudar
iCustom é uma boa solução para iCustom, mas iCustom sempre executa todo o código do indicador, e se eu precisar de muitos parâmetros de indicador em uma EA (e é) então, em vez de um cálculo de indicador, teremos vários, o que pode retardar significativamente o processo até que o tick atual seja perdido, eu esqueci das variáveis predefinidas.....
int rates_total=Bars;
variável global definida
int prev_calculated=0;
colisões sobre o número de elementos da matriz
Sinto muito, mas não entendo por que o oncalculate deve passar valores de variáveis pré-definidas se elas são globais e também disponíveis
Dê uma olhada em um exemplo
Os parâmetros de uma função podem ser entrada - que nós passamos para ela, e saída - que ela retorna para nós
Estas variáveis são necessárias para calcular toda a linha indicadora, mas você precisa de um único valor. Tudo é muito mais simples. Analisar o programa indicador e determinar qual fórmula é usada para o cálculo. E use esta fórmula no Expert Advisor
Rapazes, digam-me como implementar este algoritmo:
Há uma série cronológica com volume
Quero comparar o Volume[1] para ser maior do que cada uma das barras anteriores do Volume[1] e especificar uma janela (número) de barras anteriores com variável externa (int externa)
Escreva uma amostra de código, se não for difícil
Rapazes, digam-me como implementar este algoritmo:
Há uma série cronológica com volume
Quero comparar o Volume[1] para ser maior do que cada uma das barras anteriores do Volume[1] e especificar uma janela (número) de barras anteriores com variável externa (int externa)
Escreva uma amostra de código, se não for difícil
Funcionou? Como funcionava antes?
Funcionou sem erros, parece que eu mesmo o removi, por auto-substituição via ctrl+h, e não notei >_<. De qualquer forma, provavelmente foram os Illuminati que o fizeram. Mais uma vez obrigado !
Rapazes, digam-me como implementar este algoritmo:
Há uma série cronológica com volume
Quero comparar o Volume[1] para ser maior do que cada uma das barras anteriores do Volume[1] e especificar uma janela (número) de barras anteriores com variável externa (int externa)
Escreva uma amostra de código, se não for difícil
Não é difícil. Escrevi-o de joelhos de memória (posso ter perdido algo).
Olá. Eu não posso compartilhar o arquivo. A tarefa - Preciso que o arquivo do período mais antigo (por exemplo, M20) seja gerado em М1 durante o teste manual em МТ4 (MQL4) tester. Para este fim escrevi um indicador baseado no roteiro do PeriodConverter. Como no modo de teste é impossível salvar o arquivo (EURUSD20.csv) diretamente no histórico da pasta, o arquivo é salvo na pasta compartilhada por todos os terminais -MetaQuotesTerminalCommon. Então o script em loop, trabalhando em um gráfico padrão M1, copia os dados do arquivo EURUSD20.csv para o arquivo EURUSD20.hst, localizado na pasta History. O arquivo EURUSD20.csv não pode ser aberto no script, se ao mesmo tempo for aberto no indicador no testador (5004 ERR_FILE_CANNOT_OPEN File open error). Se você remover o indicador do testador, o arquivo no script é aberto e copiado sem problemas. O arquivo é aberto no indicador da seguinte forma: ExtHandle=FileOpen(c_symbol+(string)20+".csv",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_READ|FILE_SHARE_READ|FILE_COMMON);
O arquivo no script é aberto da seguinte forma: ExtHandleR=FileOpen("EURUSD20.csv",FILE_BIN|FILE_READ|FILE_SHARE_READ);
Favor indicar meu erro.
Olá. Eu não posso compartilhar o arquivo. A tarefa - Preciso que o arquivo do período mais antigo (por exemplo, M20) seja gerado em М1 durante o teste manual em МТ4 (MQL4) tester. Para este fim escrevi um indicador baseado no roteiro do PeriodConverter. Como no modo de teste é impossível salvar o arquivo (EURUSD20.csv) diretamente no histórico da pasta, o arquivo é salvo na pasta compartilhada por todos os terminais -MetaQuotesTerminalCommon. Então o script em loop, trabalhando em um gráfico padrão M1, copia os dados do arquivo EURUSD20.csv para o arquivo EURUSD20.hst, localizado na pasta History. O arquivo EURUSD20.csv não pode ser aberto no script, se ao mesmo tempo for aberto no indicador no testador (5004 ERR_FILE_CANNOT_OPEN File open error). Se você remover o indicador do testador, o arquivo no script é aberto e copiado sem problemas. O arquivo é aberto no indicador da seguinte forma: ExtHandle=FileOpen(c_symbol+(string)20+".csv",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_READ|FILE_SHARE_READ|FILE_COMMON);
O arquivo é aberto no script da seguinte forma: ExtHandleR=FileOpen("EURUSD20.csv",FILE_BIN|FILE_READ|FILE_SHARE_READ|FILE_COMMON);
Favor apontar meu erro.
Você já apontou isso?
Você o especificou?
Eu não entendo. Esta opção indica a localização do arquivo -MetaQuotesTerminalCommon. Sem esta opção não poderei agarrar o arquivo que foi gerado no testador. Sem esta opção o arquivo será pesquisado em MQL4\Files - e eu não posso colocar o arquivo do testador lá.