[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 55

 
Lians:

Já entrei em contato com o fórum para escrever e ler arrays para um arquivo, e agora encontrei novamente um problema: depois de escrever um array para um arquivo, não consigo encontrar o elemento array por valor, então aqui está um script:

O resultado de executar este script em mim é a entrada de registro "A palavra xyz não está no arquivo escrito, mas a palavra xyz está".

Você poderia me dizer o que está errado e como consertá-lo?

Você está usando um conjunto bidimensional y[][] enquanto verifica (busca) em conjunto unidimensional. Tente esta função:

bool ArraySearchString (string m[][], string e1)
{
    for (int i1 = 0; i1 < ArrayRange (m, 0); i1++)
    {
        for (int i2 = 0; i2 < ArrayRange (m, 1); i2++)
        if (m[i1][i2] == e1) return (true);
    }
    return (false);
}

e alterar a condição de verificação para

if (ArraySearchString (y,"xyz"))
 

TarasBY, muito obrigado! Funciona!

E outra pergunta, alguém encontrou um fenômeno onde o mesmo script que calcula matematicamente um inteiro em diferentes construções do terminal dá valores diferentes. Por exemplo, em 399 construções ele produz 488143839, mas em 416 construções ele produz 348186686.

Já o verifiquei várias vezes - o roteiro funciona o mesmo com os mesmos parâmetros em construções diferentes.

 
Lians:

TarasBY, muito obrigado! Funciona!

E outra pergunta, alguém encontrou um fenômeno onde o mesmo script que calcula matematicamente um inteiro em diferentes construções do terminal dá valores diferentes. Por exemplo, em 399 construções ele produz 488143839, mas em 416 construções ele produz 348186686.

Já o verifiquei várias vezes - o roteiro funciona o mesmo com os mesmos parâmetros em construções diferentes.



Seus números são grandes, talvez a causa seja um transbordo de variáveis inteiras.
 
Olá, você pode me ajudar a acrescentar uma parada de perda? Eu mesmo o experimentei, não parece que a perda pare.
Arquivos anexados:
q163hud4n85.mq4  33 kb
 
moskitman:
Não, Vadim, a área de trabalho! Uma placa gráfica 512mb GForce 9600 em si.
Sistemas operacionais clientes de 32 bits não podem usar mais do que 3,5GB de memória (cerca de 3,25, depende da natureza da placa mãe bios)
Isto se deve à arquitetura de 32 bits e ao fato de que 3,5 a 4Gb de espaço é dedicado a dispositivos PCI, em particular, se você tiver muitos dispositivos PCI instalados, você "verá" menos RAM do que você tem
.
 
Zhunko:
Já me disseram, mas obrigado de qualquer forma, Vadim.
 
sand:

Seus números são grandes, talvez o motivo seja um transbordo de variáveis inteiras.
Você sabe como evitar isso? Não utilizar funções como MathFloor(), MathSqrt() ...? Ou não há nada a ser feito a esse respeito? Preciso que conte da mesma forma em todos os lugares.
 
yosuf:
Muitas vezes a internet cai, é possível automatizar seu reinício com software? Ou o que se sabe sobre isso? Existe alguma forma de alimentar dois ou mais ISPs ao mesmo tempo, ou seja, em paralelo? Obrigado antecipadamente.

XmaksasX:

faça um documento em texto simples e coloque neste texto

:LOOP
ping 8.8.8.8 | find "100%" && (rasdial /disconnect & rasdial "NAME OF YOUR CONNECTION" login pass)
ping -w 1000 -n 30 127.0.0.1

goto LOOP

save it and change the extension from *.txt to *.bat, roll it up and enjoy))

XmaksasX, muito obrigado por seu conselho muito sábio, a conexão com a Internet não tem sido interrompida há dois dias, ou talvez eu não tenha notado, uma vez que o princípio acima funciona. Eu costumava ter apagões a cada 10 minutos, a cada hora ou à noite, ainda mais triste no trabalho, ou seja, sem nenhum sistema. Agora é uma bênção, você também pode ter uma boa noite de sono.

Outra pergunta, é possível gerenciar uma conta real simultaneamente a partir de dois computadores, um em casa e outro no trabalho?

 

Aqui está um pedaço de código da EA. Eu queria implementar a idéia de que se houver um desvio do preço aberto por sigma, então feche. na idéia se você colocar sigma = 1*Ponto. Então o Expert Advisor deve sempre fechar com lucro, porque o desvio está sempre presente em 1*Point. Outra coisa é que na negociação real, há um spread para que ele perca lucro e no Strategy Tester não há spread, então ele deve ter lucro o tempo todo.

Acho que há aqui um erro.

if (OrdersTotal()!=0)
    {
     OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
     
     if (OrderType()==OP_BUY)
     {
      if ((Bid-Open[0])>=SigmaHigh*Point) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Red);
     }
      
     if (OrderType()==OP_SELL) 
     {
       if ((Open[0]-Ask)>=SigmaLow*Point) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Green);
     }
    }
 
orb:

e não há propagação no testador


Há um spread no testador. Exatamente o mesmo que no gráfico quando o teste foi realizado.