Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 899

 
Guten Tag. Ich brauche Hilfe, weil ich nicht weiß, wie ich Indikatoren selbst kodieren, schreiben oder ändern soll. Ich werde mich kurz fassen.
Können Sie eine akustische Benachrichtigung (Alert) hinzufügen, wenn
CrossUp von 0.00000 auf -1.00000
CrossDown von -1.00000 auf 0.00000wechselt.
Bitte helfen Sie mir, ich werde Ihnen ewig dankbar sein. Ich danke Ihnen.

Dateien:
 
S.P.I:
Hallo. Ich brauche Hilfe, denn ich bin nicht mit der Codierung, dem Schreiben oder Ändern von Indikatoren vertraut. Ich werde mich kurz fassen.
Können Sie eine akustische Benachrichtigung (Alert) hinzufügen, wenn die
CrossUpändert sich von 0,00000 auf -1,00000
CrossDown von -1,00000 auf 0,00000.
Ich bitte um Hilfe, ich wäre Ihnen ewig dankbar. Ich danke Ihnen.

Falsches Format, Sie brauchen mq4

 
Alekseu Fedotov:

Falsches Format, Sie brauchen mq4

Sie können dies auch mit ex4 tun - in seine Ressourcen gehen und die Puffer lesen.

 
Artyom Trishkin:

Es ist möglich, diese Aufgabe auch mit ex4 zu erledigen - zu Ressourcen und Lesepuffern.

Warum? Standard-Indikator Aufruf von Indikator über iCustom(), ich denke, es wird 15-20 Minuten dauern, lassen Sie es 2 Indikator-Dateien sein

 
Igor Makanu:

Warum? Standard-Indikator-Aufruf aus dem Indikator über iCustom(), ich denke, es wird 15-20 Minuten dauern, lassen Sie es 2 Indikator-Dateien sein

Es gibt auch iCustom() in den Ressourcen, aber es gibt nur eine Datei.

Ich habe zwei Dateien - lass es zwei sein, lass es eine sein. Und der Arbeitsaufwand ist derselbe.

 
Alekseu Fedotov:

Das stimmt, rechnen Sie nach.

Ja, aber es ist bereits ein Prozentsatz des Gewinns, einige Konstruktion sollte getan werden, so dass die Variable Drawdown einen Wert bei Drawdown zugeordnet ist, und wenn die Position im Gewinn ist, der Wert Drawdown = 0.
 
nalyk:
Ja, aber es ist bereits ein Prozentsatz des Gewinns, eine Art Konstruktion muss erfunden werden, so dass der Variablen Drawdown ein Wert bei Drawdown zugewiesen wird, und wenn die Position im Gewinn ist, dann der Wert Drawdown = 0 .
   double drawdown=(AccountProfit()<0 ? AccountProfit()*100/AccountBalance() : 0);
   Comment("текущая просадка  = ",drawdown);
 

Hallo, könnten Sie mir sagen, wie man die Eröffnung von Aufträgen aus dem letzten Fraktal korrekt schreibt? Ich habe versucht, es auf diese Weise zu machen, aber es öffnet sich nicht im Prüfprogramm.

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:
Ich danke Ihnen.
 
nelenaby:

Hallo, können Sie mir sagen, wie man die Eröffnung von Aufträgen aus dem letzten Fraktal korrekt schreibt? Ich habe versucht, es auf diese Weise zu machen, aber es öffnet sich nicht im Prüfprogramm.

Sie suchen nach dem Fraktal auf dem dritten Balken, es kann sein, dass es nicht da ist. Suchen Sie das erste Fraktal in der Schleife.

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