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

 
russcand:
Können Sie mir sagen, wie man schreibt:
Preis hat die horizontale Linie nach oben überschritten....
Und wie sollte diese Linie beschrieben werden?
Wenn der Indikatorwert auf dem ersten Balken größer ist als der Wert der horizontalen Linie UND der Indikatorwert auf dem zweiten Balken kleiner ist als der Wert der horizontalen Linie, dann hat die Indikatorlinie die horizontale Linie nach oben überschritten.
Die Beschreibung der horizontalen Linie ist eine konstante Zahl, d. h. ihr Wert in der Dimension des Anzeigefensters. Bewegen wir den Mauszeiger darüber, sehen wir diesen Wert.
 
borilunad:

Vielen Dank für die Klarstellung!

Ich mache mir nur Sorgen darüber, dass das Prüfgerät Ein-Minuten-Balken simuliert, um Änderungen zu Beginn jedes Ein-Minuten-Balkens vorzunehmen.

Ich werde versuchen, Open[0] in iOpen(NULL,1,0) zu ändern und eine Funktion hinzuzufügen, die die Öffnung des einminütigen Balkens überprüft.

Es vergingen einige Minuten, in denen ich den Code überarbeitete und ihn mit dem Tester bei M5 ausprobierte und mich vergewisserte, dass der Tester in diesem Fall keine 1-Minuten-Balken öffnet, obwohl dies vorgeschrieben ist, und ihn nur alle 5 Minuten ändert, was ich befürchtet hatte. Im Modus "Alle Ticks" ist er etwas besser, weil er sich häufiger ändert. Aber auf M1 nur auf Bar öffnen es funktioniert das gleiche, sowohl mit Open[0] und mit iOpen(NULL,1,0), für die ich immer noch dankbar bin!

Jetzt werde ich immer das grüne iOpen verwenden, da ich sehe, dass ich auf das rote Open verzichten kann. Grüner Gewinn ist schöner als roter Verlust. (:))

Schauen Sie sich an, wie geloopte EAs geschrieben werden. Dies ist der Standard für Multicurrency/Multi-Timeframes, da es die Notwendigkeit eliminiert, auf einen Tick auf dem Chart zu warten, auf dem der EA schwebt, und Ihnen erlaubt, alle notwendigen Charts in Echtzeit zu verarbeiten.
 
granit77:
Wenn der Indikatorwert auf dem ersten Balken größer ist als der Wert der horizontalen Linie UND der Indikatorwert auf dem zweiten Balken kleiner ist als der Wert der horizontalen Linie, dann hat die Indikatorlinie die horizontale Linie von unten nach oben überschritten.
Die Beschreibung der horizontalen Linie ist eine konstante Zahl, d. h. ihr Wert in der Dimension des Anzeigefensters. Bewegen wir den Mauszeiger darüber, sehen wir diesen Wert.

Ich danke Ihnen. Jetzt würde ich mich gerne etwas mehr einrichten.

Nehmen wir an, diese Stufe wird durchbrochen. Der Indikator erkennt die richtige Marktlage.

Aber der Preis kann innerhalb dieses Niveaus zurückgehen.

Ich brauche den zuvor festgelegten Zustand nicht neu zu definieren.

Es ist wichtig für mich, genau diese Ebene zu durchbrechen. Wie sich der Kurs hin und her bewegt, interessiert mich nicht, denn wichtig ist der Moment des Überschreitens und Fixierens des vordefinierten Levels.

Das, was Sie geschrieben haben, ist also die gegenwärtige Situation. Wie kann der neu ermittelte Zustand beibehalten werden, wenn der Preis zurückkehrt?

Unser Indikator hat Pfeile ARROWDN und ARROWUP auf dem Diagramm. Vielleicht sollten sie irgendwie angewandt werden.

Zum Beispiel, wenn der Wert des aktuellen Balkens größer ist als ein Index UND

Hier wird die Bedingung gestellt, dass der Kurs die Linie NICHT nach oben durchbrochen hat (ODER ARROWUP nicht ausgelöst wird)..., UND der Kurs die Linie NICHT nach unten durchbrochen hat (ODER ARROWDN nicht ausgelöst wird).

dann.... wird durch den Zustand von so-und-so bestimmt.

Der Indikator hat einen anderen Ausdruck

( ObjectFind(NameInd+timestartpr+"CurExt_ARROWDN")!=-1) - dies sagt etwas über den Ausfall der Zeile "CurExt_ARROWDN" nach unten aus.

Wie kann ich mit demselben Ausdruck anzeigen, dass es keine Panne gibt?

 
russcand:

Ich danke Ihnen. Und jetzt möchte ich noch etwas entscheiden.

Nehmen wir an, dass dieses Niveau durchbrochen wird. Der Indikator definiert die erforderliche Marktbedingung.

Aber der Preis könnte sich wieder innerhalb dieses Niveaus bewegen.

Und ich brauche, dass der zuvor definierte Zustand nicht neu definiert wird.

Wichtig ist für mich der Durchbruch in dieser Stufe. Was der Preis hin und her geht, ist für mich nicht von Interesse, denn es gibt einen Moment der Überschreitung und Festsetzung der bereits definierten Situation.

Das, was Sie geschrieben haben, ist also die gegenwärtige Situation. Wie kann ich erreichen, dass die ermittelte neue Kondition unverändert bleibt, wenn der Preis zurückkehrt?

Es gibt auch ARROWDN und ARROWUP Pfeile auf dem Indikator (auf dem Chart). Vielleicht sollten sie irgendwie angewandt werden.

Zum Beispiel, wenn der Wert des aktuellen Balkens größer ist als ein "AND" -Index.

Legen Sie hier eine Bedingung fest, dass der Kurs die Linie NICHT nach oben durchbrochen hat (ODER ARROWUP nicht ausgelöst wird)..., UND der Kurs die Linie NICHT nach unten durchbrochen hat (ODER ARROWDN nicht ausgelöst wird).

dann.... wird durch einen Zustand wie und wann bestimmt.

Es gibt einen weiteren Ausdruck im Indikator

( ObjectFind(NameInd+timestartpr+"CurExt_ARROWDN")!=-1) - das sagt irgendwie aus, dass die Zeile "CurExt_ARROWDN" ausgefallen ist.

Wie kann ich denselben Ausdruck angeben, ohne dass es einen Durchbruch gibt?



static bool BreakDown=false;

...

denn sie wird gebrochen werden:

BreakDown=true;

 
tara:


static bool BreakDown=false;

...

während es läuft:

BreakDown=true;

Sanx, kannst du die Formel selbst zeichnen? Von diesem Punkt an:

static bool BreakDown=false; // wie es versucht wird: BreakDown=true;
static bool BreakUp=false;

if ( iTime(Symbol(),0,0) >= CurExt // Beginn des Segments

&& (
ObjectFind(NameInd+timestartpr+"CurExt_ARROWUP")!=-1 // BreakUp
BreakUp=true;
||

ObjectFind(NameInd+Timestartpr+"CurExt_ARROWDN")!=-1 // ausgefallen

BreakDown=true;

)

)

Wo und wie man BreakUp=true; und BreakDown=true; platziert oder besser die Formel richtig schreibt, pliz.... Andernfalls ist es klar, dass die Zweisprachigkeit an der Spitze gezeichnet wird...

 
Bitte teilen Sie mir die Berechnungsmethode mit. Nehmen Sie z.B. die letzten 10 Trades und zählen Sie z.B. die Rentabilität. Wie kann man mit einer Historie aller Trades (viel mehr als 10) berechnen, dass die Profitabilität dieser 10 Trades zufällig/nicht zufällig war.
 
russcand:

Sanx, kann ich die Formel selbst zeichnen? Von diesem Punkt an:

static bool BreakDown=false; // breakDown=true;
static bool BreakUp=false;

if ( iTime(Symbol(),0,0) >= CurExt // Beginn des Segments

&& (
ObjectFind(NameInd+Timestartpr+"CurExt_ARROWUP")!=-1 // Pause nach oben
BreakUp=true;
||

ObjectFind(NameInd+Timestartpr+"CurExt_ARROWDN")!=-1 // aufschlüsseln

BreakDown=true;

)

)

Wo und wie man BreakUp=true; und BreakDown=true; platziert oder besser noch, die Formel richtig schreibt, pliz.... Denn es ist klar, dass Bilibberd an der Spitze gezeichnet ist...


Tut mir leid, versuchen Sie zuerst Ihre eigenen Bedingungen :) Übrigens: Breakdown ist eine Panne. Nicht nach oben oder unten, nur eine Aufschlüsselung.
 
Skydiver:
Bitte teilen Sie mir die Berechnungsmethode mit. Wir nehmen zum Beispiel die letzten 10 Geschäfte und berechnen ihre Rentabilität. Wie kann man mit einer Historie aller Geschäfte (viel mehr als 10) berechnen, dass die Rentabilität dieser 10 Geschäfte zufällig/nicht zufällig war.

Entschuldigung - aber warum?
 
tara:

Tut mir leid, warum?

Ich versuche nur, diese https://www.mql5.com/ru/forum/139348 auf Vordermann zu bringen. Treten Sie mich nur nicht mit Gedanken an Unsinn und so weiter. Ich denke, "die Wahrheit ist da draußen" und vielleicht ist ein Teil davon in diesem Thread zu finden. Also grabe ich.
 
Übermorgen