A1exPit: Eu quis dizer que quando os dados são passados para um array, ele será preenchido sequencialmente, ou seja, array1[] = x; em qual célula será escrito o valor x se o número da célula não for especificado diretamente?
Se você quiser escrever valores diferentes, use o laço sequencialmente. Se você precisar escrever para uma célula específica, especifique seu endereço.
Se você quiser escrever valores diferentes, use o laço sequencialmente. Se você precisar escrever para uma célula específica, especifique seu endereço.
Obrigado,
Aqui está outra pergunta: através do ArrayCopy, serei capaz de criar uma nova matriz com tamanho igual ao número de células preenchidas na anterior? Ou devo criar uma segunda matriz primeiro, e só depois copiar?
intArrayCopy( void& dst_array[], // куда копируем constvoid& src_array[], // откуда копируем int dst_start=0, // с какого индекса пишем в приемник int src_start=0, // с какого индекса копируем из источника int count=WHOLE_ARRAY// сколько элементов );
Aqui está outra pergunta: com o ArrayCopy, posso criar uma nova matriz com o mesmo tamanho que o número de células preenchidas na anterior? Ou eu tenho que criar uma segunda matriz primeiro e depois copiar?
intArrayCopy( void& dst_array[], // куда копируем constvoid& src_array[], // откуда копируем int dst_start=0, // с какого индекса пишем в приемник int src_start=0, // с какого индекса копируем из источника int count=WHOLE_ARRAY// сколько элементов );
Spread = MarketInfo(Symbol(),MODE_SPREAD); if ( Spread >= 0 ) ExtSpread [x] = Spread; if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){ int Spread2[x]; ArrayCopy( Spread2[],ExtSpread[],0,0, WHOLE_ARRAY);} x=x+1; if (x > 1000) x = 0;
Assim, eu escrevo o valor Spread para ExtSpread[] e quando a barra de um minuto termina, eu a mudo para outro array - que, em teoria, deveria sobreviver para a próxima barra.
Tamanho ExtSpread[1000]
Mais uma pergunta: se a matriz for numerada a partir de zero, então, se seu tamanho for 1000, sua última célula será 999 ?
Spread = MarketInfo(Symbol(),MODE_SPREAD); if ( Spread >= 0 ) ExtSpread [x] = Spread; if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){ int Spread2[x]; ArrayCopy( Spread2[],ExtSpread[],0,0, WHOLE_ARRAY);} x=x+1; if (x > 1000) x = 0;
Assim, eu escrevo o valor Spread para ExtSpread[] e quando a barra de um minuto termina, eu a mudo para outro array - que, em teoria, deveria sobreviver para a próxima barra.
Tamanho ExtSpread[1000]
Mais uma pergunta: se a matriz for numerada a partir de zero, então, se seu tamanho for 1000, sua última célula será 999 ?
Então é correto: x++ e se ( x > 999 ) x=0;
Spread = (int)MarketInfo(Symbol(),MODE_SPREAD); if ( Spread >= 0 ) ExtSpread [x] = Spread; if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){ int Spread2[];ArrayInitialize (Spread2,EMPTY_VALUE); ArrayResize( Spread2,x,0); ArrayCopy( Spread2,ExtSpread,0,0, WHOLE_ARRAY);} x=x+1; if (x > 999) x = 0;
Boa tarde! poderia me dizer, por favor, que eu baixei a versão mt4 636 em andróide, mas ela não vê a lista de corretores. A versão terminal não é mais suportada?(( Em caso afirmativo, onde posso fazer o download de uma versão funcional?
Durante a compilação, aparecerá um erro. Qual é o problema? Ajude-me a resolvê-lo!
ArrayInitialize(max,0) =>ArrayInitialize(arr,0);
for(int a=1;a<=pr;a++) =>for(int a=1;a<pr;a++)
Este é um código muito pequeno, o terminal fica pendurado por alguns minutos ao lançá-lo, e então será muito lento, e se você o executar com vários gráficos, então não funcionará de forma alguma
Este é um código muito pequeno, o terminal fica pendurado por alguns minutos ao lançá-lo, e então será muito lento, e se você o executar com vários gráficos, então não funcionará de forma alguma
Sim, obrigado, consertou tudo, sem erros. Atrasos, sim, muito. Você poderia me dizer em que direção devo avançar para otimizar, ou terei que reescrever tudo?
Eu quis dizer que quando os dados são passados para um array, ele será preenchido sequencialmente, ou seja, array1[] = x; em qual célula será escrito o valor x se o número da célula não for especificado diretamente?
Não. Se você quiser preencher todas as células com o mesmo valor , use ArrayInitialize().
Se você quiser escrever valores diferentes, use o laço sequencialmente. Se você precisar escrever para uma célula específica, especifique seu endereço.
Não. Se você quiser preencher todas as células com o mesmo valor , use ArrayInitialize().
Se você quiser escrever valores diferentes, use o laço sequencialmente. Se você precisar escrever para uma célula específica, especifique seu endereço.
Obrigado,
Aqui está outra pergunta: através do ArrayCopy, serei capaz de criar uma nova matriz com tamanho igual ao número de células preenchidas na anterior? Ou devo criar uma segunda matriz primeiro, e só depois copiar?
void& dst_array[], // куда копируем
const void& src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int count=WHOLE_ARRAY // сколько элементов
);
Obrigado,
Aqui está outra pergunta: com o ArrayCopy, posso criar uma nova matriz com o mesmo tamanho que o número de células preenchidas na anterior? Ou eu tenho que criar uma segunda matriz primeiro e depois copiar?
void& dst_array[], // куда копируем
const void& src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int count=WHOLE_ARRAY // сколько элементов
);
Criar primeiro, é claro.
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){
int Spread2[x];
ArrayCopy( Spread2[],ExtSpread[],0,0, WHOLE_ARRAY);}
x=x+1;
if (x > 1000) x = 0;
Assim, eu escrevo o valor Spread para ExtSpread[] e quando a barra de um minuto termina, eu a mudo para outro array - que, em teoria, deveria sobreviver para a próxima barra.
Tamanho ExtSpread[1000]
Mais uma pergunta: se a matriz for numerada a partir de zero, então, se seu tamanho for 1000, sua última célula será 999 ?
Então é correto: x++ e se ( x > 999 ) x=0;
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){
int Spread2[x];
ArrayCopy( Spread2[],ExtSpread[],0,0, WHOLE_ARRAY);}
x=x+1;
if (x > 1000) x = 0;
Assim, eu escrevo o valor Spread para ExtSpread[] e quando a barra de um minuto termina, eu a mudo para outro array - que, em teoria, deveria sobreviver para a próxima barra.
Tamanho ExtSpread[1000]
Mais uma pergunta: se a matriz for numerada a partir de zero, então, se seu tamanho for 1000, sua última célula será 999 ?
Então é correto: x++ e se ( x > 999 ) x=0;
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){
int Spread2[];ArrayInitialize (Spread2,EMPTY_VALUE); ArrayResize( Spread2,x,0);
ArrayCopy( Spread2,ExtSpread,0,0, WHOLE_ARRAY);}
x=x+1;
if (x > 999) x = 0;
Adiado:
scomoroh, 2016.12.04 18:58
Um erro aparece quando da compilação. Qual é o problema? Ajude a resolvê-lo!Adiado:
scomoroh, 2016.12.04 18:58
Durante a compilação, aparecerá um erro. Qual é o problema? Ajude-me a resolvê-lo!ArrayInitialize(max,0) =>ArrayInitialize(arr,0);
for(int a=1;a<=pr;a++) =>for(int a=1;a<pr;a++)
Este é um código muito pequeno, o terminal fica pendurado por alguns minutos ao lançá-lo, e então será muito lento, e se você o executar com vários gráficos, então não funcionará de forma alguma
ArrayInitialize(max,0) =>ArrayInitialize(arr,0);
for(int a=1;a<=pr;a++) =>for(int a=1;a<pr;a++)
Este é um código muito pequeno, o terminal fica pendurado por alguns minutos ao lançá-lo, e então será muito lento, e se você o executar com vários gráficos, então não funcionará de forma alguma