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

 
Alexey Viktorov: Verrutschen beim Öffnen und Schließen.

Alexey: MT5 ist heute allgemein sehr langatmig geworden - Duplikate von TP im Kommentar:


 
STARIJ:

Danke, Alexey!!! Dachte ich auch - aber wie überprüft man das? und woher weiß man, was es ist? und warum gibt es keine echten Konten. Vielleicht, weil es alt ist und das Demokonto neu ist?

Die Differenz zwischen dem tp-Preis und dem Schlusskurs des Auftrags wird durch _Point geteilt und mit dem Eintrag im Auftragskommentar abgeglichen. Genau das haben wir herausgefunden. Der Zufall kann nicht unbegrenzt und stabil sein. Ich vermute, dass es auf dem echten Konto keine solchen Ausrutscher gibt. Obwohl ich früher welche hatte. Ich habe es auf dem echten Konto berechnet. Zunächst fiel mir auf, dass der Schlusskurs auf tp stand und der Schlusskurs nicht grün markiert war.

 

Hallo, können Sie mir bitte helfen?

Ich möchte jederzeit die Nummer des Balkens wissen, auf dem sich der Indikatorpfeil befindet.

Im Beispiel wird versucht, den Puffer zu füllen, wenn der Pfeil auf dem zehnten Balken steht.

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if(rates_total<2) return(0);
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--)
     {
      for(int il=i+1;il<=i+300;il++)
        {
         if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE
            )
           {
            num_buy=il;
            break;
           }
        }
      //
      if(num_buy==10)
        {
         BufferUP[i+1]=low[i+1]-distance*MyPoint;

        }

      for(int il=i+1;il<=i+300;il++)
        {
         if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",1,il),Digits)!=EMPTY_VALUE
            )
           {
            num_sell=il;
            break;
           }
        }
      if(num_sell==10)
        {
         BufferDN[i+1]=high[i+1]+distance*MyPoint;
         
         
        }

      Comment(num_buy,"num_sell",num_sell);
     }
//--- return value of prev_calculated for next call

   return(rates_total);
  }

Wo ist es falsch?

 
mila.com: Hallo, können Sie mir bitte helfen?
Ich möchte jederzeit die Nummer des Balkens wissen, auf dem sich der Indikatorpfeil befindet.
Im Beispiel wird versucht, den Puffer zu füllen, wenn der Pfeil auf dem zehnten Balken steht.
Wo ist es falsch?

Wenn ich das prüfe, führe ich es normalerweise aus und sehe das Ergebnis. Dies ist nur ein Teil des Codes. Hier ist alles sehr klein, es ist schwer zu sehen - in meinem Editor ist es größer

if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE)
{
    num_buy=il;
    break;  // Это выход из цикла. Остальные бары лишаются чести быть просмотренными. Ошибка здесь?
}
 

Hallo, können Sie mir sagen, wie man einen Indikator dazu bringt, Daten in einer Datei zu speichern?

anstelle des RSI-Indikators Williams' Percent Range


//| Expertenstartfunktion |

//+------------------------------------------------------------------+

int start()

{

//----

int iRSI;

iRSI=FileOpen("Datei.txt", FILE_CSV|FILE_WRITE, '\t');

//------------------------------------------------//

//-------------------------------------------------//

wenn(iRSI>0)

{

FileWrite(iRSI, [0]);

FileClose(iRSI);

}

//----

zurück(0);

}

 
STARIJ:

Hier ist alles sehr klein,

Es gibt eine Option im Browser, um den Maßstab zu ändern)

STARIJ:
Ошибка здесь?


Leider ist dies nicht der einzige Fehler.

Der korrekte Wert wird im Kommentar angezeigt, vom aktuellen Balken, jetzt num_buy 9

Warum gibt es keine Bedingung in der Geschichte?

if(num_buy==10)

Ich habe es überprüft, in der EA öffnet es eine Position, wenn der Pfeil auf bar 10 ist

for(int il=1;il<=300;il++)
        { 
        if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE)
            
           {
            num_buy=il;
            break;
           }
        }
        if(num_buy==10)
           {
            B_OrderSend();
           }

Wie platziere ich einen Punkt im Indikator, wenn der Pfeil auf Balken 10 steht?

 
mila.com:

Im Browser gibt es eine Option zum Ändern des Maßstabs )


Leider ist dies nicht der einzige Fehler.

Der Kommentar zeigt den korrekten Wert aus dem aktuellen Balken an, also num_buy 9

Warum gibt es keine Bedingung in der Geschichte?

Im EA angekreuzt, öffnet die Position, wenn der Pfeil auf Bar 10 ist

Wie platziere ich einen Punkt im Indikator, wenn der Pfeil auf Balken 10 steht?

Sie unterbrechen die Schleife, sobald Sie den ersten nicht leeren Indikatorwert sehen. Deshalb erreicht sie auch nicht die 10er-Marke.

 
Artyom Trishkin:

Sie brechen die Schleife also ab, sobald Sie den ersten nicht leeren Indikatorwert finden. Deshalb erreicht sie auch nicht die Zehn.

Ich habe eine Unterbrechung aus dem Indikator entfernt; wie von STARIJ empfohlen

immer noch keinen Punkt auf dem Diagramm, und in den Kommentar schreibt die Zahlen der dritten und vierten Pfeile, aber die erste und zweite (am nächsten an das aktuelle Datum) nicht sehen.

 
mila.com:

Im Indikator habe ich die Pause entfernt; wie von STARIJ empfohlen

immer noch kein Punkt in der Tabelle

Aber Sie haben es im Expert Advisor gelassen. Und was macht sie? Er findet den ersten Punkt des Indikators und... Pause

 
Artyom Trishkin:

Aber das Ratsmitglied wurde zurückgelassen. Was macht es also? Er findet den ersten Punkt des Indikators und... Pause

Ich habe den Expert Advisor gemacht, um die Möglichkeit zu überprüfen, er öffnet sich korrekt, aber im Indikator sieht er die Werte der nächsten zwei Indikatorpuffer "Arrow v.3" überhaupt nicht

Grund der Beschwerde: