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

 

Ist es möglich, die Leistung eines EA zu verbessern, wenn der darin verwendete Indikator, der über iCustom() aufgerufen wird, vollständig in eine dll übertragen wird? Lohnt sich ein solches Spiel? Ist die DLL immer schneller als der Indikator? Und was sind die Besonderheiten der Arbeit mit Close[] Array in dll?


Ja, ich werde auch eine Frage hinzufügen: wie man die Funktion IndicatorCounted() in der DLL formatiert.

 
gyfto:

1. Ist es möglich, den EA-Leistungsgewinn zu erhalten, wenn der darin verwendete Indikator, der über iCustom() aufgerufen wird, komplett in eine dll übertragen wird? Lohnt sich ein solches Spiel? Ist die DLL immer schneller als der Indikator? Und was sind die Besonderheiten der Arbeit mit Close[]-Array in einer DLL?


2. Ja, ich möchte auch eine Frage hinzufügen: wie man die Funktion IndicatorCounted() in der DLL gestaltet.

Das ist ein interessantes Thema. Aber...

1. Ich weiß es nicht, ich habe es nicht ausprobiert, aber ich bezweifle, dass es sich um einen unbedeutenden Zuwachs handeln könnte. Von dem, was ich gesehen habe Indikatoren übertragen, um dll arbeiten nicht schnell, aber die Optimierung der Code des Indikators ermöglicht es, sehr gute Ergebnisse in mql zu erreichen.

Hier gibt es keinen Betrug, wir sollten den Wert von IndicatorCounted(), Bars übergeben und in der DLL sollten wir entscheiden, ob alle oder nur ein Bar neu gezählt werden soll. Anstelle von IndicatorCounted() und Bars können Sie ein bereits berechnetes Limit übergeben.

Wenn der Indikator sehr langsam ist, was ihn für die Verwendung in Expert Advisors unrealistisch macht (Sie können ihn nicht testen), dann hilft die Übertragung in die DLL natürlich nicht.

 
gyfto:

1. Ist es möglich, den EA-Leistungsgewinn zu erhalten, wenn der darin verwendete Indikator, der über iCustom() aufgerufen wird, vollständig in eine dll übertragen wird? Lohnt sich ein solches Spiel? Ist die DLL immer schneller als der Indikator? Und was sind die Besonderheiten der Arbeit mit Close[] Array in dll?
2. Ja, ich werde auch eine Frage hinzufügen: wie man IndicatorCounted() Funktion in dll formatieren?

1. Natürlich dürfen und sollen Sie das. Es ist 20 Mal schneller in der Berechnung. Ganz zu schweigen vom bequemen Debugging und den unendlichen Möglichkeiten von C++ und anderen normalen Sprachen.

2. Sie brauchen es dort nicht.

 
Warum bricht die Linie nach unten? Ich brauche einen Abschnitt von EMPTY. Code mit einem Fehler für H1 (ich kann sehen, dass selbst), aber wie kann ich EMPTY? beheben?
SetIndexStyle(0,EMPTY);
 
Warum bricht die Linie nach unten? Ich brauche einen Abschnitt von EMPTY. Code (Seite 427) mit einem Fehler für H1 (ich kann das selbst sehen), aber wie kann ich EMPTY? beheben?
SetIndexStyle(0,EMPTY);
 
kopeyka:
Warum bricht die Leitung zusammen? Ich brauche einen Abschnitt von EMPTY. Code mit einem Fehler für H1 (ich kann sehen, dass selbst), aber wie kann ich EMPTY? beheben?

Versuchen Sie SetIndexEmptyValue() zu setzen, Optionen: 0, EMPTY_VALUE

 
Integer:

Versuchen Sie SetIndexEmptyValue() zu setzen, Optionen: 0, EMPTY_VALUE


Danke...ich werde es versuchen)):
 
Integer:

...

1. Ich weiß nicht, ich habe es nicht versucht...

Ich habe es ausprobiert. EMA auf mql und in dll.

01:46:19 1 EURUSD,M15: Alert: dll: 109
01:46:19 1 EURUSD,M15: Alert: 1
01:46:19 1 EURUSD,M15: Alert: mql: 109
01:46:19 1 EURUSD,M15: Alert: dll: 0
01:46:19 1 EURUSD,M15: Alert: 2
01:46:19 1 EURUSD,M15: Alert: mql: 156
01:46:20 1 EURUSD,M15: Alert: dll: 202
01:46:20 1 EURUSD,M15: Alert: 3
01:46:20 1 EURUSD,M15: Alert: mql: 172
01:46:20 1 EURUSD,M15: Alert: dll: 0
01:46:20 1 EURUSD,M15: Alert: 4
01:4620 1 EURUSD,M15: Alert: mql: 172
01:46:20 1 EURUSD,M15: Alert: dll: 171
01:46:20 1 EURUSD,M15: Alert: 5
01:46:20 1 EURUSD,M15: Alert: mql: 78
01:46:20 1 EURUSD,M15: Alert: dll: 78
01:46:20 1 EURUSD,M15: Alert: 6
01:46:21 1 EURUSD,M15: Alert: mql: 202
01:46:21 1 EURUSD,M15: Alert: dll: 94
01:46:21 1 EURUSD,M15: Alert: 7
01:46:21 1 EURUSD,M15: Alert: mql: 172
01:46:21 1 EURUSD,M15: Alert: dll: 94
01:4621 1 EURUSD,M15: Alert: 8
01:46:21 1 EURUSD,M15: Alert: mql: 234
01:46:21 1 EURUSD,M15: Alert: dll: 15
01:46:21 1 EURUSD,M15: Alert: 9
01:46:21 1 EURUSD,M15: Alert: mql: 78
01:46:22 1 EURUSD,M15: Alert: dll: 94
01:46:22 1 EURUSD,M15: Alert: 10
01:46:22 1 EURUSD,M15: Alert: mql: 172
01:46:22 1 EURUSD,M15: Alert: dll: 93
01:46:22 1 EURUSD,M15: Alert: 11
01:46:22 1 EURUSD,M15: Alert: mql: 93
01:46:22 1 EURUSD,M15: Alert: dll: 78
01:46:22 1 EURUSD,M15: Alert: 12
01:46:22 1 EURUSD,M15: Alert: mql: 78
01:46:22 1 EURUSD,M15: Alert: dll: 78
01:46:22 1 EURUSD,M15: Alert: 13
01:46:23 1 EURUSD,M15: Alert: mql: 250
01:4623 1 EURUSD,M15: Warnung: dll: 156
01:46:23 1 EURUSD,M15: Warnung: 14
01:46:23 1 EURUSD,M15: Warnung: mql: 187
01:46:23 1 EURUSD,M15: Warnung: dll: 0
01:46:23 1 EURUSD,M15: Warnung: 15
01:46:23 1 EURUSD,M15: Warnung mql: 78
01:46:23 1 EURUSD,M15: Alert: dll: 171
01:46:23 1 EURUSD,M15: Alert: 16
01:46:24 1 EURUSD,M15: Alert: mql: 266
01:46:24 1 EURUSD,M15: Alert: dll: 0
01:46:24 1 EURUSD,M15: Alert: 17
01:46:24 1 EURUSD,M15: Warnung: mql: 93
01:46:24 1 EURUSD,M15: Warnung: dll: 78
01:46:24 1 EURUSD,M15: Warnung: 18
01:46:24 1 EURUSD,M15: Warnung: mql: 94
01:46:24 1 EURUSD,M15: Warnung: dll: 15
01:46:24 1 EURUSD,M15: Warnung: 19
01:46:2446:46:24 1 EURUSD,M15: Alert: mql: 94
01:46:24 1 EURUSD,M15: Alert: dll: 78
01:46:24 1 EURUSD,M15: Alert: 20
01:46:25 1 EURUSD,M15: Alert: mql: 234
01:46:25 1 EURUSD,M15: Alert: dll: 78
01:46:25 1 EURUSD,M15: Warnung: 21
01:46:25 1 EURUSD,M15: Warnung: mql: 156
01:46:25 1 EURUSD,M15: Warnung: dll: 94
01:46:25 1 EURUSD,M15: Warnung: 22
01:46:25 1 EURUSD,M15: Warnung: mql: 94
01:46:25 1 EURUSD,M15: Warnung: dll: 16
01:46:2546:25 1 EURUSD,M15: Alert: 23
01:46:26 1 EURUSD,M15: Alert: mql: 93
01:46:26 1 EURUSD,M15: Alert: dll: 171
01:46:26 1 EURUSD,M15: Alert: 24
01:46:26 1 EURUSD,M15: Alert: mql: 171
01:46:26 1 EURUSD,M15: Alert: dll: 187
01:46:26 1 EURUSD,M15: Alert: 25
01:46:26 1 EURUSD,M15: Alert: mql: 156
01:46:26 1 EURUSD,M15: Alert: dll: 78
01:46:26 1 EURUSD,M15: Alert: 26
01:46:27 1 EURUSD,M15: Alert: mql: 62
01:4627 1 EURUSD,M15: Warnung: dll: 187
01:46:27 1 EURUSD,M15: Warnung: 27
01:46:27 1 EURUSD,M15: Warnung: mql: 78
01:46:27 1 EURUSD,M15: Warnung: dll: 171
01:46:27 1 EURUSD,M15: Warnung: 28
01:46:27 1 EURUSD,M15: Warnung mql: 93
01:46:27 1 EURUSD,M15: Alert: dll: 78
01:46:27 1 EURUSD,M15: Alert: 29
01:46:27 1 EURUSD,M15: Alert: mql: 172
01:46:28 1 EURUSD,M15: Alert: dll: 94
01:46:28 1 EURUSD,M15: Alert: Average. mql: 140 dll: 91

Ein paar Tests:

Durchschnittlich. mql: 126 dll: 116
Durchschnittlich. mql: 122 dll: 86
Durchschnittlich. 167 dll: 91
Durchschnittlich. mql: 149 dll: 82
Durchschnittlich. mql: 140 dll: 91

Das ist sehr auffällig. Wenn die Berechnungen komplizierter sind, wird der Code viel auffälliger sein.

 
WENN DAS AUFTRAGSTICKET AUF DEM SERVER DES MAKLERS GESPEICHERT WIRD, WO WERDEN DANN DIE MAGISCHEN UND KOMMENTIERTEN AUFTRÄGE GESPEICHERT?
 

Guten Tag!!! Ich muss wohl etwas über Arrays oder so falsch verstanden haben. Die Funktion fügt keinen Gewinn in das Array ein!!! Sie ist unter allen Umständen gleich Null. Null und das war's!

Funktion.

/))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))


void Orderasthitaem()
{
int BUY=0,SELL=0,BUYLIMIT=0,BUYSTOP=0,SELLLIMIT=0,SELLSTOP=0;
double BUY_Profit=0,SELL_Profit=0;
      for( int i=0;i<OrdersTotal();i++){
        OrderSelect (i, SELECT_BY_POS  ) ;  
        if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magicnumber){            
        int type = OrderType();
        if (type == 0) {BUY++;BUY_Profit=BUY_Profit+OrderProfit();}
        if (type == 1) {SELL ++;SELL_Profit=SELL_Profit+OrderProfit();}
        if (type == 2) {BUYLIMIT++;}
        if (type == 3) {SELLLIMIT++;}
        if (type == 4) {BUYSTOP++;}
        if (type == 5) {SELLSTOP++;}}}
       
        Orderasthitaem[0,1]=BUY;Orderasthitaem[0,2]=BUY_Profit;
        Orderasthitaem[1,1]=SELL;Orderasthitaem[1,2]=SELL_Profit;
        Orderasthitaem[2,1]=BUYLIMIT;
        Orderasthitaem[3,1]=SELLLIMIT;
        Orderasthitaem[4,1]=BUYSTOP;
        Orderasthitaem[5,1]=SELLSTOP;
         
         
}        
    

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Vergessenheit jenseits aller Funktionen

double Orderasthitaem[6,2];ArrayInitialize(Orderasthitaem, 0.0);