[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 140

 
valeryk:

bool NewBar()
{static datetime newbar;
bool res=false;
if(newbar==0)newbar=Time[0];
if(newbar!=Time[0]){res=true;newbar=Time[0];}
return(res);
}

Nova presença em bares .

Entendi que o símbolo é colocado ao preço aberto do bar. E eu preciso que seja a preço de fechamento.
Falhei ao inserir seu código porque não sou programador. Especialmente esta barra de chocolate NewBar()
 
supernyb:
Entendo que o ícone é colocado ao preço aberto do bar. Preciso que seja ao preço de fechamento.
Falhei ao inserir seu código porque não sou programador. Especialmente esta barra de chocolate NewBar()
Observe o tempo de cotação e o tempo de ajuste de barras: 15 minutos. Você acha que Close[0] pode mudar durante este tempo?
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if(NevBar()) 
     {
     //в этом блоке размещайте ваш код
     }    
//----
   return(0);
  }
//-----------------------------------------------------------------------------+
// Функция контроля нового бара                                                |
//-----------------------------------------------------------------------------+
bool NevBar(){
   static int PrevTime=0;
   if (PrevTime==Time[0]) return(false);
   PrevTime=Time[0];
   return(true);} 
 

Mais uma vez, por favor. Olá, tomei o roteiro do tutorial de S. Kovalev como base. Quero fazer um consultor especializado para abrir um comércio, colocar um fim às perdas, obter lucro e depois esperar que o comércio feche (ou seja, o fim das perdas ou lucro), e só então reabrir o comércio. Eu tentei com interrupções de ciclo e de ciclo. Por favor, informe como fazer isso. Pensei que talvez fosse mais fácil não definir de uma só vez o stop-loss e o take-profit, e que o preço fosse fechado quando se aproximasse de um certo nível. Mas não quero fazer isso dessa maneira porque tenho medo de escorregar, e cada ponto é importante para mim. Entendi que abri um negócio ou às vezes um casal ao mesmo tempo (também está errado?), mas não posso abrir novos negócios depois que o negócio for fechado. Ou aconselhar como prescrever, de modo que o programa estivesse esperando por uma parada de perda de desempenho ou por um lucro, e SOMENTE continuasse?

//+
+ int start() // function start
{
duplo //
declarar variáveis x,
y;
//+----+
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point); //
ordem de mercado para comprar e colocar um fim e lucrar 15 pontos do preço de abertura
//+ + while(x!=Ask-15*Point|||y!=Ask+15*Point) //---- da condição que eu quero que o comércio seja fechado até que o comércio anterior seja fechado, ou sejaе. é possível para
{//
manter APENAS um comércio aberto continuar;//---- interromper a condição e ir para o próximo passo
}
//+------------------------------------------------------------------+
return;//---- function return
}
//+ +

 

Se você não se importa se tem uma parada ou uma tomada, por que não verificar se há ou não ordens abertas?

if(OrdensTotal()<1)

 

Você pode me dizer o que pode ser feito nesta situação? Eu tenho um indicador. Tenho que traçar uma linha vertical no gráfico, depois chamar propriedades, copiar o número e depois inseri-lo no indicador.

Seria bom se o indicador fosse colocado onde você clica com seu mouse.

Ou, pelo menos, seria possível movê-lo com o mouse sobre a tabela.


Arquivos anexados:
indicator.mq4  3 kb
 
Begemot7:

Mais uma vez, por favor. Olá, tomei o roteiro do tutorial de S. Kovalev como base. Quero fazer um consultor especializado para abrir um comércio, colocar um fim às perdas, obter lucro e depois esperar que o comércio feche (ou seja, o fim das perdas ou lucro), e só então reabrir o comércio. Eu tentei com interrupções de ciclo e de ciclo. Por favor, informe como fazer isso. Pensei que talvez fosse mais fácil não definir de uma só vez o stop-loss e o take-profit, e que o preço fosse fechado quando se aproximasse de um certo nível. Não quero fazer isso dessa maneira porque tenho medo de escorregar, e cada ponto é importante para mim. Entendi que abri um negócio ou às vezes um casal ao mesmo tempo (também está errado?), mas não posso abrir novos negócios depois que o negócio for fechado. Ou aconselhar como prescrever, de modo que o programa estivesse esperando por uma parada de perda de desempenho ou por um lucro líquido, e SOMENTE, então foi além?

int ticket=-1;
int start()       //---- функеция старт            
  {
  double     //---- объявляю переменные 
  x,
  y;
  bool sel;
  //+------------------------------------------------------------------+
  sel=false;
  if(ticket>=0)
   {
    sel=OrderSelect(ticket,SELECT_BY_TICKET);if(!sel) ticket=-1;
   }
  if(ticket<0 || (sel && ticket>=0 && OrderCloseTime()>0)) ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point);
   return;                                                          //---- функция return 
    }

Ou melhor assim (no caso de reiniciar o Expert Advisor):

int ticket=-1;
int init()
 {
  if(GlobalVariableCheck("TICKET")) ticket=GlobalVariableGet("TICKET");
  else ticket=-1;
 }
int start()          
 {
  bool sel;
  sel=false;
  if(ticket>0)
   {
    sel=OrderSelect(ticket,SELECT_BY_TICKET);if(!sel) ticket=-1;
   }
  if(ticket<=0 || (sel && ticket>0 && OrderCloseTime()>0))
   {
    ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point);
    if(ticket>0) GlobalVariableSet("TICKET",ticket);
   }
   return; 
  }
 
r772ra:
Observe o tempo de cotação, e o tempo que o ícone foi definido, 15 minutos, você acha que Close[0] pode mudar durante este tempo


Obrigado, isto é exatamente o que eu precisava! Eu fiz como você disse e tudo funcionou! Eu também coloquei Close[1] em vez de Close[0] no Star Price e descobri que minha marca foi tirada a preços de fechamento. Ele não espera por um bar como eu pensava.
 
001:

Eu gostaria que o indicador fosse colocado onde você clica com o mouse.

Para obter as coordenadas do ponto, onde o indicador foi lançado, é possível utilizar funções:

WindowXOnDropped()

WindowYOnDropped()

Preço e tempo:

WindowPriceOnDropped()

WindowTimeOnDropped()

 
valeryk:

bool NewBar()
{static datetime newbar;
O bool res=falsoar;
if(newbar==0)newbar=Time[0];
if(newbar!=Time[0]){res=true;newbar=Time[0];}
retorno(res);
}

Disponibilidade de um novo bar .


Eis o que o guru disse sobre seu código!

Em sua versão, a data estática da nova barra não é inicializada com zero , e isto é incorreto.

 
Sepulca:

Melhor assim (caso a EA seja reiniciada):

IMHO - é melhor procurar seu pedido e ver se ele está no mercado ou fechado, e como ele fechou, por take, stop ou manualmente. A partir daqui, começaremos a dançar em diferentes direções.

Então tudo será preciso. E variáveis globais podem ser perdidas...