Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1357

 

Frage der Verwaltung.

Bitte helfen Sie mir, die Demoversion von Osiris herunterzuladen.

Wenn ich versuche, sie herunterzuladen, wird sie nicht heruntergeladen.

Купите Торговый робот (Expert Advisor) 'Astroloqer' для MetaTrader 4 в магазине MetaTrader Market
Купите Торговый робот (Expert Advisor) 'Astroloqer' для MetaTrader 4 в магазине MetaTrader Market
  • www.mql5.com
Советник Звездочет 1.0 универсал. НЕ мартинит НЕ усредняется И не торгует сетками ордеров. Терминал МТ4. Это вы можете сами проваерить при
 
Oleg Kolesov #:
Die wichtigste Frage bleibt ungelöst. Wie man den Puffer mit zwei Farben einfärbt. >= Blau bis <= Rot.

Ich kann Ihre Allgemeinen Geschäftsbedingungen nicht verstehen.

Beispiel. Umrandung = 5

Wert == 8, Farbe blau.

Wert == 1, Farbe - rot.

Wert == 5, Farbe - was?

 
Oleg Kolesov #:
Ich werde eine Pause machen. Ich danke Ihnen.

Ihren Indikator leicht modifiziert (er hat einen Expert Advisor für den Tester)

Bildschirmfoto 2021-10-12 071433

Dateien:
V2.mq5  9 kb
 
SanAlex, was halten Sie davon?
 
Oleg Kolesov #:
SanAlex, wie bewerten Sie es?

ein Experte mit allem Drum und Dran wird Geld verdienen.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

EUR\USD-H2 Ihr Indikator auf der 2-Uhr-Position ist nach unten gerichtet - im Moment warten Sie neutral darauf, dass der Schalter nach oben oder weiter nach unten geht.

EURUSDH2it

 
Warum kann der Befehl Drucken nicht protokolliert werden?
 
Evgeny Dyuka #:
Warum kann der Befehl Drucken nicht protokolliert werden?

Der Schutz gegen ... Der Benutzer wurde daran gehindert, etwas Falsches zu tun. Klicken Sie mit der rechten Maustaste im Terminal auf die Registerkarte "Experten" und führen Sie den Befehl "Anzeigen" aus.

 

Hallo meine Damen und Herren!

Heben Sie nicht den Daumen für meine Frage. Ich verstehe, dass das naiv ist, aber wir alle sind "Gott, wie naiv wir waren" (Romantik).

Ich habe einen Expert Advisor geschrieben, der den ursprünglichen Algorithmus verwendet. Tests haben gezeigt, dass er im Scalper-Modus am effektivsten ist. Über die Ergebnisse werde ich schweigen, denn wir alle kennen die Erfinder von Perpetuum Mobile und Grails. Sie ist weder das eine noch das andere und hat einen schwerwiegenden Nachteil - sie ist wie alle Scalper-Strategien von Spread- und Provisionswerten sowie vom Stop Loss abhängig. Ich habe nur eine Einstellung - SL und es hat 6-10 pps auf 5 Zeichen. Können Sie mich aufklären, wie ich damit umgehen kann oder mit welchem Broker ich diese Spiele spielen kann.

 
Hallo.
Es gibt einen Indikator. Es summiert die Limit-Orders in der Tasse und zeigt diese als Diagramm an.
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots 2

#property indicator_label1 "Delta buy"
#property indicator_type1 DRAW_HISTOGRAM
#property indicator_color1 clrWhite
#property indicator_width1 3

#property indicator_label2 "Delta sell"
#property indicator_type2 DRAW_HISTOGRAM
#property indicator_color2 clrBlue
#property indicator_width1 3

int iStart;
double iDelta1[];
double iDelta2[];

void OnDeinit(const int reason)
{
  string symbol = Symbol();

  MarketBookRelease(symbol);
}

void OnInit()
{
  string symbol = Symbol();

  SetIndexBuffer(0, iDelta1, INDICATOR_DATA);
  ArraySetAsSeries(iDelta1, true);
  
  SetIndexBuffer(1, iDelta2, INDICATOR_DATA);
  ArraySetAsSeries(iDelta2, true);

  IndicatorSetString(INDICATOR_SHORTNAME, "OrderBook");
  IndicatorSetInteger(INDICATOR_DIGITS, Digits());

  MarketBookAdd(symbol);
}

int OnCalculate(
  const int bars,
  const int counted,
  const datetime& time[],
  const double& open[],
  const double& high[],
  const double& low[],
  const double& close[],
  const long& ticks[],
  const long& volume[],
  const int& spread[]
)
{
  if (iStart == 0)
  {
    iStart = 1;
    ZeroMemory(iDelta1);
    ZeroMemory(iDelta2);
  }
  else if (bars != counted)
  {
    iDelta1[0] = iDelta1[1];
    iDelta2[0] = iDelta2[1];
  }

  string symbol = Symbol();

  double ask = SymbolInfoDouble(symbol, SYMBOL_ASK);
  double bid = SymbolInfoDouble(symbol, SYMBOL_BID);

  MqlBookInfo levels[];

  bool book = MarketBookGet(symbol, levels);

  int indexBuy = 1;
  int indexSell = 1;
  long volumeBuy = 0;
  long volumeSell = 0;


  if (book)
  {
    int size = ArraySize(levels);

    for (int k = 0; k < size; k++)
    {
      if (levels[k].price >= ask) 
      {
        volumeSell += indexSell * levels[k].volume;
        indexSell++;
         
      }
    }

    for (int k = size - 1; k >= 0; k--)
    {
      if (levels[k].price <= bid) 
      {
        volumeBuy += indexBuy * levels[k].volume;
        indexBuy++;
     
      }
    }
  }

 iDelta1[0] = (double) ( - volumeSell);
 iDelta2[0] = (double) (volumeBuy); 
  return bars;
}
Und mit jeder neuen Änderung im Stapel wird der bisherige Betrag überschrieben. Wie bringe ich es dazu, die Summe zu akkumulieren? Mit anderen Worten, die Daten des aktuellen Balkens werden nicht überschrieben, sondern hinzugefügt? Ich habe versucht, es mit einer "while"-Schleife zu implementieren und Daten hinzuzufügen, solange sich der aktuelle Balken nicht bewegt hat, aber irgendetwas ging schief. Bitte haben Sie kein schlechtes Gewissen wegen einer so trivialen Frage.
 

FileOpen gibt Fehler 5001 zurück(Es können nicht mehr als 64 Dateien gleichzeitig geöffnet werden).
Ich scheine jedes Mal mit FileClose(file_handle) korrekt zu schließen.

Wo und wie wird die Anzahl der offenen Dateien gespeichert und wie kann sie zurückgesetzt werden?