Fragen von einem "Dummy" - Seite 130

 
Omg... lesen Sie weiter.
 

Gut!

Win7 konnte ich im Forum nichts finden, was ist mit dem Arbeitsverzeichnis des Programms? Wie es mir schien, wird in win7 im Moment des Starts ein temporäres Verzeichnis erstellt, in das das gesamte Programm kopiert wird, so dass sich bei der Arbeit mit MetaEditor herausstellt, dass ich eine Datei zum Beispiel auf das Laufwerk D kopiere, aber im MetaEditor-Fenster nichts zu sehen ist. Ich rufe "Ordner öffnen" aus dem Metaeditor-Fenster auf, und das Fenster erscheint auf dem Laufwerk C irgendwo im Temp-Bereich. Was ist zu tun? Wie kann man sie synchronisieren oder Win7 daran hindern, sie auf diese Weise aufzuteilen?

Ich danke Ihnen!

Документация по MQL5: Файловые операции / FileCopy
Документация по MQL5: Файловые операции / FileCopy
  • www.mql5.com
Файловые операции / FileCopy - Документация по MQL5
 
bivmail:

Gut!

Win7 konnte ich im Forum nichts finden, was ist mit dem Arbeitsverzeichnis des Programms? Wie es mir schien, wird in win7 im Moment des Starts ein temporäres Verzeichnis erstellt, in das das gesamte Programm kopiert wird, so dass sich bei der Arbeit mit MetaEditor herausstellt, dass ich eine Datei zum Beispiel auf das Laufwerk D kopiere, aber im MetaEditor-Fenster nichts zu sehen ist. Ich rufe "Ordner öffnen" aus dem Metaeditor-Fenster auf, und das Fenster erscheint auf dem Laufwerk C irgendwo im Temp-Bereich. Was ist zu tun? Wie kann man sie synchronisieren oder Win7 daran hindern, sie auf diese Weise aufzuteilen?

Ich danke Ihnen!

https://www.mql5.com/ru/forum/1111/page712#comment_173757
 
TheXpert:

(1) Jede Sprache hat ihren eigenen Anwendungsbereich. Die Behauptung, eine Sprache sei "die am weitesten fortgeschrittene", ist im Allgemeinen absurd.

2. Welchen Unterschied macht es, wie es heißt? Der Punkt ändert sich kaum.

1. ok, ich stimme zu. dann ist mql5 die fortschrittlichste sprache für den automatischen handel. :) Lasst uns weitermachen.

2... Das ist es, wir fragen, wir fragen!

Vladix:
2. Unterstützt von

Wir bitten alle gemeinsam darum!

:)

 
Hallo zusammen.
werden hier elementare Fragen zur Sprache mql5 gestellt? :-)
Nach der Diskussion zu urteilen, gibt es hier nur "Hell-oops"...
 
GameOver:
Hallo zusammen.
werden hier elementare Fragen zur Sprache mql5 gestellt? :-)
Ich weiß es nicht, aber der Diskussion nach zu urteilen, gibt es hier nur höllische OOP-ler...

Es gibt immer Dummies verschiedener Kaliber. Nun, man kann auch einen Zweig "für Lamer" machen, wenn man sich dort wohler fühlt ;-).
 
In dem Bemühen, diese syntaktische Schöpfung zu beherrschen und an die "Einfachheit" der Sprache zu glauben,
begann, eine rudimentäre Schrift zu zeichnen.
Wie auch immer, eine Anmerkung und eine Frage.

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars=TerminalInfoInteger(TERMINAL_MAXBARS); , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

Leider funktioniert das Skript nicht, wenn die Anzahl der Balken auf Unlimited eingestellt ist,
sagt es, dass nicht genug Speicher vorhanden ist, d.h. ein Aufruf vonTerminalInfoInteger(TERMINAL_MAXBARS) stellt sich tatsächlich als

was seltsam ist, denn in Wirklichkeit gibt es nicht mehr als 100 000 Balken im Diagramm.
Wie kann ich die Anzahl der wirklich geladenen Balken ermitteln? Denn die Werbetexter haben einfach keine Zeit, etwas zurückzugeben...

