[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 19

 
nadya:
E se eu a escrevo como uma variável global, devo atribuir um valor diretamente lá?

Nelas, ainda mais porque não se reiniciam ao 0 desejado após deinit().

é melhor inicializá-los no init().

 
nadya:
Tenho que mudar a ideologia do programa. quando o middleSL é enviado para o stoploss, ele é normalizado, ou seja, arredondado para um certo sinal, quando dividido por 2 ele acontecerá, então é inevitável.
int z;
z=MathMod(Close[0]*10000,2.0);
if ((z==0)&&High[0]>H)
{
H=High[0];
middleSL=OrderOpenPrice()+(Close[0]-OrderOpenPrice())/MIDDLESL;
}

Eu compliquei um pouco o código, pois toda a transação, desde a abertura até o fechamento apenas 3 vezes deu um erro, agora em tempo real eu vou olhar para as condições em que elas ocorrem, elas basicamente não me incomodam, tudo funciona como um relógio, mas eu tenho medo que o servidor irá banir quando eu for para uma conta real

 
nadya:
e se eu a escrevo como uma variável global, devo atribuir o valor diretamente lá?


Você pode, mas não faz sentido, porque não será o mesmo que uma variável normal. Quando você arrasta o svetnic na tabela, uma janela irá aparecer, vá para a próxima aba "Parâmetros de entrada" e insira os valores desejados, e o svetnic irá memorizá-los

Se você quiser que o valor seja constante para cada ciclo da EA, basta digitar isto imediatamente após o início, por exemplo

int N=5; //одновременно объявляется переменная и присваивается ей значение
double K=3,5; //то же самое
 

por favor me diga, ou eu vou estourar agora!!!

um EA pode apagar ordens pendentes porque não tem fundos suficientes?

 
nadya:

por favor me diga, ou eu estou prestes a estourar!!!

um EA pode apagar ordens pendentes porque não tem fundos suficientes?


se você precisar verificar o saldo e fechar a ordem em caso de insuficiência, então sim, caso contrário ele emitirá um erro ou outra coisa, e talvez feche, mas é sempre melhor fornecer todas as opções e prescrevê-lo no código

"ERR_NOT_ENOUGH_MONEY 134 Não há dinheiro suficiente para executar uma transação" pode dar isto, mas a ordem será apagada ou ficará pendurada eu não sei

 
LazarevDenis:

Tornei o código um pouco mais complicado, pois toda a transação, desde a abertura até o fechamento, só deu 3 erros, agora em tempo real vou olhar para as condições em que eles ocorrem, eles não me incomodam em princípio, tudo funciona como um relógio, mas tenho medo de que o servidor proíba quando eu for para uma conta real

Sim, é muito complicado, existe tal abordagem de princípios?
 
LazarevDenis:

Se você precisar verificar o saldo e fechar o pedido se houver uma falta, então sim, caso contrário, ele dará um erro ou outra coisa, ou talvez o feche, mas é sempre melhor considerar todas as opções e prescrevê-lo no código.
Eu realmente não preciso disso, mas minhas ordens são apagadas de uma maneira estranha, eu fico procurando por um erro durante toda a noite.
 
nadya:
O problema é que eu realmente não preciso disso, mas meus pedidos são excluídos de uma forma estranha, estou procurando por um erro a noite inteira.


Tenho certeza de que é um lote grande e não há dinheiro livre suficiente, ou muitos pedidos já foram abertos (se você o deixar abrir mais de um).

Se você estiver trabalhando em um testador ou em uma demonstração, tente aumentar a quantidade de dinheiro e estabelecer um lote mínimo

 
nadya:

por favor me diga, ou eu vou estourar agora!!!

um EA pode apagar ordens pendentes porque não tem fundos suficientes?


Sim! dê uma olhada no tronco.
 
LazarevDenis:


mais do que certo de que um lote muito grande está definido e ele não tem dinheiro livre suficiente, ou um lote já está aberto (se você permitir que ele abra mais de um pedido)

se você estiver trabalhando em um testador ou demo, tente aumentar a quantidade de dinheiro e colocar o lote mínimo

eu já fiz isso e funcionou imediatamente! hurra!