alsu: O melhor de tudo é não se preocupar com os turnos na EA, basta pegar o turno 0 e o número da barra que você quer.
Verifiquei com o testador agora, acontece que o comércio abre 5 velas depois de cruzar as médias móveis, e não é esse o caso... Eu descobri o que você pode fazer, mova as outras velas MA 5 para frente, então o sinal está correto...)
ierehon: Verifiquei agora com o testador, acontece que o comércio abre 5 velas depois que as médias móveis se cruzaram, e isso não é a mesma coisa... Descobri o que fazer, mover outras velas MA 5 para frente, então o sinal está correto...)
é a mesma coisa))
barra zero da MA deslocada por 5 barras à direita = 5ª barra da MA não deslocada
keep87: não pode. É possível pontuar manualmente dados de array para array dentro da EA se não mudar de otimização para otimização, para a época de testes.
Mas neste caso, MT terá que ler a matriz do arquivo cada vez(?), mas não de uma matriz separada, mas do código. - Haverá algum ganho neste caso?
Por exemplo, você poderia fazer o Expert Advisor carregar a matriz nas variáveis globais do terminal e depois ler a partir daí.
Os elementos da matriz podem ser de várias dezenas a várias centenas e para cada variável devem ser declarados de antemão. Será bastante difícil de implementar (é claro, a tarefa também não é trivial).
chief2000: Os elementos de matriz podem ser de várias dezenas a várias centenas, e uma variável deve ser declarada para cada um deles com antecedência. É um pouco complicado de implementar (é claro, a tarefa também não é trivial).
E daí? Manuseie as variáveis no laço da mesma forma que você manipularia os elementos da matriz. Exemplo de uso:
double a[];
int n;
...
ArrayResize(a,n);
...
//запись массива в глобальные переменныеstring name;
for(i=0;i<n;i++)
{
name = StringConcatenate("__ARRAY_",i);
GlobalVariableSet(name,a[i]);
}
//чтение в массив из глобальныхint gv = GlobalVariablesTotal();
int index;
for(i=0;i<gv;i++)
{
name = GlobalVariableName(i);
if(StringFind(name,"__ARRAY_")==0)
{
index = StrToInteger(StringSubstr(name,8));
if(index>=0&&index<n) a[index]=GlobalVariableGet(name);
//опционально - если хотим очистить список//GlobalVariableDel(name);
}
}
E daí? Manuseie as variáveis no laço da mesma forma que você manipularia os elementos da matriz. Exemplo de uso:
não poderia ser mais simples))
Em minha memória, trabalhei com algumas milhares de variáveis desta forma, e não notei nenhuma desaceleração. Para quantidades maiores (centenas de milhares de itens ou mais), eu geralmente tento usar o MySQL.
alsu: Em minha memória, trabalhei desta forma com algumas milhares de variáveis, e não encontrei nenhum atraso. Para quantidades maiores (centenas de milhares de itens ou mais), eu geralmente tento usar o MySQL.
não é possível
é possível)))
Por exemplo, você poderia fazer a EA carregar a matriz em variáveis globais do terminal e depois lê-la a partir daí.
Decida o que você quer que a saída seja. Se o valor da máquina for 5 barras para trás, então
ou idênticos
Em caso afirmativo,
será sempre VAZIO_VALOR, pois não há nenhum pulso deslocado nestas barras
O melhor de tudo é não se preocupar com os turnos na EA, basta pegar o turno 0 e o número da barra que você quer.
Verifiquei agora com o testador, acontece que o comércio abre 5 velas depois que as médias móveis se cruzaram, e isso não é a mesma coisa... Descobri o que fazer, mover outras velas MA 5 para frente, então o sinal está correto...)
é a mesma coisa))
barra zero da MA deslocada por 5 barras à direita = 5ª barra da MA não deslocada
não pode. É possível pontuar manualmente dados de array para array dentro da EA se não mudar de otimização para otimização, para a época de testes.
- Haverá algum ganho neste caso?
é possível)))
Por exemplo, você poderia fazer o Expert Advisor carregar a matriz nas variáveis globais do terminal e depois ler a partir daí.
Será bastante difícil de implementar (é claro, a tarefa também não é trivial).
Os elementos de matriz podem ser de várias dezenas a várias centenas, e uma variável deve ser declarada para cada um deles com antecedência.
É um pouco complicado de implementar (é claro, a tarefa também não é trivial).
E daí? Manuseie as variáveis no laço da mesma forma que você manipularia os elementos da matriz. Exemplo de uso:
não poderia ser mais simples))
E daí? Manuseie as variáveis no laço da mesma forma que você manipularia os elementos da matriz. Exemplo de uso:
não poderia ser mais simples))
Em minha memória, trabalhei desta forma com algumas milhares de variáveis, e não encontrei nenhum atraso. Para quantidades maiores (centenas de milhares de itens ou mais), eu geralmente tento usar o MySQL.
Você pode me aconselhar, há um arquivo csv com dados no formato 1.33027; 1.33023 e assim por diante.
Então leia este arquivo, mas por alguma razão os dados são lidos com uma precisão de 4 dígitos e eu preciso ler com 5.
Ler de diferentes maneiras e
não ajuda