[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 319

 
happybuddhist:

Wie auch immer, ich brauche Hilfe beim Schreiben einer Funktion zum Schließen von Aufträgen für meinen TS (Punkt 3) und beim Anpassen des vorhandenen Codes an die Funktion.

Siehe hier. ;)

Dateien:
ln_3.mq4  4 kb
 
hoz:

Aber es gibt einen Punkt. In jedem Fall wird eine Änderung der Ausdrucksausgabe das Problem nicht lösen. Denn zum Zeitpunkt der Nullstellung müssen Eröffnungs- und Schlusskurs "vertauscht" werden.


Sie scheinen sich zu irren. Schließlich ist +(a-b)=a-b, -(a-b)=-a-(-b)=-a+b=b-a. Bei einem Wechsel des Vorzeichens tauschen sie die Plätze.

hoz:

Vadim schrieb vor einiger Zeit, dass das Einfügen einer Funktion in eine Schleife die Codeausführung um eine Größenordnung verlangsamt.


Soweit ich Vadim verstanden habe, meinte er den Aufruf einer Benutzerfunktion in einer Schleife.

Vinin:

Vielleicht sollten Sie Ihre eigene Filiale eröffnen. Wozu brauchen Sie "Einen Zweig für Neulinge"?
Ja, warum sollte ein Anfänger die Anatomie und die Perioden einer Mashka kennen)))) Ich unterscheide mich nicht von Anfängern, vielleicht nur, weil ich Analphabet bin und versuche, alles mit meinem eigenen Verstand zu erfassen.

hoz:

Ich habe die ZählercntUp undcntDn unterschiedlich gemacht, weil sie einen Wert auf einmal haben können und dann einen anderen, wenn die Berechnung durch die Schleife von berechneten Balken durchgeführt wird. Und der Zähler kann einen Wert aufsummieren und mit dem Aufsummieren eines weiteren Wertes fortfahren. Und wenn es eine Variable gibt, wird die Anzahl der Balken eines Attributs zum Zähler der Balken eines anderen Attributs addiert.


Der Zähler ist dort anders. Wenn der Candlestick in die entgegengesetzte Richtung geht, wird der Zähler durch die Formel zurückgesetzt. Oder vielleicht habe ich Sie nicht verstanden. Das einzige Problem ist, dass es möglicherweise langsamer funktioniert. Ich werde es testen, wenn ich dazu komme.

 
gyfto: ... Ich habe eine solche Frage zur Optimierung. Ich arbeite mit dem EMA-Algorithmus...
Warum muss ich nun das letzte Gewicht nehmen, wenn ich die Potenzfunktion einfach umbrechen kann, wenn das nächste Gewicht wichtiger ist als das vorherige? Ich frage nicht einmal mehr, warum eine Rekursion verwendet werden soll, wenn die endgültigen Gewichte nach der Rekursion durch eine Formel abgeleitet werden können (siehe F(n,x) und y(n,x)).
Vinin : Vielleicht solltest du deine eigene Filiale gründen. Warum brauchen Sie einen "Anfängerzweig"?
gyfto: ... Ja, nun, warum sollten Neulinge die Anatomie und die Perioden des Wellenreitens verstehen müssen)))) Ich unterscheide mich nicht von Anfängern, vielleicht nur darin, dass ich Analphabet bin, also versuche ich, alles mit meinem Gehirn zu erfassen. ...
Eröffnen Sie ein Thema wie "Fragen zur EMA" und fügen Sie die Matcad-Datei an. Ihr Beitrag wird hier einfach verloren gehen. In einem separaten Thread sollten die Mathe-Gurus in der Lage sein, das alles aufzuschlüsseln.
 
GaryKa:
Starten Sie ein Thema wie "EMA-Fragen" und hängen Sie eine Matcad-Datei an. Ihr Beitrag wird hier einfach verloren gehen. In einem separaten Thread sollten die Mathe-Gurus in der Lage sein, dies aufzuschlüsseln.

Sie meinen wahrscheinlich, dass die Antwort auf die Frage verloren gehen wird. Okay, ich eröffne einen Thread, bearbeite diesen Beitrag und schreibe verschoben.
 
TarasBY:

Sehen Sie sich das an. ;)


Hmm, danke. Sind dies Ergebnisse der Optimierung?
 
gyfto:

Sie scheinen sich zu irren. Denn +(a-b)=a-b, -(a-b)=-a-(-b)=-a+b=b-a. Bei einem Wechsel des Vorzeichens tauschen sie die Plätze.

Aus der Mathematik wissen wir also, dass Minus zu Minus Plus ergibt. Und Plus zu Minus ergibt Minus. Aber das ist das erste Mal, dass ich davon höre, dass die Variablen ihre Plätze tauschen.

gyfto:

Soweit ich Vadim verstanden habe, meinte er den Aufruf einer Benutzerfunktion in der Schleife.

Ich habe dort eine Benutzerfunktion. Hier ist die ursprüngliche Funktion selbst in ihrer ungekürzten Version, da sie im Moment nicht so funktioniert, wie ich es möchte, also habe ich beschlossen, sie nicht universell zu machen:

