Fehler, Irrtümer, Fragen - Seite 797

 
sergeev:

Ist es das?


Ich habe zwei Fragen.

- Warum haben Sie die Berechnung von Vierlingen im Code geändert?

- Was zeigt dieser Indikator an? Wie kann man mit ihm handeln?

Das ist es.

- Ich habe es nicht geändert. Ich habe alles eins zu eins übertragen. Anstelle von f-i im Code von vier, verwende ich die Werte der zuvor berechneten MA-Arrays aus langsamen und schnellen gleitenden Durchschnitten von OPEN, CLOSE, HIGH, LOW in fünf, wiederum multipliziert mit entsprechenden Koeffizienten der Instrumente.

Zum Beispiel der TOTAL-Code einer 4:

if (Symbol() == "EURUSD"){
               OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2);
               HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2);
               LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2);
               CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2);
...
 pair[i]=(OPEN+HIGH+LOW+CLOSE)/4;

Hier ist eine der EUR f-i's, die ich stattdessen in Fünfern verwende (siehe unten) - ich berechne sofort die Formeln darin. Es ist alles eins-zu-eins:

double EUR(int Mode, int Price, int i, int per1, int per2){
   return(
            (iMA("EURUSD",0,per2,0,Mode,Price,i)-
            iMA("EURUSD",0,per1,0,Mode,Price,i))*10000*kUSD
            +
            (iMA("EURGBP",0,per2,0,Mode,Price,i)-
            iMA("EURGBP",0,per1,0,Mode,Price,i))*10000*kGBP
            +
            (iMA("EURJPY",0,per2,0,Mode,Price,i)-
            iMA("EURJPY",0,per1,0,Mode,Price,i))*100*kJPY
          ); 

In der fünften Version wird die Berechnung wie folgt aussehen - ohne Funktionen, wie in der vierten Version, sondern direkt auf zuvor berechneten Feldern:

if (Symbol() == "EURUSD")
        {     
// ----  OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2);          
         OPEN=((OPEN_F_EURUSD[i]-OPEN_S_EURUSD[i])*10000*kUSD+(OPEN_F_EURGBP[i]-OPEN_S_EURGBP[i])*10000*kGBP+(OPEN_F_EURJPY[i]-OPEN_S_EURJPY[i])*100*kJPY -
               (OPEN_S_EURUSD[i]-OPEN_F_EURUSD[i])*10000*kEUR+(OPEN_S_GBPUSD[i]-OPEN_F_GBPUSD[i])*10000*kGBP+(OPEN_F_USDJPY[i]-OPEN_S_USDJPY[i])*100*kJPY);
               
// ----  HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2);              
         HIGH=((HIGH_F_EURUSD[i]-HIGH_S_EURUSD[i])*10000*kUSD+(HIGH_F_EURGBP[i]-HIGH_S_EURGBP[i])*10000*kGBP+(HIGH_F_EURJPY[i]-HIGH_S_EURJPY[i])*100*kJPY -
               (HIGH_S_EURUSD[i]-HIGH_F_EURUSD[i])*10000*kEUR+(HIGH_S_GBPUSD[i]-HIGH_F_GBPUSD[i])*10000*kGBP+(HIGH_F_USDJPY[i]-HIGH_S_USDJPY[i])*100*kJPY);
               
// ----  LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2);
         LOW=((LOW_F_EURUSD[i]-LOW_S_EURUSD[i])*10000*kUSD+(LOW_F_EURGBP[i]-LOW_S_EURGBP[i])*10000*kGBP+(LOW_F_EURJPY[i]-LOW_S_EURJPY[i])*100*kJPY -
               (LOW_S_EURUSD[i]-LOW_F_EURUSD[i])*10000*kEUR+(LOW_S_GBPUSD[i]-LOW_F_GBPUSD[i])*10000*kGBP+(LOW_F_USDJPY[i]-LOW_S_USDJPY[i])*100*kJPY);
               
// ---   CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2);
         CLOSE=((CLOSE_F_EURUSD[i]-CLOSE_S_EURUSD[i])*10000*kUSD+(CLOSE_F_EURGBP[i]-CLOSE_S_EURGBP[i])*10000*kGBP+(CLOSE_F_EURJPY[i]-CLOSE_S_EURJPY[i])*100*kJPY -
               (CLOSE_S_EURUSD[i]-CLOSE_F_EURUSD[i])*10000*kEUR+(CLOSE_S_GBPUSD[i]-CLOSE_F_GBPUSD[i])*10000*kGBP+(CLOSE_F_USDJPY[i]-CLOSE_S_USDJPY[i])*100*kJPY);
         }
      
      pair[i]=(OPEN+HIGH+LOW+CLOSE)/4;    

- Der kumulative Effekt der Bewegungen mehrerer Symbole, die Unterschiede der schnellen und langsamen MA der Symbole OPEN, HIGH, LOW, CLOSE werden berücksichtigt. Sie werden addiert und durch vier geteilt, wobei die Koeffizienten der Multiplikatoren der Differenzen der schnellen und langsamen MA der Instrumente, die ebenfalls Gegenstand der Optimierung sind, berücksichtigt werden.

Zum Tauschen: 1. durch Überschreiten der Nulllinie + Different (Abstand von der Nulllinie, um Fehleinstiege zu filtern) von unten nach oben, dann zum Kauf, von oben nach unten, dann zum Verkauf. Siehe Expert Advisor im Trailer.

2. auf Beugungslinien: wenn es eine Beugung unter Null gibt, dann kaufen, wenn es eine Beugung über Null dieser kumulativen MA-Instrument-Differenzlinie gibt, dann verkaufen (diese Option ist im EA noch nicht verfügbar).

Ich möchte entweder die erste oder die zweite Option für die Meisterschaft nutzen.

Dateien:
 

Falsche Kartenanzeige (Balkenmodus).

Beim Starten des Terminals werden die Symbole des Anzeigepuffers deutlich versetzt zu den Bildern der Balken angezeigt, auf die sie sich beziehen.

687 bauen

Auch im Visualisierungsmodus bewegen sich die Puffersymbole der Indikatoren mit einer sehr starken und sichtbaren Verzögerung hinter den entsprechenden Balken, wenn sich ein Chart bewegt.

 
R0MAN:

- Ich habe es nicht geändert. Ich habe alles eins zu eins übertragen.

Ihr Ergebnis ist nicht das gleiche.

Ich verstehe nicht, warum Sie immer mqh

bündeln. Ich habe den Code in Ordnung gebracht. Ich habe zwei Klassen hinzugefügt

CSeries - eine Klasse, die 4 Arrays und 4 Puffer bedient + sie sind in INDICATOR_CALCULATION definiert
CPair - eine Klasse, die zwei CSeries bedient - Fast und Slow.

Und Funktionen USD/JPY/EUR/GBP + Start übertragen wie in MT4


Ich verglich Ergebnisse mit MT4 - eins-zu-eins - vollständig übereinstimmen

Das Bier geht aufs Haus :)


Ich möchte entweder die erste oder die zweite Option für die Meisterschaft verwenden.

Haben Sie irgendwelche gewinnbringenden Ergebnisse?

Dateien:
 

und dies ist die Art von Indikator, die Sie ursprünglich beabsichtigt haben

Dateien:
 
sergeev:

1. Ihre Ergebnisse stimmen nicht überein.

Ich weiß nicht, warum Sie immer mqh in Ihrem Kit haben.

Wie auch immer, ich habe den Code bereinigt und zwei Klassen hinzugefügt

CSeries - eine Klasse, die 4 Arrays und 4 Puffer bedient + sie sind in INDICATOR_CALCULATION definiert
CPair - eine Klasse, die zwei CSeries bedient - Fast und Slow.

Und Funktionen USD/JPY/EUR/GBP + Start verschoben wie in MT4


2. Ich habe die Ergebnisse mit MT4 verglichen - eins zu eins - sie sind identisch.

Das Bier geht aufs Haus :)

3. haben Sie irgendwelche gewinnbringenden Ergebnisse?


1) Oh! Ich danke Ihnen von ganzem Herzen! Ich habe es mir noch nicht angesehen. Ist es iCustom - eignet es sich?

Keine Eule auf einer Fünf. Ich habe diese Indica schon seit Ewigkeiten - im Archiv.

