[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 391

 
Integer:


1. Du steckst fest. Noch einmal. Das System hat keine Möglichkeit festzustellen, ob eine Bewegung im Leerlauf war oder ob sie eine Aktion durchgeführt hat.

Das braucht das System nicht zu wissen. Das ist das Problem des Themas. Es wird so oder so gehandhabt werden. Sie wird durch das System garantiert. Es sei denn, Sie stoppen es selbst durch einen Fehler im Code.
 
Zhunko:
Das braucht das System nicht zu wissen. Es handelt sich um ein Strömungsproblem. Es wird so oder so gehandhabt werden. Sie wird durch das System garantiert. Es sei denn, Sie stoppen es selbst durch einen Fehler im Code.


Es ist schon lange klar, dass Sie überhaupt nicht wissen, wovon Sie reden.
 

Junko, warum versuchst du überhaupt, hier etwas zu sagen... und du weißt nicht einmal, wovon du redest. Sie wollen das System, Sie wollen das System nicht... Sie wissen nicht einmal, wovon Sie sprechen. Es geht darum, das Problem zu lösen, das zuvor skizziert wurde... und jetzt fangen Sie an zu sagen, dass es nicht notwendig ist... Sie haben bereits gesagt, dass es eine solche Aufgabe nicht geben sollte. Man geht in seinem Kopf herum, ohne es zu merken, und versetzt sich selbst in die Rolle eines Gurus.

 
Es kommt nicht auf den Fluss an, sondern darauf, was er tut, und das tut er nicht immer. Und Sie müssen steuern, was sie tut.
 
Integer:
Es kommt nicht auf das Gewinde an, sondern darauf, was es tut, und das tut es nicht immer. Und man muss sich darum kümmern, was sie tut.

Ich habehier geschrieben:

Zhunko:

Es gibt einen weiteren Fall, in dem eine Warteschlange benötigt wird. Es handelt sich jedoch nicht um eine Warteschlange für die Ausführung von Threads, sondern um eine Reihenfolge für die Verarbeitung der von Threads empfangenen Daten (Ergebnisse der Arbeit von Threads). Dies ist die häufigste Aufgabe für Warteschlangen.

Das hier?

 
Zhunko:

Hier geschrieben:

Das hier?

Ungefähr so. Aber vorher gab es Aussagen wie die, dass der Auftrag gar nicht wichtig sei. Und hier wurde allgemein festgestellt, dass nicht nur Aufgaben gleichmäßig, sondern auch in einer bestimmten Reihenfolge ausgeführt werden müssen (wenn nicht ausführen, sondern Daten zur Weiterverarbeitung sammeln, sonst kommt es zur Ungenauigkeit von Aussagen). Jetzt sind Sie an der Reihe, zu antworten - ich weiß, dass ich es getan habe... was ist dann auf den letzten 10 Seiten passiert?
 
Bitte beraten Sie, ist es normal, wenn Sie 1 Mal pro Jahr der Geschichte (300-400 Trades) Tester erstellt eine Log-Datei, die bis zu einem Gigabyte wiegt ... ?
 
lottamer:
Bitte beraten Sie, ist es normal, wenn Sie 1 Mal pro Jahr der Geschichte (300-400 Trades) Tester erstellt eine Log-Datei, die bis zu einem Gigabyte wiegt ... ?

Im Grunde ist es ok :) Das ist nicht so normal oder nicht normal, es ist einfach so, das ist alles. Schauen Sie sich an, was dort steht, und wenn Fehlermeldungen auftreten, müssen Sie etwas unternehmen, um diese Fehler zu beheben. Wenn es Informationsmeldungen gibt, müssen Sie diese deaktivieren (wenn es einen Schalter gibt) oder Aufrufe der Funktionen Print()(), Comment(), Alert() auskommentieren.
 
Integer:

Ungefähr dasselbe. Davor gab es jedoch Aussagen wie die, dass der Auftrag überhaupt nicht wichtig sei. Und hier ist es noch wichtiger, wenn Aufgaben nicht nur gleichmäßig, sondern auch in einer bestimmten Reihenfolge ausgeführt werden müssen (wenn nicht zur Ausführung, sondern zum Sammeln von Daten für die weitere Verarbeitung, sonst kann es zu Ungenauigkeiten bei den Anweisungen kommen). Jetzt sind Sie an der Reihe, zu antworten - ich weiß, dass ich es getan habe... was ist dann auf den letzten 10 Seiten passiert?

Was passiert ist, lag an einem Mangel an Erklärung Ihrerseits. schrieb auf Seite 381 zurück. Hätten Sie meine Antwort gelesen, hätten Sie das bemerkt und gesagt.

===================

1. Es gibt mehrere unabhängige Themen.

2. Die Ergebnisse werden in einer Art Warteschlange gestapelt.

(3) Diese Warteschlange ist eine gemeinsam genutzte Ressource.

4. Sie müssen den Zugriff der Threads auf die gemeinsame Ergebniswarteschlange synchronisieren.

Richtig?

===================

So sollte es richtig funktionieren, ohne die globale Variable zu entfernen:

#property show_inputs

extern int Pause = 1000;

int    hwndChart = NULL; // Уникальный идентификатор скрипта.
string sName = "Condition";

void init()
 {
  hwndChart = WindowHandle(Symbol(), 0);
  // Создаём глобальную переменную синхронизации скриптов.
  if (!GlobalVariableCheck(sName)) GlobalVariableSet(sName, 0);
 }
 
void deinit()
 {
  while (!IsStopped())
   {
    if (!GlobalVariableSetOnCondition(sName, hwndChart, 0)) continue;
    if (GlobalVariableSetOnCondition(sName, 0, hwndChart)) return;
   }
 }

void start()
 {
  while (!IsStopped())
   {
    Sleep(200); // Имитация тика.
    // Начало блока синхронизации.
    if (!GlobalVariableSetOnCondition(sName, hwndChart, 0)) continue;
    if (GlobalVariableGet(sName) == hwndChart)
     {
      Print("Start");
      Sleep(Pause); // Имитация работы.
      Print("End");
     }
    GlobalVariableSetOnCondition(sName, 0, hwndChart);
   } // Завершение блока синхронизации.
 }

Chiripaha:

Das...

Ich glaube, Arles hat die Antwort auf die Frage gefunden, denn ich kann den Kern der Lösung noch nicht sofort erfassen. Aber das liegt daran, dass ich ein Anfänger bin und mehr Zeit brauche, um zuerst die Theorie zu lernen und dann die Praxis auszuprobieren. Aber ich werde versuchen, die Angelegenheit in den Griff zu bekommen.


Richtig, mit ungelösten Fragen meinte ich genau diese Liste von Fragen.

................

====================================

Ich meine, mit anderen Worten. - Wenn es keinen von Ihnen vorgeschlagenen Lösungsblock im EA gibt, dann kann die Verwendung vieler solcher EAs zu der in der Frage beschriebenen Situation mit dem Risk-Management?

Lassen Sie mich das ein wenig näher erklären. Ich bin mir nicht sicher, ob das zu kritisch ist. Deshalb habe ich es bisher hepothetisch betrachtet. Denn die Geschwindigkeit beim Lösen von Problemen ist hoch und wahrscheinlich werden die Lösungen im Computer durch den breiten Bitratenkanal des Computers "fliegen". - Aber vielleicht täusche ich mich da, denn laut Arles bekommt er nur 2 Aufträge pro Runde. Es gibt also ein Problem.

Erst jetzt habe ich die Frage verstanden :-))

Wenn dies der Fall ist, handelt es sich um ein Problem mit dem falschen Risiko. Wenn das Risiko gering ist, besteht keine Notwendigkeit, irgendetwas zu synchronisieren. +-0,0001% der Einlage sind nicht entscheidend.

 

Zhunko:

Erst jetzt habe ich die Frage verstanden :-))

Wenn dies der Fall ist, handelt es sich um ein Problem mit dem falschen Risiko. Bei geringem Risiko besteht keine Notwendigkeit, irgendetwas zu synchronisieren. +-0,0001% der Einlage sind nicht entscheidend.

Das kommt vor... Wenn eine Person mit der Lösung eines aktuellen Problems beschäftigt ist, ist es schwierig, sich auf andere Aufgaben zu konzentrieren. Und wenn es viele Aufgaben gibt, ist es schwierig, alles zu erledigen... : )) Regeln für das Zeitmanagement.

Eine weitere Frage zum Thema Multithreading.

Das Tutorial von Sergei Kovalev beschreibt eine Methode mit optimierter Squaredness, bei der der Expert Advisor in einer Schleife arbeitet. Wenn wir dies und Multi-Threading in Betracht ziehen, verstehe ich richtig, dass diese Art von zyklischem Verhalten des EA keine Nachteile für andere EAs, Skripte und Indikatoren verursachen wird? Und wir können sicher die Arbeit des EA in einer Schleife beginnen? Oder wäre es besser, das nicht zu tun? Und wann sollte sie vermieden werden?

Soweit ich das verstanden habe, ist dieser Arbeitszyklus im obigen Code implementiert. Vielleicht ist das der Grund, warum ich mich daran erinnere.

Und übrigens, wenn ein solcher EA mit Schleifen im Tester ausgeführt wird, wie korrekt wird er sein? Oder sollten wir die Schleife in diesem Fall "abschalten"?

Grund der Beschwerde: