Ein Fehler in der Funktion OrderSend() ? - Seite 2

 
hoz:


Dem Protokoll nach zu urteilen, ist das richtig. Aber wenn man es im Tester mit den gleichen Einstellungen laufen lässt, dann werden die Pausen nicht korrekt periodisch gesetzt, was ich bereits gesagt habe... Das habe ich geschrieben. Ich habe das Protokoll gelesen, alles ist klar und deutlich... Ein Blick auf den Screenshot... (Wenn ich mir das Diagramm ansehe,stelle ichfest, dass der Kaufeingang niedriger ist als der Kaufeingang... und das steht im Widerspruch zur Bedingung.

Aber es ist auch seltsam, dass ich dies bei M5 nicht bemerkt habe, ABER es wurde festgestellt, dass einige Einträge übersehen werden.

Wenn wir uns die Zeichnung ansehen, werden wir sehen, dass die Deichsel in der Ebene liegt, während wir sie bei Umkehrungen nicht einfangen können!
 
borilunad:

Victor, Sie müssen die Indikatoren und die Methoden ihrer Verwendung in Ihrem EA studieren. Denn mir scheint, dass Sie etwas wollen, von dem Sie nicht wissen, wie Sie es ausführen sollen.

Ich habe sie studiert, nicht wahr? Ich möchte einfach, dass der Preis niedriger (höher) ist als das Diagramm, das zum Eröffnungs- oder Schlusskurs gezeichnet wird, oder es spielt keine Rolle. Es gibt keinen Unterschied, denn wenn Sie einen Balken mit dem Index 1 nehmen, ist er bereits gebildet worden und sein Wert ändert sich nicht mehr... Wenn der Indikator nicht neu gezeichnet wird, ist es egal, wie er gezeichnet wird (obwohl ich verstehe, wie er berechnet wird, weil ich darauf geachtet habe und es einfach ist). Immerhin ist sein Wert auf früheren Barren bereits vorhanden, und man kann ihn bekommen, was ich getan habe.

borilunad:

Und noch etwas: Sie sollten sich nicht so sehr an sehr strenge Bedingungen "hängen", denn in der Hälfte der Fälle wird sich der Preis sicher nicht so verhalten, wie Sie es sich wünschen. Sie müssen also die Möglichkeiten durchspielen, was Sie im schlimmsten Fall tun werden.

Boris, dass es auf einem realen Markt verschiedene Optionen geben kann und die Bedingungen nicht immer erfüllt werden... YES! Ich verstehe das. Aber wenn die Bedingungen im Prüfgerät nicht erfüllt sind, ist das schon seltsam. Im Tester gibt es KEINE Rückmeldungen, es gibt KEINE Fehler im Zusammenhang mit der Betriebsamkeit des Handelsflusses, usw. Logischerweise sollten alle Aufträge perfekt ausgeführt werden.

Wenn im Tester alle Aufträge perfekt funktionieren, dann kann ich mir schon denken, wie sich die Strategie idealerweise verhält. Und treffen Sie dann auf der Grundlage der Statistiken entsprechende Entscheidungen.

Aber wenn wir selbst im Strategietester die Strategie nicht ausführen können und sie bei jedem Schritt eklatant lügt, was dann? Von dieser Plattform weglaufen und nicht mehr zurückschauen? Nach anderen Wegen suchen?

Ich möchte wirklich einen vernünftigen Bot schreiben, ich habe meine eigenen Strategien, die voll von meinen Ansätzen und Beobachtungen sind. Es wurde bereits etwas geschrieben, es wird im wirklichen Leben getestet, es wurde im Tester ausgeführt, und alles funktioniert. Meistens schrieb ich EAs auf der Grundlage der Stäbe, aber die Einträge basierten nicht auf den Stäben.

Ich habe beschlossen, die Lesungen meiner Stäbe als Eingabe zu verwenden, und ich wurde wiedergeboren. Ich kann keine stabilen Einträge bekommen, sie werden übersprungen, irgendwo zu falschen Preisen eingetragen. Ich glaube nicht, dass es angemessen wäre zu sagen, dass ich den Indizes nicht trauen sollte, denn der Computer hat eine bestimmte Reihe von Werten, und die müssen richtig funktionieren.

Ich habe bereits alles begründet und übrigens die Frage an den Sysop geschickt. Bis jetzt habe ich noch keine verständliche Antwort erhalten...

borilunad:

Ehrlich gesagt, verstehe ich immer noch nicht, warum es für Sie so wichtig ist, diese Bar zu betreten und die andere nicht. Meiner Meinung nach kommt es vor allem darauf an, den Trend, der rechtzeitig begonnen hat, zu erkennen und zu nutzen, und nicht einen bestimmten Einstiegspunkt. Versuchen Sie, verschiedene Mashkas zu vergleichen, und lernen Sie dann, sie als Filter für unerwünschte Einträge zu verwenden und nicht als Einstiegssignale, die oft fehlschlagen, und andere Indikatoren sind nicht besser!

Boris, wenn du es so siehst, ist es eigentlich egal, wo du einsteigst :) Sie können sich irgendwo eintragen und nach Einträgen suchen, und das nicht einmal spontan. Meine Antwort ist einfach! Es gibt bestimmte Bedingungen. Wenn sich an der aktuellen Kerze etwas nicht bewahrheitet hat, dann sollen die anderen handeln... Ich werde warten... Ich laufe dem Trend nicht hinterher, ich folge ihm. Ich werde nicht einmal einen weiteren Gral für ein bestimmtes Stück Geschichte schreiben.

Wenn wir davon ausgehen, dass die Eingaben gemäß der Strategie nicht immer eingehalten werden, auch nicht auf dem H1 TF, was soll man dann über niedrigere TFs sagen? Schließlich ist die H1 keine Minute und auch keine 5 Minuten. In TF H1 hat der Expert Advisor viel Zeit zum "Denken", vor allem im Tester ... Das ist also nicht der Punkt.

 
borilunad:
Denken Sie daran, dass Mashka nur in der Ebene an den Stäben klebt und Sie ihn nicht in der Breite einfangen können!

Das spielt keine Rolle :) Mein Beitrag wird anders sein. Das ist nur ein kleiner Trick, den ich noch beherrschen muss. Im weiteren Verlauf wird es noch komplizierter werden.
 
hoz:

Macht nichts :) Mein Auftritt wird anders sein. Es ist nur ein kleiner Trick, den man beherrschen muss. Von nun an wird es noch komplizierter werden.
Und das Wichtigste ist, dass Sie Ausdauer haben. Wahrscheinlich fehlt es Ihnen an Geduld und Flexibilität, aber mit der Zeit werden Sie bekommen, was Sie wollen! Viel Glück!
 
vielleicht die Eröffnungspreise testen, vor allem bei den stündlichen Angeboten...
 
YOUNGA:
vielleicht auf Eröffnungskurse testen, insbesondere auf Ticks...
Natürlich, besser auf Zecken! Das Bild wird plausibler sein.
 
borilunad:
Und am wichtigsten ist, dass Sie Ausdauer haben, die Wahrheit ist wahrscheinlich Mangel an Geduld und Flexibilität, aber im Laufe der Zeit werden Sie erreichen, was Sie wollen! Viel Glück!


Ich danke Ihnen! Übrigens habe ich das kürzlich von einem Bekannten gehört... einem Makler :) Er sagte, ich sei sehr stur und überheblich. Ich habe keine andere Wahl, ich muss einfach zu Ende bringen, was ich angefangen habe, sonst wird nichts passieren.

YOUNGA:
können Sie die Eröffnungskurse testen, insbesondere bei den Stundenkursen...


Es sieht so aus, als ob einige zusätzliche Kerne irgendwo "weggefressen" werden oder so. Erhöhte die Einrückung auf 15, alles begann zu setzen, wo es nicht gesetzt war. Mit weniger Einrückung nicht überall...

Ich denke Folgendes. Ich muss mir einen Mechanismus einfallen lassen, um beim Testen eines Expert Advisors Haltepunkte erscheinen zu lassen, wenn bestimmte Bedingungen erfüllt sind.. Ich habe es bereits getan, wenn ein Auftrag gesendet wird oder ein Fehler auftritt, d.h. es wird nicht irgendwo gesendet, und hier ist, welche Bedingung zu setzen, um den Moment zu "fangen", wenn der Auftrag nicht geöffnet wird, wo ich dachte, es war, ... das ist schon interessant. Natürlich können wir es mit der Zeit machen, aber das ist nicht die beste Option.

 

static datetime lastBarTime = 0; // Letzter Berechnungszeitpunkt

Entfernen Sie diese Zeile am Anfang und fügen Sie die entsprechende Erklärung in den globalen Abschnitt ein.

Danach können Sie die Reihe der TF-Schalter wiederholen, vorzugsweise in der gleichen Reihenfolge wie zuvor.

Ja, fügen Sie auch in init hinzu: lastBarTime = 0;

 
bool OpenSell()
{
   int ticket = -1;
   double OOP = fastMa - SellHear * pt;               // Получаем значение цны открытия
   
   if ((Bid - ND(OOP)) >= g_stopLevel)                // Проверка цену открытия на стоплевел
   {
       if (ND(OOP) < Bid)           // Проверка что цена открытия ниже Bid, т.к. у нас вход отложенником
       {
           Print("Bid = ", Bid);
           Print("Ask = ", Ask);
           Print("fastMa = ", fastMa);
           Print("Цена покупки = ", fastMa + buyHear * pt);
           Print("i_thresholdFromMa * pt = ", i_thresholdFromMa * pt);
           ticket = OrderSend(Symbol(), OP_SELLSTOP, 0.1, ND(OOP), 3, 0, 0, NULL, i_magic, 0);
       }
   }
   if (ticket < 0)  <------ это как понимать? если ордер не установлен, то вернуть true, в функции bool OpenBuy() почему-то наиборот, где правильно????
   {
       return (true);
   }
   else
    
   Alert (GetLastError());
}
int GetStateMa(double fastMa, double slowMa)
{
   if (fastMa > slowMa)                          // Если условия выполнены, то..
       return (MA_DIRECT_TO_UP); <--здесь вверх  // ..машки направлены вниз <-- а здесь
   
   if (fastMa < slowMa)                          // Если условия выполнены, то..
       return (MA_DIRECT_TO_DOWN);  <---         // машки направлены вверх  <---
   if (fastMa = slowMa)
       return (MA_DIRECT_TO_NONE);              // Машки не имеют выраженного направления
}
и вообще весь код какой-то "Олбанский"
 
pako:
Albanisch ist nicht verboten:)