die zweite Frage ist die folgende.
Versuch, eine elementare Prüfung zu implementieren (sie war in µl4 elementar)

      // delete bad day of week and bad bars
      if (TimeDayOfWeek(Time[i])<1 || TimeDayOfWeek(Time[i])>5 || (High[i]-Low[i])<10*Point) { errBar++; continue; }

Die Suche im Forum (die Suche in der mql5-Hilfe nach den Begriffen day_of_week, dayofweek ergab nichts... sehr nützliche Hilfe!) führte zu folgender Umsetzung

MqlDateTime temp;
TimeToStruct(aBars[i].time,temp);
if (temp.day_of_week<1 || temp.day_of_week>5 ||  aBars[i].high-aBars[i].low<10*Point() ) {errBar++; continue;}

Wie richtig? Statt einer Zeile gibt es drei - und das ist elementar.
Ist es möglich, sie zu vereinfachen, oder werden alle elementaren Operationen jetzt durch die umständliche Erstellung von Objekten, Klassen und Zwischenstrukturen ersetzt?

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
 

Guten Tag!

Könnten Sie bitte mitteilen, ob es in Russland Broker gibt, die Metatrader als Terminal für die Arbeit an FORTS und MICEX anbieten?

 

Bitte schlagen Sie eine schnellere Variante des "Roulette"-Algorithmus als diese vor:

//——————————————————————————————————————————————————————————————————————————————
// Рулетка.
int Selection()
{
  //----------------------------------------------------------------------------
  int    i=0,u=0;
  double p=0.0,start=0.0;
  double          fit[][2];
  ArrayResize(fit,SizeOfPop);
  ArrayInitialize(fit,0.0);
  double delta=(Population[0][0]-Population[0][SizeOfPop-1])*0.1-Population[0][SizeOfPop-1];
  //----------------------------------------------------------------------------
  for(i=0;i<SizeOfPop;i++)
  {
    fit[i][0]=start;
    fit[i][1]=start+MathAbs(Population[0][i]+delta);
    start=fit[i][1];
  }
  p=RNDfromCI(fit[0][0],fit[SizeOfPop-1][1]);

  for(u=0;u<SizeOfPop;u++)
    if((fit[u][0]<=p && p<fit[u][1]) || p==fit[u][1])
      break;
    //--------------------------------------------------------------------------
  return(u);
}
//——————————————————————————————————————————————————————————————————————————————
Es ist klar, dass Arrays aus der Funktion herausgenommen werden können, damit sie nicht jedes Mal deklariert und in der Größe angepasst werden müssen, aber ich brauche eine revolutionärere Lösung. :)
 
GameOver:
Bei meinen Versuchen, diese Syntax zu beherrschen, habe ich an die "Einfachheit" der Sprache geglaubt,
begann, eine rudimentäre Schrift zu zeichnen.
Wie auch immer, eine Anmerkung und eine Frage.

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars=TerminalInfoInteger(TERMINAL_MAXBARS); , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

Leider funktioniert das Skript nicht, wenn die Anzahl der Balken auf Unlimited eingestellt ist,
heißt es, dass nicht genügend Speicher vorhanden ist, d.h. es wird im WesentlichenTerminalInfoInteger(TERMINAL_MAXBARS) aufgerufen;

was seltsam ist, denn in Wirklichkeit gibt es nicht mehr als 100 000 Balken im Diagramm.
Wie kann ich die Anzahl der wirklich geladenen Balken herausfinden, denn die Urheberrechte haben keine Zeit, etwas zurückzugeben...

Versuchen wir, es herauszufinden. Bei der Funktion CopyRates() ist der vorletzte Parameter

int              count,             // сколько копируем
Das heißt, die Anzahl der zu kopierenden Elemente. In Ihrem Entwurf ist die Anzahl der Elemente unbegrenzt. Grob gesagt, unwirklich :) Das passiert wahrscheinlich, wenn man arbeitet und den Speicher ständig umverteilt, bis er erschöpft ist. Versuchen Sie, einen spezifischeren Wert zu verwenden, statt TerminalInfoInteger(TERMINAL_MAXBARS):MQL5 Referenz / Zugriff auf Zeitreihen und Indikatoren / Balken
Grund der Beschwerde: