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 699

 

A EA utilizou uma contagem regressiva com um registro de tempo sobre o evento que estava ocorrendo:

if (line1 < 0 && time ==0){time=Time[0];}//сработало предварительное условие входа, записываем время
if (time > 0)shift=iBarShift(Symbol(),Period(),time);//находим индекс бара

e se a condição não foi acionada

if (line1 == 0){time=0;}

o índice estava aumentando a cada barra.

No indicador é necessário colocar uma seta após um certo índice uma vez.

Eu tentei fazer o mesmo no indicador, mas nada funciona:

int tikket;// расположено на глобальном уровне
datetime time;// расположено на глобальном уровне

///////////////////////////////////

for(i=limit1;i>=0;i--)
     {
      if(ExtMapBuffer2[i]<0 && time == 0){time=Time[i];}
      if(time > 0)shift=iBarShift(Symbol(),Period(),time);//находим индекс бара
      if(ExtMapBuffer2[i]==0){time=0;tikket=0;}
      if(ExtMapBuffer2[i]<0 && shift>=shet && tikket==0){tikket=1;if(tikket>0)ExtMapBuffer3[i]=High[i]+150*Point;}
     }


Na primeira barra onde " ExtMapBuffer2[i]<0 " a seta é colocada, e "shift>=shet" não é considerado.

Logicamente, devemos fazer algo com esta linha " if(time > 0)shift=iBarShift(Symbol(),Period(),time)";".

O que você acha?

 

Caros programadores, preciso de sua ajuda.

Eu tentei compilar CloseAllOrders EA, mas recebi a seguinte entrada:

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

CloseAllOrders_v5.mq4'
'WinUser32.mqh'
função deve retornar um valor CloseAllOrders_v5.mq4 30 22
função deve retornar um valor CloseAllOrders_v5.mq4 79 41
0 erro(s), 2 advertência(ões)

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

O que eu preciso fazer para que minha EA funcione?

A EA está anexada.

Obrigado antecipadamente por sua ajuda.

Cumprimentos,

Arquivos anexados:
 
Geowind64:

Caros programadores, preciso de sua ajuda.

Tentei compilar o CloseAllOrders EA, mas recebi a seguinte entrada:

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

CloseAllOrders_v5.mq4'.
WinUser32.mqh''.
função deve retornar um valor CloseAllOrders_v5.mq4 30 22
função deve retornar um valor CloseAllOrders_v5.mq4 79 41
0 erro(s), 2 advertência(ões)

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

O que devo fazer para que minha EA funcione?

Conselheiro especializado em anexo.

Obrigado antecipadamente por sua ajuda.

Cumprimentos,


A função deve retornar o valor

if (ret==IDCANCEL)return(0);

и

if (ret1==IDCANCEL)return(0);

Algo parecido com isto.

 

Pergunta para você:

O Expert Advisor tem um ambiente que determina em qual vela entrar. A EA abre um comércio no sinal do indicador, na terceira vela após o sinal. Na segunda vela após o sinal, há um sinal na direção oposta. Como escrever a condição para que não entremos quando há um sinal para o lado oposto?

extern int sdvig=3;//На какой свече заходим

 double pokupaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,3,sdvig);

 double prodaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,2,sdvig);

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 &&SelBuyDaily==Vhodim1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

Resolveu o problema usando variáveis adicionais. Nós prescrevemos indicadores com o sinal na vela atual. Quando o primeiro sinal aparece, atribuímos um dígito à variável, quando o sinal oposto aparece, atribuímos outro dígito.

 ////////////////////////////////////////////////////////////////////////////////////////

 //                       Проверка на наличие обратного сигнала                       //

 //////////////////////////////////////////////////////////////////////////////////////

  double pokup=iCustom(Symbol(),Period(),"super-signals-channel",4,500,3,0);

  double prod=iCustom(Symbol(),Period(),"super-signals-channel",4,500,2,0);

 if(pokup>0){

  proverka=1;

  }

 if(prod>0){

  proverka=2;

  }

/////////////////////////////////////////////////////////////////////////////////////////////////////

//                  Блок открытия зделок при отключённых стоп-лосс и тейк-профит                  //

///////////////////////////////////////////////////////////////////////////////////////////////////

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 && SelBuyDaily==Vhodim1 && proverka==1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2 && proverka==2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

Olá, porque é que a abertura da EA... ...ou até mesmo abre pedidos acima do preço? Estou tentando a EA no testador de estratégia em Metatrader.

Eu abro pedidos como este:

   RefreshRates();
   switch(send)
      {
      case 1: ticked = OrderSend(Symbol(), OP_BUY, lot, Ask, 4, NormalizeDouble(Bid-SL*Point, Digits), NormalizeDouble(Ask+TP*Point, Digits), "Buy_", magik, 0, clrBlue); break;
      case 2: ticked = OrderSend(Symbol(), OP_SELL, lot, Bid, 4, NormalizeDouble(Ask+SL*Point, Digits), NormalizeDouble(Bid-TP*Point, Digits), "Sell_", magik, 0, clrRed); break;
      default : ticked = 0;
      }



 
nr72:

Olá, porque é que a abertura da EA... ...ou até mesmo abre pedidos acima do preço? Estou tentando a EA no testador de estratégia em Metatrader.

Eu abro pedidos como este:



A compra abre também na Ask. Pressione F8 no gráfico de visualização, marque a caixa "Show Ask line" na guia "General". Todas as perguntas desaparecerão por si mesmas.
 
artmedia70:
A compra abre no Ask same. Pressione F8 no gráfico de visualização, marque a caixa "Show Ask line" na guia "General". Todas as perguntas desaparecerão por si mesmas.


Obrigado! Entendi agora...
 
alexey1979621:
Olá a todos, não consigo juntar um peru coruja, ajuda de pessoas com conhecimento.
A linha do euro (verde) cruza a linha da libra (marrom claro) de cima para baixo abre uma ordem de venda para a libra euro. Se a libra cruzar a linha do euro de baixo para cima, nós compramos a libra euro.
Meu registro diz que não vê o indicador.
Anexo o conselheiro e o indicador.

Obrigado de antemão.


Não aconselho a descompilação. É apenas um pequeno caminho para o banho.
 

1. Você pode me dizer se é possível fazer um colapso programático da barra de comércio rápido, que está localizada no canto superior esquerdo do gráfico?

2. É possível desativar programmaticamente o comércio rápido?

Razão: