[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 86

 
nemo811:
Obrigado. É a coisa certa a fazer?

Sim, eu acho que sim.
 
Não. A soma=0 deve ser colocada antes do For statement.
 
6166961669:

Não tenho certeza de quanto custaria encomendar uma EA, mas tenho certeza de que posso fazer com que ela funcione em ambos os gráficos.

Ah, e em geral é possível fazê-lo funcionar uma vez para 2 moedas diferentes (simultaneamente em dois gráficos) e aberto em cada uma das diferentes profissões.

Por exemplo, eu comprei no primeiro e vendi no segundo?

E no encerramento de uma das transações abertas o oposto da transação já aberta....

E talvez alguém saiba, talvez exista um consultor especializado, apenas uma boa idéia me veio à mente.....


Qualquer coisa pode ser feita. Por favor, escreva-me pessoalmente. Faremos um acordo.
 
FOReignEXchange:
Oh não. Soma=0 deve ser colocada antes Para operador.

Tudo isso está funcionando. Obrigado. Encontrei outro erro no processo.

Vou fazer um pouco mais de trabalho para ver se aparece algo mais, e publicarei o resultado no banco de dados geral.

Mais uma vez obrigado por sua ajuda.

 
nemo811:

Tudo isso está funcionando. Obrigado. Encontrei outro erro no processo.

Vou fazer um pouco mais de trabalho para ver se aparece algo mais, e publicarei o resultado no banco de dados geral.

Obrigado novamente por toda a sua ajuda.


Seja bem-vindo. Seja bem-vindo.
 

Para: FOReignEXchange

Se eu, neste momento da execução do programa

bool externo Compra = verdadeiro;

duplo externo PriceBuy = 0;

int start()
{
if (Comprar)
{OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
PriceBuy = ??????????????????;}

retornar;
}

Vou especificar a tarefa" PriceBuy = ??????????????????;" - "PriceBuy = Perguntar;"

Posso ter certeza de que à medida que o programa avança (isto é, abrir um novo pedido com as condições especificadas)

"PriceBuy terá o mesmo valor?

 
OTPOK:

Para: FOReignEXchange

Se eu, neste momento da execução do programa

bool externo Compra = verdadeiro;

duplo externo PriceBuy = 0;

int start()
{
if (Comprar)
{OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
PriceBuy = ??????????????????;}

retornar;
}

Vou especificar a tarefa" PriceBuy = ??????????????????;" - "PriceBuy = Perguntar;"

Posso ter certeza de que à medida que o programa avança (isto é, abrir um novo pedido com as condições especificadas)

"PriceBuy terá o mesmo valor?


Como pode o preço duplo externo do PriceBuy = 0 ? Somente as constantes são especificadas nas variáveis globais. Se for totalmente removido de lá, a resposta é a seguinte:

Se nenhum outro valor for atribuído à variável PriceBuy em outro lugar, o valor de PriceBuy = Ask; permanecerá válido até que os cálculos cheguem novamente à abertura do novo pedido. Ao chegar lá novamente, será atribuído à variável o novo valor PriceBuy = Ask; corresponderá ao preço Ask no momento da abertura do novo pedido.

Qual é o problema? É claro.

 
FOReignEXchange:


Como é externamente o Double PriceBuy = 0 ? Somente números constantes são especificados em variáveis globais.

Por favor, não confunda nossos principiantes.

Primeiro: a variável PriceBuy, neste caso, é uma variável externa. E uma variável externa é global por definição!

Segundo: Você pode atribuir qualquer valor a uma variável externa no código da EA, mas então ela perderá seu significado (ser uma variável externa). E as variáveis globais são precisamente usadas para armazenar e alterar seus valores dentro de todo o código (o escopo - o programa inteiro). Leia mais.

Em terceiro lugar, se houver um Slippage na função OrderSend trade e quisermos abrir uma ordem de compra, a ordem não será necessariamente aberta ao preço Ask porque a execução de uma ordem de compra emitida pela função OrderSend leva algum tempo e o preço pode se afastar desse valor.

O código mostrado na página anterior será mais correto:

abolir:
extern bool Buy = true;
extern double PriceBuy = 0; 
int start() 
{
   if(Buy) 
   {
     int ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
     if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
        PriceBuy=OrderOpenPrice();
   }
   return(0); 
}
 
MaxZ:

Portanto, o código mais correto é aquele já citado na página anterior, e passo a citar:


"É do jeito que você gosta. A caligrafia de cada um é diferente. Talvez sua caligrafia esteja correta, mas a mim me parece confusa.

Eu não o faria dessa maneira.

Antes de mais nada, não sei bem por que devo declarar uma variável ali e qual é o objetivo da mesma que também não entendo.

Em segundo lugar, a linha PriceBuy = Ask; está localizada logo após a função OrderSend. E, tanto quanto sei, os cálculos são imediatamente passados para a linha seguinte, assim que esta função termina sua execução. Eu não acho que o preço Ask possa mudar. Tento escrever tudo da maneira mais simples possível, reduzindo o número de caracteres, se isso não interferir no funcionamento normal do programa. Posso atribuir um valor da mesma forma que você, não vejo um problema aqui. Eu escrevi a primeira e mais simples coisa que me veio à mente.

 
Certo. Certo. Eu batizei mal a variável. Isso eu lhe garanto. Sua teoria é boa. Mas sua lógica não é.
Razão: