Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 470

 
Artyom Trishkin:

Warum ist Ihr Haar kraus? Vielleicht ist es das falsche Shampoo? ;)

Was ist eigentlich los? Drei Puffer, die jeweils für einen anderen Berechnungszeitraum zuständig sind.

Was ist daran falsch?

https://www.mql5.com/ru/forum/1111/page1442#comment_2012053 - dort ausführlich beschrieben. :)
Was die Haare angeht - sie sind fast weg. :)))
 
Mike:
https://www.mql5.com/ru/forum/1111/page1442#comment_2012053 - dort ist alles detailliert beschrieben. :)
Was die Haare angeht - sie sind fast weg. :)))

Erstens: Stimmen alle Parameter der getrennten MAIs in einem Fenster mit den Parametern der MAIs überein, die von einem Indikator mit drei Puffern erzeugt werden?

Zweitens: Wenn Sie die MAIs in einem Fenster übereinander gelegt haben, was haben Sie dann im Parameter "Anwenden auf" (oder so ähnlich - ich weiß es nicht mehr genau) ausgewählt?

Der Kater sagt, er kann seine Haare teilen - das macht ihm nichts aus ;)

 

Die Dokumentation des MQL5-ReferenzhandbuchsGrundlagen der SpracheVariablenEingabevariablen

wird als Beispiel angeführt:


#property script_show_inputs 

//--- input parameters
input dayOfWeek swapday=W;

//--- day of week
enum dayOfWeek 
  {
   S=0,     // Sunday
   M=1,     // Monday
   T=2,     // Tuesday
   W=3,     // Wednesday
   Th=4,    // Thursday
   Fr=5,    // Friday,
   St=6,    // Saturday
  };

//Вставляю в советник, только без #property script_show_inputs
//Компилятор ругается:
//'dayOfWeek' - declaration without type   54   7

//Испавляю на:
input int dayOfWeek swapday=W;
//Компилятор пишет шибку:
//'swapday' - semicolon expected                   54   21

Können Sie mir bitte sagen, was das Problem ist?


 
Leo59:

Die Dokumentation des MQL5-ReferenzhandbuchsGrundlagen der SpracheVariablenEingabevariablen

wird als Beispiel angeführt:

Können Sie mir bitte sagen, was das Problem ist?

enum dayOfWeek sollte über input dayOfWeek stehen. Die zweite Schreibweise ist überhaupt nicht korrekt. Und noch ein Ratschlag - schreiben Sie keine solche Aufzählung, der W-Modifikator wird später nur schwer zu finden sein.
 
Vasiliy Sokolov:
enum dayOfWeek sollte höher sein als input dayOfWeek. Die zweite Variante der Schreibweise ist überhaupt nicht korrekt. Und ein Tipp: Schreiben Sie keine solche Aufzählung, der Modifikator W wird später nur schwer zu finden sein.
VIELEN DANK!!!!
Und ich ..... habe der Einfachheit halber diese Zeile oben angeführt.
Ich danke Ihnen!
 

Kameraden, bitte helfen Sie bei der Alarmierung.

Ich wollte, dass, wenn die vorherige Bar mehr als 250 Pips ist, dann eine Benachrichtigung erscheint und ein Signalton erscheint, das Problem ist, dass es alle 2-3 Sekunden klingelt... Wie kann man den Indikator dazu bringen, 10 Minuten oder einen Alarm bis zum nächsten Signal zu warten?

input int Bar     = 1;
input int pips    = 250;
input bool alert  = true;
input bool sound  = true;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+


int start()
  {
  //alert criteria
int buy_o, sell_o, buy_go=0, sell_go=0;

int dig;
if (Digits==3)(dig=100);
if (Digits==5)(dig=10000);

double buy_bar=(High[Bar]-Low[Bar]);if(buy_bar>0 && Open[Bar]>Close[Bar]){buy_o=buy_bar*dig;}
if(buy_o>pips){buy_go=1;}

double sell_bar=(High[Bar]-Low[Bar]);if(sell_bar>0 && Open[Bar]<Close[Bar]){sell_o=sell_bar*dig;}
if(sell_o>pips){sell_go=1;}
Comment (buy_o,"_",sell_o);   
 if (buy_go==1) //Signal Buy
 {

if(alert==TRUE){Alert("Покупка: ",Symbol(),", Пунктов:" ,buy_o);}
if(sound==TRUE){PlaySound("alert.wav");} Comment("buy");
 }
 if (sell_go==1) //Signal Sell
 {
if(alert==TRUE){Alert("Продажа: ",Symbol(),", Пунктов:" ,sell_o);}
if(sound==TRUE){PlaySound("alert.wav");} Comment ("sell");
 }




//----------
return(0);
  }
 

Können Sie mir sagen, wie man Arrays korrekt per Referenz an eine Funktion übergibt?

#define   SIZE     50 
double   MACD[SIZE];         // Статический массив

int start()
   {
    Fun(     );
   }

int Fun(const double &MACD[    ])
   {
    for(int i=1; i<SIZE; i++)
        {
         if(MACD[i]>MACD[i-1] && MACD[i]>MACD[i+1])
              return(1);
        }
   }
 
Leo59:

Können Sie mir sagen, wie man Arrays korrekt per Referenz an eine Funktion übergibt?

#define   SIZE     50 
double   MACD[SIZE];         // Статический массив

int start()
   {
    // Необходимо перед вызовом функции заполнить массив данными
    Fun(MACD);
   }

int Fun(const double & _array[])
   {
    for(int i=1; i<ArraySize(_array)-1; i++)
        {
         if(_array[i]>_array[i-1] && _array[i]>_array[i+1])
              return(1);
        }
   return(0);
   }
So kann man es machen
 
Victor Nikolaev:
Das kann man so machen.
Dankeschön!!!!
 
Artyom Trishkin:

Erstens: Stimmen alle Parameter der getrennten MAIs in einem Fenster mit den Parametern der MAIs überein, die von einem Indikator mit drei Puffern erzeugt werden?

Zweitens: Wenn Sie MAHs in einem Fenster überlagert haben, was haben Sie im Parameter "Anwenden auf" (oder etwas Ähnlichem - ich erinnere mich nicht genau) gewählt?

Der Kater sagt, er kann seine Haare teilen - das macht ihm nichts aus ;)

1. Alle Spiele.
2. Einen solchen Parameter gibt es nicht.
In einem anderen Thread wurde mir gesagt, dass dieses Problem in MT4 unlösbar ist. :(