//+-------------------------------------------------------------------------------------+
//| Расчитываем количество идущих один за одним баров одного признака                   |
//+-------------------------------------------------------------------------------------+
int LastCandlesType(int directionMA)
{
   int cntUp,                                                                            // Счётчик идущих друг за другом свечей с..
       cntDn;                                                                                // .. требуемыми признаками
       
   for (int i=i_AnyBarsToHistory; i>=1; i--)
   {
      if (directionMA == CROSS_UP)
      {
         if ((Open[i] - Close[i]) >= i_sizeOfSequentialCorrectionBar * pt)              // Если бар соответствует требуемым признакам..
             cntDn++;                                                                     // .. прибавим 1 к счётчику

         if ((Close[i] - Open[i]) >= i_sizeOfTrandBar * pt)                             // Если бар, не соответствует основному признаку..
             cntDn = 0;                                                                   // .. счётчик обнуляем

         if (cntDn == i_sequentBarsСount)                                                   // Если cnt баров в подряд медвежьи..
             return (REQUIRED_SEQUENTIAL_BEARS_GOT);                                         // .. Выходим из функции
      }

      if (directionMA == CROSS_DN)
      {
         if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt)              // Если бар соответствует требуемым признакам..
             cntUp++;                                                                     // .. прибавим 1 к счётчику

         if ((Open[i] - Close[i]) >= i_sizeOfTrandBar * pt)                             // Если бар, не соответствует основному признаку..
             cntUp = 0;                                                                   // .. счётчик обнуляем
     
         if (cntUp == i_sequentBarsСount)                                                   // Если cnt баров в подряд бычьи..
             return (REQUIRED_SEQUENTIAL_BULLS_GOT);                                         // .. Выходим из функции
      }
   }
}

Innerhalb der Schleife der Funktion, die das allgemeine Signal empfängt, erhält diese Variable ihren Wert und wird als Parameter übergeben:

int directionMA = GetStateOfMA();

gyfto:
Nun ja, warum sollten Neulinge die Anatomie und die Perioden einer Wellenmaschine verstehen müssen))) Ich unterscheide mich nicht von den Anfängern, vielleicht nur, weil ich Analphabet bin und deshalb versuche, alles mit dem Kopf zu erfassen.

Sie irren sich. Von Analphabetismus kann eigentlich keine Rede sein. Sie haben hier solche Gedanken, die viele Neulinge nicht verstehen...

gyfto:

Dort gibt es einen anderen Zähler. Wenn sich die Kerze in die andere Richtung bewegt, setzt die Formel den Zähler zurück. Oder habe ich Sie missverstanden? Das einzige Problem ist, dass es langsamer funktionieren könnte. Ich werde es bei Gelegenheit testen.

Ja, aber wir haben einen Zähler, bei dem die Werte in der Reihenfolge des Auftretens der Balken vom Balken mit dem Indexi_AnyBarsToHistory bis zum Balken mit dem Index 1 berechnet werden. Daraus folgt, dass, wenn die Bedingung auf den Balken von Index 30 bis Index 15 erfüllt wird:

directionMA == CROSS_UP

und dann ist z.B. bei cnt=2 die Bedingung erfüllt:

directionMA == CROSS_DN

Dann wird cnt auf den vorherigen Wert hochgezählt. Wenn wir 2 hatten, wird die neue Bedingung um 1 erhöht, dann ist cnt=3 und wir verlassen die Funktion mit dem Wert 3. Verstehen Sie, was ich meine? Schauen Sie genau hin, die Logik ist hier im Grunde offensichtlich.

 

Guten Tag.

Hat jemand Erfahrung mit der Änderung von Indikatorparametern in einem EA

abhängig von der Volatilität (z.B. MA-Parameter) ?

Oder können Sie mir einen Link zum Lesen geben

 
Stells:

Guten Tag.

Hat jemand Erfahrung mit der Änderung von Indikatorparametern in einem EA

abhängig von der Volatilität (z.B. MA-Parameter) ?

Oder können Sie mir einen Link zum Lesen geben


Wenn Sie verstehen, was ein Muving ist, werden solche Fragen von selbst verschwinden.
 
hoz:
Wenn Sie verstehen, was muving ist, verschwinden solche Fragen von selbst.
Man kann nicht nur schön leben...

Adaptive MA
 
Guten Tag, ich brauche Hilfe beim Schreiben eines einfachen Skripts oder eines Expert Advisors', wenn das Skript es nicht selbst tun kann, habe ich noch nie das Skript programmiert Das Wesen des Skripts Login - erhalten Preise (aktuelle Ask und Bid) - bestimmen Sie den zukünftigen Kauf/Verkaufspreis (als ein Vielfaches seiner Zahl "zum Beispiel 30") - finden Sie heraus, ob es keine offenen/aufgeschobenen Aufträge zu diesen Preisen gibt - wenn keine Aufträge, platzieren Sie schwebende Aufträge mit Stoploss und Take-Profit - wenn es Aufträge gibt, prüfen Sie den nächsten Kaufpreis, der für den Kauf um eine mehrfache Zahl höher ist, für Verkaufen - um ein Vielfaches kleiner - Obergrenze des aktuellen Preises prüfen +-100*fach - 5 Minuten warten und zu "Preis ermitteln" gehen Warten kann durch "Preis ermitteln" gehen nach jedem Tick ersetzt werden