2. der Chirurg mit seinem MASD - inspiriert! Er gibt allen Neuro-Multi-Spectra-Ultra-Ultras mit seinen 11 Trades. :-)

So ist er normalerweise. Wenn das iCustom meinen Bedürfnissen entspricht, werde ich die Signale in Eulen umwandeln und durchdrehen!

3. Es gibt zwar keine Eule auf dem Absatz... Eignet sie sich für iCustom? - Ich benötige die Werte für den ersten, zweiten und dritten Balken (um zwei Bedingungen für den Markteintritt zu kodieren: Nulldurchgang und (oder) Wendepunkt über/unter Null).

4. "Du schuldest mir ein Bier :-) + schrieb in einer persönlichen Nachricht.

 
R0MAN:

3. Auf dem Absatz befindet sich zwar keine Eule... Eignet sie sich für iCustom? - benötigt seine Werte aus dem ersten, zweiten und dritten Balken (um zwei Markteintrittsbedingungen zu kodieren : Nulldurchgang und (oder) Wendepunkt über/unter Null).

alles wird in den iCustom eingespeist.
 
Rosh:
Debugging ist im Tester nicht verfügbar
Gibt es irgendwelche Pläne? Online-Debugging ist aufgrund nicht reproduzierbarer Bedingungen wenig sinnvoll.
 
Erinnern Sie mich daran, wie ich einen Indikator dazu bringen kann, automatisch im Chart-Fenster zu erscheinen, das nach der Ausführung im Tester geöffnet wird? Ich glaube nicht, dass ich vorher etwas tun musste.
 
marketeer:
Online-Debugging ist wenig hilfreich, da die Bedingungen nicht reproduzierbar sind.

Da ist so ein Buchstabe, groß und fett gedruckt.

Gibt es irgendwelche Pläne?

Ich glaube nicht, dass MetaQuotes den Enthusiasmus hat, zwischen einem Tester und einem Debugger zu wechseln, was verständlich ist - die Aufgabe ist krumm.

Ideen über"virtuelle Server" kursieren - das ist näher an der Realität, insbesondere wenn die Eingabe beliebiger Daten (mit beliebiger Geschwindigkeit) erlaubt ist. Aber es ist auch eine Option, die die Metaquotes stark belastet (offenbar aus mehreren Gründen gleichzeitig).

Aber es sind noch mehr Wege möglich. Etwas Drittes. So etwas wie ein "Mikrotester" direkt im Debugger: Wir setzen ein Paar, legen Haltepunkte fest, starten es und voila. Führen Sie es durch den Debugger. Mit Stopps an Haltepunkten und der Möglichkeit, schrittweise zu untersuchen und "weiter" zu starten, bis zum Abschluss der "Debugging-Periode".

Durchwachsen.

// Aber das sind nur meine Spekulationen/Gedanken, vielleicht fällt Stringo ja noch etwas ein.

Aber es muss etwas getan werden, das steht fest.

 

MetaDriver:

Es kursieren einige Ideen über "virtuelle Server" - das ist näher an der Realität, vor allem, wenn man beliebige Dateneingaben (mit beliebiger Geschwindigkeit) zulässt. Aber es ist auch eine Option, die die Meta-Anführungszeichen stark belastet (offenbar aus mehreren Gründen gleichzeitig).

Autsch, irgendwie scheint mir, dass ein Tester mit Debugging realistischer wäre, und man sollte nicht einmal in diese Richtung träumen.