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

 
Boa tarde. Preciso de ajuda, porque eu mesmo não sei como codificar, escrever ou modificar os indicadores. Vou ser breve.
Você pode adicionar uma notificação sonora (Alerta) quando
CrossUpmudar de 0,00000 para -1,00000
CrossDown de -1,00000 para 0,00000.
Por favor, ajude-me, eu serei eternamente grato. Obrigado.

Arquivos anexados:
 
S.P.I:
Olá. Preciso de ajuda, porque eu mesmo não sei nada sobre codificação, escrita ou mudança de indicadores. Vou ser breve.
Você pode adicionar uma notificação audível (Alerta) quando o
CrossUpmuda de 0,00000 para -1,00000
CrossDown de -1,00000 para 0,00000.
Ajude-me, por favor, eu ficaria eternamente grato. Obrigado.

Formato errado, você precisa de mq4

 
Alekseu Fedotov:

Formato errado, você precisa de mq4

Você pode fazer isso também com o ex4 - em seus recursos e ler os amortecedores.

 
Artyom Trishkin:

É possível fazer esta tarefa também com o ex4 - para recursos e buffers de leitura.

Por quê? chamada de indicador padrão do indicador via iCustom(), acho que levará de 15 a 20 minutos, que haja 2 arquivos indicadores

 
Igor Makanu:

Por quê? chamada padrão do indicador através do iCustom(), acho que levará de 15 a 20 minutos, que haja 2 arquivos indicadores

Há também o iCustom() em recursos, mas há um arquivo.

Eu tenho dois arquivos - que sejam dois, que sejam um. E há a mesma quantidade de trabalho.

 
Alekseu Fedotov:

É isso mesmo, faça as contas.

Sim, mas já é uma porcentagem do lucro, algumas construções devem ser feitas para que a variável drawdown receba um valor no drawdown, e se a posição estiver em lucro, o valor drawdown = 0.
 
nalyk:
Sim, mas já é uma porcentagem do lucro, algum tipo de construção tem que ser inventada, para que a variável drawdown receba um valor no drawdown, e se a posição estiver em lucro, então o valor drawdown = 0 .
   double drawdown=(AccountProfit()<0 ? AccountProfit()*100/AccountBalance() : 0);
   Comment("текущая просадка  = ",drawdown);
 

Olá, você poderia me dizer como escrever corretamente a abertura dos pedidos do último fractal. Eu tentei fazer desta maneira, mas não se abre no testador.

void CheckForOpen()
{
  
   double hai_candle = iHigh(NULL,TimeCandleTrade,0);
   double low_candle = iLow(NULL,TimeCandleTrade,0); 
   fr_down = iFractals (Symbol(), 0, MODE_LOWER,3);
   fr_up = iFractals(Symbol(),0,MODE_UPPER,3);
   double SL, TP;
  
 if (BuyCount()==0 )
   {
  
    if (fr_down>0 && low_candle<Low[fr_down])
   {
     
      SL = NormalizeDouble(Ask - StopLoss*Point,Digits);
      TP = NormalizeDouble(Ask + TakeProfit*Point,Digits);
      ticket = OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,SL,TP,NULL,magik,0,CLR_NONE);
      if (ticket <0)
       Print ("Не удалось открыть ордер на покупку",GetLastError());
   }
   
   }

int BuyCount()
  {
  int count = 0;
  for (int i=OrdersTotal()-1;i>=0;i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES) == true && 
        OrderMagicNumber()== magik &&                        
        OrderType() == OP_BUY )                       
        {
        count ++;
        }
    }
}

 
Artyom Trishkin:
Obrigado.
 
nelenaby:

Olá, você poderia me dizer como escrever corretamente a abertura dos pedidos do último fractal. Eu tentei fazer desta maneira, mas não se abre no testador.

Você está procurando o fractal na terceira barra, ele pode não estar lá. Procure o primeiro fractal do laço.

 
 for (int s=2; s<100; s++) 
     {
    fr_down=iFractals(Symbol(), 0, MODE_LOWER, s);
    if (f!=0) break;
     }
Razão: