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

 

Preciso de ajuda com os pedidos de fechamento)) há um comércio em cada bar. O testador abre muitos, muitos pedidos, e a maneira correta é enviar um pedido na barra atual e fechá-la na barra seguinte.

Diga-me o que está errado...

 if (OrdersTotal()!=0)
   {
     OrderSelect(OrderTicket(),SELECT_BY_TICKET);
     if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
     if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);
   }
 

Não é bem assim...

Quem o ensinou a fazer isso?

onde está o ciclo de pedidos?

o que acontece se o pedido não for "selecionado" ???

onde está a busca pelo tempo de abertura e fechamento do último pedido ???? ?

onde está a proibição de continuar abrindo ordens no mesmo bar se todas as ordens forem fechadas de acordo com as condições DIREITAS (que você não tem) ...

 
FAQ:

Não é bem assim...

Quem o ensinou a fazer isso?

onde está o ciclo de pedidos?

o que acontece se o pedido não for "selecionado" ???

onde está a busca pelo tempo de abertura e fechamento do último pedido ???? ?

onde está a proibição de continuar abrindo ordens no mesmo bar se todas as ordens forem fechadas de acordo com as condições DIREITAS (que você não tem) ...

Por que o ciclo de sobreposição, se há sempre um pedido aberto?
 
orb:

Preciso de ajuda com os pedidos de fechamento)) há um comércio em cada bar. O testador abre muitos, muitos pedidos, e a maneira correta é enviar um pedido na barra atual e fechá-la na barra seguinte.

Diga-me o que está errado...

OrderSelect(OrderTicket(),SELECT_BY_TICKET);

"selecione o pedido com o bilhete do pedido atualmente selecionado" como é isso?

 

Então...

Vá até a linha do Igor Kim, digite as funções que você precisa e use-as, e veja como fazer isso corretamente.

 
(cara, eu sou estúpido).
 
7sintez:
Olá a todos! Pessoal..., uma dica para um novato...! Quero fazer com que, sob certas condições, apenas um comércio se abra acima da vela!!! Eu tenho muitos negócios abertos por alguma razão... Não imediatamente, mas gradualmente... Ou seja, digamos que mais de um castiçal de 5 minutos durante todos os 5 minutos em que os negócios são abertos! E eu preciso fazer com que apenas uma profissão seja aberta! E para que no próximo castiçal, sob certas condições, apenas um negócio fosse aberto, etc.


Obrigado!

Eu o fiz desta maneira. Eu olho através das ordens e se houver uma ordem aberta no par de moedas, eu comparo seu tempo de abertura com o tempo da abertura atual do bar. Se o tempo do pedido for maior, eu saio. Se houver um novo bar, seu tempo aberto torna-se maior do que o tempo do pedido que bloqueou o comércio no bar anterior, e você pode negociar no novo bar.
if (OrdersTotal()>0)
   {  for (i=OrdersTotal()-1; i>=0; i--)
      {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {  if (OrderSymbol()==Symbol() && OrderOpenTime()>iTime(NULL,0,0))
            {   Sleep(5*1000); return(0);
   }  }  }  }
 
Qwertee:

Tecnicamente é simples: comprar !="comprar" - portanto o seguinte Alerta(1) não é executado.

O que a variável buysel contém naquele momento é descoberto por impressão: Imprimir (buysell); após o primeiro alerta.

------------------------------------------------------------------------------------------------------------------------------------------------

Esse é o problema, se eu colocar Print(buysell) em vez de Alert(1) no código, então buysell retorna o valor de compra, então qual é o problema?

Para ter certeza do método de ensurdecer uma barata arrancando suas pernas, você deve arrancar todas as pernas uma a uma, cada vez dando o comando "Crawl" - este é o destino de todos os experimentadores. Tente colocar algo mais no segundo comando Alerta(), por exemplo Alerta ("1"), ou Alerta ("Mamãe, não se entristeça!") - observe o que acontece. ;)))
 
paladin80:
Eu o fiz desta maneira. Se houver uma ordem em aberto no par de moedas de interesse, eu comparo seu tempo aberto com o tempo em que a barra atual começa a abrir. Se o tempo do pedido for maior, nós saímos. Se houver um novo bar, seu tempo aberto é maior do que o tempo do pedido que bloqueou a transação no bar anterior e podemos negociar no novo bar.
Se você diz a uma criança pequena para chamar sua mãe de "papai", ele o fará até que alguém "ria dele"...

Se estiver provocando um recém-chegado, obtenha-o imediatamente DIREITO! Construção:

if (OrdersTotal()>0)

Isso funcionará desde que o comerciante não tenha vários Expert Advisors na mesma conta, e isso acontecerá mais cedo ou mais tarde! O que significa, Um consultor sem um MAGIC é "como um pássaro sem asa, como um homem sem massa"....

A propósito, e

iTime(NULL,0,0)

é mais correto escrevê-lo como Tempo[0].
E Sono (5*1000) = 5 segundos. E do que estamos esperando?

 
7sintez:
Olá a todos! Pessoal..., uma dica para um novato...! Quero fazer com que, sob certas condições, apenas um comércio se abra acima da vela!!! Tenho muitos negócios abertos por alguma razão... Não imediatamente, mas gradualmente... Ou seja, digamos que mais de um castiçal de 5 minutos durante todos os 5 minutos em que os negócios são abertos! E eu preciso fazer com que apenas uma profissão seja aberta! E para que na próxima vela, sob certas condições, também, apenas um negócio seja aberto, etc.


Obrigado!

Compare o tempo de abertura do pedido com o início da vela de 5 minutos, por exemplo, assim:

if (iBarShift (NULL, 5, OrderOpenTime()) == iBarShift (NULL, 5, iTime (NULL, 5, 0))) return (0);
или
if (OrderOpenTime() >= iTime (NULL, 5, 0)) return (0);