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

 
Chiripaha:

Deparei-me com este problema interessante:

Eu escrevo uma condição trivial:

,,,

Se seus preços A e B são os mesmos, a condição correta pode parecer a seguinte

if( А + 0.5 * Point < Б )
{
  // Выполнить действия
}
 
Aizec:

Posso ter um pequeno exemplo de código?

https://www.mql5.com/ru/code/10831
 


TarasBY:

Roger:
Os números fracionários precisam ser normalizados antes de serem comparados.
Desvirtuado:

Se seus preços A e B, a condição correta pode se parecer com esta

Muito obrigado por sua ajuda!

Eu normalizo os dados o tempo todo, e é por isso que me surpreendi com um fenômeno semelhante. Mas aparentemente nem tudo é levado em conta no processo de escrita e pela experiência, portanto o conselho de "normalizar um pouco antes de comparar os parâmetros que estão sendo comparados" é muito eficaz. Tudo tem funcionado de forma consistente.

 

Boa noite a todos.

Você pode me dizer por que um pedido não está abrindo?

int last;

int start()

(

if (Hour( ) == 12) // se uma vela de 12 horas for formada na TF 60
último = iBarShift (Símbolo (),0,iTime( NULL, 0, 0) ); // lembrar N desta vela
if (último == 10) // e quando esta vela for N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ); // abrir o pedido

)

retorno(0);

Eu acho que iBarShift não funciona porque o parâmetro iTime( NULL, 0, 0) ) retorna o tempo em segundos, enquanto eu preciso dele no formato D'04.04.2000 19:05 '.

PERGUNTA 1. Que função retorna o tempo de abertura de uma vela no formato D'04.04.2000 19:05 '

Eu verifiquei - com este formato a função iBarShift funciona e o pedido abre. Mas funciona se a primeira condição estiver ausente se (Hora( ) == 12)

PERGUNTA 2 Porque o iBarShift não funciona após a condição se (Hora( ) == 12)

OBRIGADO.

 
solnce600:

Boa noite a todos.

Você pode me dizer por que um pedido não está abrindo?

int last;

int start()

(

if (Hour( ) == 12) // se uma vela de 12 horas for formada na TF 60
último = iBarShift (Símbolo (),0,iTime( NULL, 0, 0) ); // lembrar N desta vela
if (último == 10) // e quando esta vela for N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ); // abrir o pedido

)

retorno(0);

Eu acho que iBarShift não funciona porque o parâmetro iTime( NULL, 0, 0) ) retorna o tempo em segundos, enquanto eu preciso dele no formato D'04.04.2000 19:05 '.

PERGUNTA 1. Que função retorna o tempo de abertura de uma vela no formato D'04.04.2000 19:05 '

Eu verifiquei - com este formato a função iBarShift funciona e o pedido abre. Mas funciona se a primeira condição estiver ausente se (Hora( ) == 12)

PERGUNTA 2 Porque o iBarShift não funciona após a condição se (Hora( ) == 12)

OBRIGADO.


ou seja, você (se o entendi corretamente) abre uma posição na 22ª barra do quadro horário

int start()
  {

if(iBarOfDayCalc(60)==22)
     int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point,"jfh",123 ); //открыть ордер

 return(0);
  }

//  фуннкцыя------------------------
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 26.02.2008                                                     |
//|  Описание : Возвращает расчётный номер бара от начала суток.               |
//|           : Нумерация баров начинается с 1 (единица).                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    tf - таймфрейм                       (0 - текущий таймфрейм)            |
//|    dt - дата и время открытия бара      (0 - текущее время)                |
//+----------------------------------------------------------------------------+
int iBarOfDayCalc(int tf=0, datetime dt=0) {
  if (tf<=0) tf=Period();
  if (dt<=0) dt=TimeCurrent();
  if (tf>PERIOD_D1) {
    Print("iBarOfDayCalc(): Таймфрейм должен быть меньше или равен D1");
    return(0);
  }
  double ms=MathMod(dt/60, 1440);      // количество минут от начала суток
  int    bd=MathFloor(ms/tf)+1;        // номер бара от начала суток

  return(bd);
}
 
r772ra:


Ou seja, você (se entendi corretamente) abre uma posição na 22ª barra do quadro horário

No meu exemplo - exatamente assim, ou seja, na 22ª vela.

Mas em geral - eu gostaria de lembrar qualquer vela (com os parâmetros que eu preciso)

e depois dela (memorizada) a vela será movida a uma distância desejada (ou seja, será - 5.6.... 100)

abrir um pedido.

Portanto, se não estou enganado, a função acima de Kim provavelmente não funcionará para mim,

porque conta as velas desde o início do dia e só funciona com 24 velas.

Acho que preciso da função iBarShift que pode lembrar qualquer vela.

(Por exemplo, a cada quinquagésimo ou centésimo candelabro a partir de qualquer candelabro que eu precise).

Mas esta função, por alguma razão, não trabalho(os detalhes que descrevi no primeiro post)

Eu ficaria grato se você pudesse me ajudar a encontrar respostas às minhas perguntas.

Muito obrigado por sua participação.

 

Boa tarde, poderia aconselhar como se certificar de que, após abrir esta posição em particular, o código EA comece a funcionar desde o início, quando eu o fizer?

se (compra de bilhetes>0)
{
retornar;
}

Não abre mais pedidos em outras condições e eu tenho que abrir vários deles. Tenho que abrir vários outros pedidos. Obrigado.

 
Vinin:

Se houver buffers indicadores suficientes, você pode fazer isso sem objetos


mas como? se o indicador estiver janelado, como você pode exibir as setas no gráfico? Eu só uso 4 buffers

 

Boa tarde. Desculpe a intromissão numa conversa contínua. Se você tem um minuto ... Eu tenho um indicador que puxa a seta para cima e para baixo Eu preciso de um Expert Advisor para fazê-lo Eu posso dizer que estou apenas aprendendo mkuell e os indicadores não têm lidado

#janela_do_cartão_indicador de propriedade

#property indicator_buffers 2

#código de propriedade_cores1 azul

#indicador de propriedade_color2 Vermelho

//---- parâmetros de entrada

NumBars=500;

//---- buffers

duplo ExtMapBuffer1[];

duplo ExtMapBuffer2[];

dupla propagação;

talvez alguém tenha um modelo

 

Favor informar se alguém souber. A Gepard 5.0 Expert Advisor on Forex4you está abrindo algumas negociações com grande desvantagem. Onde posso ajustar as configurações?

Razão: