Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1230
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ihr Beispiel enthält viele Fehler
sollte es geben:
hier sind die Preise nicht normalisiert OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-SL*Point,Bid+TP*Point,"Mein Auftrag",MagicNumber,0,clrGreen);
Hier verstehe ich die Logik nicht, warum OnTick() verlassen werden sollte, wenn die Bedingung falsch ist.
wir sollten wahrscheinlich die Schleife fortsetzenund nur die Anzahl der Bestellungen zählen
Ihr Beispiel ist von der Logik her sehr einfach und es wäre schwierig, es für andere Aufgaben zu ändern... Vielleicht will er ein wenig nachhaken.
Es ist noch früh)))) Es wird eine Menge auf einmal sein. Das ist nicht sehr sinnvoll))))) Und so ja, natürlich nach Berechnungen für alle, dass Sendeauftrag Normalisierung notwendig ist))))
Da die Bedingung von Auftrag, wenn es keine Aufträge auf dem aktuellen Instrument mit unserer Magie, stellen wir den Auftrag. Und dann erreicht die Bedingung den Auftrag erst, wenn er geschlossen wird.
PS mag den Zustand nicht, wenn nicht.
Guten Tag, können Sie mir sagen, wie man den Ausdruck
Seien Sie gegrüßt, können Sie mir sagen, wie man diesen Ausdruck richtig liest?
Wennsymbol leer ist, wird der Wert des aktuellen Symbols an die Variable sym zurückgegeben, und wenn es nicht leer ist, wird der Wert an die Variable sym zurückgegeben
Wenn die Variable symbol leer ist, wird der Wert des aktuellen Diagrammsymbols an die Variable sym zurückgegeben, und wenn sie nicht leer ist, wird ihr Wert an die Variable sym übergeben
Ich danke Ihnen!
Seien Sie gegrüßt, können Sie mir sagen, wie man diesen Ausdruck richtig liest?
Er lautet: Weisen Sie Symbol() der Variablen zu, wenn Symbol NULL ist, andernfalls weisen Sie Symbol der Variablen zu.
Die Entsprechung dieses Eintrags
Der einzige Unterschied ist die Anzahl der Zeilen.Liest sich wie folgt: Weisen Sie Symbol() eine Variable zu, wenn Symbol NULL ist, ansonsten weisen Sie Symbol einen Wert zu.
Äquivalent zu diesem Eintrag
Der einzige Unterschied ist die Anzahl der Zeilen.Ich danke Ihnen!
Was dann, zum Beispiel, haben Sie ein Fenster offen nicht Eurobucks, aber Eurofunt, vergleichen Sie das Symbol der ausgewählten Reihenfolge mit Eurobucks, wenn wahr, dann gibt es einen Auftrag auf Eurobucks, und wenn unsere Magie, dann von der Onstart-Funktion zurückkehren, und wenn nicht, dann setzen wir einen Auftrag auf Eurobucks, aber Kloz, High, Asc, Bid haben Sie für Eurofunt. wird ein Fehler bei der Eröffnung von Aufträgen, weil Angebot und Nachfrage für diese instuents sind unterschiedlich. Und Symbol() gibt das Symbol des aktuellen Fensters zurück und es tritt kein Fehler auf.
Verwenden Sie die Vorlage aus dem Meta-Editor. Oben links gibt es eine Schaltfläche Neu. Die Funktion OnStart wird immer noch verwendet, aber das ist nicht richtig, und OnStart ist für Skripte. Die richtige Vorlage.
Der richtige Code. Ihr Bestellkommentar fehlt, und der Magier ist in Ihrem Code nicht berücksichtigt. In den Warnungen zur Eröffnungszeile beachten Sie Implizite Typkonvertierung einer Zahl in einen String!!!
Ja, es funktioniert so, wie es sollte. Danke!!!
Ich wusste nicht, dass es so wichtig ist, eine Vorlage zu verwenden. OnStart in der Tat. Ich hatte die Grundstruktur falsch verstanden. Nun, das werde ich jetzt wissen.
Ja, es funktioniert so, wie es sollte. Danke! (Lacht)
Ich wusste nicht, dass es so wichtig ist, eine Vorlage zu verwenden. OnStart, in der Tat. Ich hatte die Grundstruktur falsch verstanden. Nun, das werde ich jetzt wissen.
Nun, und alles, was Sie in die Funktionen der Arbeit mit Aufträgen setzen, sollte normalisiert werden. Wenn dem Dezimalpunkt 6 Ziffern folgen, wird die Bestellung nicht aufgegeben und es wird ein Fehler erzeugt.
Suchen Sie das Thema mit "Nur nützliche Funktionen von KimIV" oder schlagen Sie es in KodoBase nach.
Igor Makanu schrieb über weitere Fehler. Und die Funktionen von Kim sind für den Anfang wirklich nützlich. Die Kommentare sind eindeutig.
Bitte um Hilfe. Warum ergibt der Test einen Fehler - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:123456 GBPUSD,M30: array out of range in '123456.mq4' (59,13)"" ????
#property link "2020, Grey".
#property link "uirnP0215@mail.ru"
#Eigenschaft Version "1.00"
#Eigenschaft streng
Eingabe von Doppellosen = 0,01;
Eingabe int Magic = 1546;
double ibufUP[];
double ibufDN[];
//+------------------------------------------------------------------+
Experteninitialisierungsfunktion //|
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Experten-Tick-Funktion |
//+------------------------------------------------------------------+
void OnTick()
{
CountFractals();
if(ibufUP[3]>0)
{
if(!OrderSend(Symbol(), OP_SELL, lots, Bid, 30, 0, 0, "", Magic, 0, clrRed))
Print("Verkaufsauftrag konnte nicht geöffnet werden");
}
if(ibufDN[3]>0)
{
if(!OrderSend(Symbol(), OP_BUY, lots, Bid, 30, 0, 0, "", Magic, 0, clrGreen))
Print(" Kaufauftrag konnte nicht geöffnet werden");
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void CountFractals()
{
for(int i=150; i>=0; i--)
{
ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i);
ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i);
}
}
//+------------------------------------------------------------------+
Bitte um Hilfe. Warum ergibt der Test einen Fehler - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:123456 GBPUSD,M30: array out of range in '123456.mq4' (59,13)"" ????
#property link "2020, Grey".
#property link "uirnP0215@mail.ru"
#Eigenschaft Version "1.00"
#Eigenschaft streng
Eingabe von Doppellosen = 0,01;
Eingabe int Magic = 1546;
double ibufUP[];
double ibufDN[];
//+------------------------------------------------------------------+
Experteninitialisierungsfunktion //|
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Experten-Tick-Funktion |
//+------------------------------------------------------------------+
void OnTick()
{
CountFractals();
if(ibufUP[3]>0)
{
if(!OrderSend(Symbol(), OP_SELL, lots, Bid, 30, 0, 0, "", Magic, 0, clrRed))
Print("Verkaufsauftrag konnte nicht geöffnet werden");
}
if(ibufDN[3]>0)
{
if(!OrderSend(Symbol(), OP_BUY, lots, Bid, 30, 0, 0, "", Magic, 0, clrGreen))
Print(" Kaufauftrag konnte nicht geöffnet werden");
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void CountFractals()
{
for(int i=150; i>=0; i--)
{
ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i);
ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i);
}
}
//+------------------------------------------------------------------+
Fügen Sie zunächst einen Dekrementzähler in der FunktionCountFractals hinzu.