O tipo int tem um tamanho de 4 bytes (32 bits). O valor mínimo é de -2 147 483 648, o valor máximo é de 2 147 483 647.
O meuiBarShift não quer dar um valor superior a 99999
Desenho uma linha de tendência no gráfico, o seguinte guião obtém a hora de início da linha e produz o número de barras dessa hora.
Quando a linha é deslocada para trás na história em algum momento, o valor de saída pára em 99999, e se
boolexact=falso// modo
alterá-lo para verdadeiro, imprime -1, e GetLastError = 0
voidOnStart()
{
int total = ObjectsTotal(0, 0, -1); // Общее кол-во объектов на: /текущий график/главное окно/все типы объектовdatetime time0 = 0; // Время соответствующее началу трендовой линииstring objname = ""; // Имя объекта (трендовой линии)int shift = 0; // Номер бара, соответствующего времени начала трендовой линии time0for(int i = total - 1; i >= 0; i--)
{
objname = (string)ObjectName(0, i, 0, OBJ_TREND);
time0 = ObjectGetInteger(0, objname, OBJPROP_TIME, 0);
shift = iBarShift(NULL, PERIOD_M1, time0, false);
Comment("shift: ", shift, " Error: ", GetLastError());
Sleep(2000);
}
}
O que é que está errado?
Tentei diferentes gráficos de diferentes corretores, o tempo da linha está a ler correctamente, se eu mudar PERIOD_M1 para M5, por exemplo, então preciso de ir mais longe na história para chegar a 99999
Целый тип char занимает в памяти 1 байт (8 бит) и позволяет выразить в двоичной системе счисления 2^8 значений=256. Тип char может содержать как положительные, так и отрицательные значения. Диапазон изменения значений составляет от -128 до 127. uchar # Целый тип uchar также занимает в памяти 1 байт, как и тип char, но в отличие от него, uchar...
O tipo int tem um tamanho de 4 bytes (32 bits). O valor mínimo é de -2 147 483 648, o valor máximo é de 2 147 483 647.
O meuiBarShift não quer dar um valor superior a 99999
Desenho uma linha de tendência no gráfico, o seguinte guião obtém a hora de início da linha e produz o número de barras dessa hora.
Quando a linha é deslocada para trás na história em algum momento, o valor de saída pára em 99999, e se
boolexact=falso// modo
alterá-lo para verdadeiro, imprime -1, e GetLastError = 0
O que é que está errado?
Tentei diferentes gráficos de diferentes corretores, o tempo da linha está a ler correctamente, se eu mudar PERÍODO_M1 para M5, por exemplo, preciso de ir mais longe na história para chegar a 99999.
Antes de mais, verificar o número máximo de barras nas definições do terminal.
intOnInit()
{
//-создадим хэндл индикатораhandle=iAO(name,period);
//-если не удалось создать хэндлif(handle==INVALID_HANDLE)
{
...
return(INIT_FAILED);
}
Pergunta: A partir de que parâmetros é atribuído o número (dígitos) de uma pega? Pode ser diferente depois de reiniciar o terminal? Pode ser diferente após uma reinicialização do gráfico? Em que casos pode mudar?
Pergunta: A partir de que parâmetros é atribuído o número (dígitos) de uma pega? Pode ser diferente depois de reiniciar o terminal? Pode ser diferente após uma reinicialização do gráfico? Em que casos pode mudar?
Se houver apenas um indicador, ele tem sempre uma pega de 10. Cada sucessivo é igual ao anterior+1 e tudo depende da ordem em que as pegas foram criadas. Só pode mudar se um dos anteriores receber um erro.
Se tiver um indicador, ele tem sempre uma pega de 10. Cada um dos seguintes é igual ao anterior+1 e tudo depende da ordem em que as pegas foram criadas. Só pode mudar se um dos anteriores receber um erro.
Estou a ver, é mais ou menos compreendido. Obrigado!
Pergunta: A partir de que parâmetros é atribuído o número (dígitos) de uma pega? Pode ser diferente depois de reiniciar o terminal? Poderá ser diferente após uma reinicialização do gráfico? Em que casos pode mudar?
Предположим, что нам вдруг наскучил классический MQL5-доступ к индикаторам и захотелось сравнить скорость доступа в сравнении с альтернативными вариантами. Например, сравним его с доступом к индикаторам в стиле MQL4 без кэширования и с кэшированием. Идеи с доступом в MQL4-стиле были взяты из статьи LifeHack для трейдера: готовим фастфуд из...
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
Se eu simplesmente especificar MyFun( &Mas[][] ) no cabeçalho, o compilador gera um erro ao aceder a um elemento de matriz Mas[j][k] no corpo da função... Mas como?
Parece não haver qualquer problema com as unidimensionais.
Se eu simplesmente especificar MyFun( &Mas[][] ) no cabeçalho, o compilador gera um erro ao aceder a um elemento de matriz Mas[j][k] no corpo da função... Mas como?
Parece não haver qualquer problema com as matrizes unidimensionais.
As dimensões da segunda e da próxima matriz não podem ser dinâmicas. Consequentemente, deve ser MyFun(int & Mas[][7]) declarado como um array, por exemplo, int Mas[][7]; portanto, deve ser recebido.
MQL5 iBarShift
De acordo com a documentação mql5, a função iBarShift retorna um valor do tipo int.
int#
O tipo int tem um tamanho de 4 bytes (32 bits). O valor mínimo é de -2 147 483 648, o valor máximo é de 2 147 483 647.
O meuiBarShift não quer dar um valor superior a 99999
Desenho uma linha de tendência no gráfico, o seguinte guião obtém a hora de início da linha e produz o número de barras dessa hora.
Quando a linha é deslocada para trás na história em algum momento, o valor de saída pára em 99999, e se
boolexact=falso// modo
alterá-lo para verdadeiro, imprime -1, e GetLastError = 0
O que é que está errado?
Tentei diferentes gráficos de diferentes corretores, o tempo da linha está a ler correctamente, se eu mudar PERIOD_M1 para M5, por exemplo, então preciso de ir mais longe na história para chegar a 99999
MQL5 iBarShift
De acordo com a documentação mql5, a função iBarShift retorna um valor do tipo int.
int#
O tipo int tem um tamanho de 4 bytes (32 bits). O valor mínimo é de -2 147 483 648, o valor máximo é de 2 147 483 647.
O meuiBarShift não quer dar um valor superior a 99999
Desenho uma linha de tendência no gráfico, o seguinte guião obtém a hora de início da linha e produz o número de barras dessa hora.
Quando a linha é deslocada para trás na história em algum momento, o valor de saída pára em 99999, e se
boolexact=falso// modo
alterá-lo para verdadeiro, imprime -1, e GetLastError = 0
O que é que está errado?
Tentei diferentes gráficos de diferentes corretores, o tempo da linha está a ler correctamente, se eu mudar PERÍODO_M1 para M5, por exemplo, preciso de ir mais longe na história para chegar a 99999.
Antes de mais, verificar o número máximo de barras nas definições do terminal.
Verifique primeiro o número máximo de barras nas definições do terminal.
Obrigado!
Era 10000, mudou-o para ilimitado e funcionou.
Mas não é uma coisa óbvia...
Ajuda na criação de pegas
Eis o que se passa
Pergunta: A partir de que parâmetros é atribuído o número (dígitos) de uma pega?
Pode ser diferente depois de reiniciar o terminal?
Pode ser diferente após uma reinicialização do gráfico?
Em que casos pode mudar?
Ajuda na criação de pegas
Eis o que se passa
Pergunta: A partir de que parâmetros é atribuído o número (dígitos) de uma pega?
Pode ser diferente depois de reiniciar o terminal?
Pode ser diferente após uma reinicialização do gráfico?
Em que casos pode mudar?
Se houver apenas um indicador, ele tem sempre uma pega de 10. Cada sucessivo é igual ao anterior+1 e tudo depende da ordem em que as pegas foram criadas. Só pode mudar se um dos anteriores receber um erro.
Se tiver um indicador, ele tem sempre uma pega de 10. Cada um dos seguintes é igual ao anterior+1 e tudo depende da ordem em que as pegas foram criadas. Só pode mudar se um dos anteriores receber um erro.
Estou a ver, é mais ou menos compreendido. Obrigado!
Ajuda na criação de pegas
Há uma coisa como isto
Pergunta: A partir de que parâmetros é atribuído o número (dígitos) de uma pega?
Pode ser diferente depois de reiniciar o terminal?
Poderá ser diferente após uma reinicialização do gráfico?
Em que casos pode mudar?
Respostas encontradas
Por favor, aconselhar como passar correctamente uma matriz multidimensional para uma função.
Se eu simplesmente especificar MyFun( &Mas[][] ) no cabeçalho, o compilador gera um erro ao aceder a um elemento de matriz Mas[j][k] no corpo da função... Mas como?
Parece não haver qualquer problema com as unidimensionais.
Por favor, aconselhar como passar correctamente uma matriz multidimensional para uma função.
Se eu simplesmente especificar MyFun( &Mas[][] ) no cabeçalho, o compilador gera um erro ao aceder a um elemento de matriz Mas[j][k] no corpo da função... Mas como?
Parece não haver qualquer problema com as matrizes unidimensionais.
As dimensões da segunda e da próxima matriz não podem ser dinâmicas. Consequentemente, deve ser MyFun(int & Mas[][7]) declarado como um array, por exemplo, int Mas[][7]; portanto, deve ser recebido.