Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1517

 

Olá a todos. Rapazes, ajudem-me a combinar 2 indicadores. Já faz 3 dias que estamos sentados e nada funciona.

O primeiro indicador mostra a tendência e o segundo me dá um alerta e me mostra o ponto de entrada com uma seta. Preciso fazer com que o segundo indicador dê sinais apenas para a tendência.

Estou tentando fazê-los ser um indicador, ou me dizer o que fiz de errado.

Arquivos anexados:
 
jarikn:

Olá a todos. Rapazes, ajudem-me a combinar 2 indicadores. Já faz 3 dias que estamos sentados e nada funciona.

O primeiro indicador mostra a tendência e o segundo me dá um alerta e me mostra o ponto de entrada com uma seta. Preciso fazer com que o segundo indicador dê sinais apenas para a tendência.

Ajude-me a fazê-los um todo ou me diga o que fiz de errado.

Apanhe

Arquivos anexados:
 

De que diabos você está falando? Será que ninguém lê a documentação ?

Bares

Solicitar o número de barras em um determinado intervalo

int  Bars( 
   string           symbol_name,     // имя символа 
   ENUM_TIMEFRAMES  timeframe,       // период 
   datetime         start_time,      // с какой даты 
   datetime         stop_time        // по какую дату 
   );

Valor retornado

Se os parâmetros start_time e stop_time forem dados, a função retorna o número de barras em um intervalo de datas. Se esses parâmetros não forem fornecidos, a função retorna a quantidade total de barras.

Bars - Доступ к таймсериям и индикаторам - Справочник MQL4
Bars - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
Bars - Доступ к таймсериям и индикаторам - Справочник MQL4
 

Por favor, me diga o que estou fazendo de errado) ou como fazer certo


void Lvls(datetime data, double OPEN, double avg)
  {

   double hi = OPEN + avg;

   double lo = OPEN - avg;
   
   Print("ХАЙ РАВЕН :", hi," ЛОУ РАВЕН :", lo, "ЦЕНА ОТКРЫТИЯ : ", OPEN);
   
   string up = "LVL_UP_" + TimeToString(data);
   string low = "LVL_LOW_" + TimeToString(data);

//Хай
   ObjectCreate(NULL,up,OBJ_TREND,0,data,hi,data,hi,clrBlue,STYLE_SOLID,2,true,true,false,true,false,1);

//Лоу
  ObjectCreate(NULL,low,OBJ_TREND,0,data,lo,data,lo,clrRed,STYLE_SOLID,2,true,true,false,true,false,1);
  }
  


Em geral, em primeiro lugar, os objetos são criados no gráfico, mas não são exibidos, e em segundo lugar, embora eu coloque uma linha de cor diferente, as propriedades da linha têm seu nome correto, mas sua cor em ambos os casos é vermelha, no terceiro eu não consigo entender que data especificar uma encadernação de 2 pontos se eu quiser que a linha continue para a direita, mas não foi um raio?

 
MakarFX:

A função funciona corretamente.

Tente assim

e adicionar atualização de saldo à função de fechamento de pedidos

Vou tentar durante o dia, obrigado

 
Alexey Viktorov:

Já estou perdido em seus desejos e conselhos para você... Então talvez meus conselhos sejam completamente fora de tópico, mas desculpe...

Entendo que você precisa fixar o saldo no início do dia e contar o lucro/perda durante o dia, de acordo com o qual você precisa tomar uma decisão sobre a continuidade da negociação ...

Portanto, aqui está a decisão

Se o Expert Advisor for reiniciado durante o dia, você deve considerar o cálculo de lucros/perdas das ordens de hoje levando em conta swaps e comissões e calcular o saldo para o início do dia no OnInit().

Acredito nas habilidades de Makar, ele pode mostrar tudo isso já no código...

Vou tentar durante o dia, obrigado

 
MakarFX:

Apanhe

É só isso? Há três dias que ando a pensar))))) uh, muito obrigado
 
MakarFX:

Apanhe

Olhei para a história, ainda não é a mesma. quando a tendência é comprar, pode dar um sinal para vender e vice-versa. você pode me dizer qual linha mudar? tudo está bem. muito obrigado.
 
jarikn:
Quando a tendência é comprar, pode dar um sinal para vender e vice versa. você pode me dizer qual linha mudar? caso contrário tudo é super. muito obrigado
Eu acabei de fundi-los.
 
Алексей КоКоКо:

Em geral, o primeiro objeto é criado no gráfico, mas não aparece, no segundo embora eu coloque linhas de cores diferentes nas propriedades têm seus próprios nomes, mas sua cor em ambos os casos é vermelha, no terceiro eu não consigo entender que data especificar uma âncora de 2 pontos se eu quiser que a linha continue para a direita, mas não foi um raio?

void Lvls(datetime data, double OPEN, double avg)
  {

   double hi = OPEN + avg;
   double lo = OPEN - avg;
   
   int shift = Period()*60*5;
   
   Print("ХАЙ РАВЕН :", hi," ЛОУ РАВЕН :", lo, "ЦЕНА ОТКРЫТИЯ : ", OPEN);
   
   string up = "LVL_UP_" + TimeToString(data);
   string low = "LVL_LOW_" + TimeToString(data);

//Хай
   ObjectCreate(NULL,up,OBJ_TREND,0,data,hi,data+shift,hi,clrBlue,STYLE_SOLID,2,true,true,false,true,false,1);

//Лоу
  ObjectCreate(NULL,low,OBJ_TREND,0,data,lo,data+shift,lo,clrRed,STYLE_SOLID,2,true,true,false,true,false,1);
  }
Razão: