[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 56
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
Beschreibung des Schnittpunkts im Programm. Es scheint zu funktionieren, aber nicht so, wie es sollte. Ich runde die Variablen auf eine Stelle, damit
die Schnittmenge erfasst. Und dieses Alert() trommelt mich zusammen, solange die Mittel an der gleichen Stelle sind. Wie schaffe ich es, dass er einmal, also bis zu 5 Mal, aufgerufen wird?
//| Глобальные переменные |
//+------------------------------------------------------------------+
extern int Period_MA_Blue = 4; // Период 4-х расчётной синей МА (4 часа)
extern int Period_MA_Green = 13; // Период 13-ти расчётной зеленой МА (13 часов)
extern int Period_MA_Orange = 50; // Период 50-ти расчётной оранжевой МА (2 дня 2 часа)
double MA_Blue_EURUSD, MA_Green_EURUSD, MA_Orange_EURUSD;
string SMA_Blue_EURUSD,SMA_Green_EURUSD,SMA_Orange_EURUSD;
//+------------------------------------------------------------------+
//| Начало программы |
//+------------------------------------------------------------------+
int init(){return(0);}
int EURUSD()
{
if(SMA_Green_EURUSD == SMA_Orange_EURUSD && SMA_Blue_EURUSD > SMA_Orange_EURUSD)
{
// Если зеленая МА пересекает оранжевую МА и при этом синяя МА выше - сигнал к покупке.
Alert("Cигнал на ПОКУПКУ паре EURUSD");
return(11); // 11 - на первой паре сигнал на покупку.
}
if(SMA_Green_EURUSD == SMA_Orange_EURUSD && SMA_Blue_EURUSD < SMA_Orange_EURUSD)
{
// Если зеленая МА пересекает оранжевую МА и при этом синяя МА ниже - сигнал к продаже.
Alert("Cигнал на ПРОДАЖУ паре EURUSD");
return(10); // 20 - на первой паре сигнал на продажу.
}
}
int start()
{
//+------------------------------------------------------------------+
//| Блок работы с EURUSD |
//+------------------------------------------------------------------+
if(EURUSD() != 11 || EURUSD() != 10)
{
// Если функция EURUSD() не зафиксировала ни один из сигналов, обрабатываем данные дальше.
MA_Blue_EURUSD = iMA("EURUSD",PERIOD_H1,Period_MA_Blue,0,MODE_EMA,PRICE_CLOSE,0);
MA_Green_EURUSD = iMA("EURUSD",PERIOD_H1,Period_MA_Green,0,MODE_EMA,PRICE_CLOSE,0);
MA_Orange_EURUSD = iMA("EURUSD",PERIOD_H1,Period_MA_Orange,0,MODE_EMA,PRICE_CLOSE,0);
SMA_Blue_EURUSD = MA_Blue_EURUSD; // Преобразование int в string
SMA_Blue_EURUSD = StringSetChar(SMA_Blue_EURUSD, 6, ''); // Округление до х.хххх
SMA_Green_EURUSD = MA_Green_EURUSD; // Преобразование int в string
SMA_Green_EURUSD = StringSetChar(SMA_Green_EURUSD, 6, ''); // Округление до х.хххх
SMA_Orange_EURUSD = MA_Orange_EURUSD; // Преобразование int в string
SMA_Orange_EURUSD = StringSetChar(SMA_Orange_EURUSD, 6, ''); // Округление до х.хххх
}
}
int deinit(){return(0);}
Wenn alles an der Wurzel falsch ist, schlagen Sie Methoden vor, um die Kreuzung zu verfolgen. Danke.
Guten Tag, bitte helfen Sie, es ist eine einfache Idee, einen Alert()-Aufruf zu implementieren, wenn drei MAs sich schneiden.
Beschreibung des Schnittpunkts im Programm. Es scheint zu funktionieren, aber nicht so, wie es sollte. Ich runde die Variablen auf eine Stelle, um
um die Kreuzung zu erreichen. Und dieses Alert() trommelt für mich, solange die Mittel an der gleichen Stelle sind. Wie schaffe ich es, dass es einmal, ja bis zu 5 Mal aufgerufen wird, wenn es nicht direkt an der Wurzel liegt? Ich danke Ihnen.
Irgendwo so etwas auf einen Blick...
Entweder bin ich dumm oder es stimmt etwas mit dem Terminal nicht. Ich wollte einen EA optimieren, aber in den EA-Eigenschaften gibt es keine Registerkarte "Eingabeparameter". Ich habe versucht, meinen EA zu optimieren, aber in seinen Eigenschaften gibt es keine Registerkarte "Eingabeparameter".
https://forum.mql4.com/ru/46980/page417#702426
https://www.mql5.com/ru/forum/138609/page417#702426
Ist es möglich, ein Array in den Parametern einer Funktion zu verwenden? Ich möchte zum Beispiel eine Funktion erstellen, die Informationen in einem Array verarbeitet:
Ist es möglich, ein Array in den Parametern einer Funktion zu verwenden? Ich möchte zum Beispiel eine Funktion erstellen, die Informationen in einem Array verarbeitet:
Was sagt die Anleitung dazu?
"
Die zu übergebenden Parameter werden in Klammern hinter dem Namen der aufzurufenden Funktion angegeben und durch Kommata getrennt aufgelistet. Die Anzahl der Parameter, die an eine Funktion übergeben werden, darf 64 nicht überschreiten. Die Funktion darf auch die übergebenen Parameter nicht verwenden. In diesem Fall wird eine leere Parameterliste angegeben, d.h. öffnende und schließende Klammern werden unmittelbar hinter den Funktionsnamen gesetzt.
Die Anzahl, der Typ und die Reihenfolge der im Funktionsaufruf übergebenen Parameter müssen mit der Anzahl, dem Typ und der Reihenfolge der Formalparameter übereinstimmen, die in der Funktionsbeschreibung angegeben sind (Ausnahme ist der Aufruf einer Funktion, die Standardparameter hat - siehe Funktionsaufruf und Funktionsbeschreibung und Rückgabeoperator). Ist dies nicht der Fall, gibt der MetaEditor eine Fehlermeldung aus. Als Übergabeparameter können Konstanten, Variablen, Ausdrücke und Arrays verwendet werden. "
Ist es möglich, ein Array in den Parametern einer Funktion zu verwenden? Ich möchte zum Beispiel eine Funktion erstellen, die Informationen in einem Array verarbeitet:
Versuchen Sie dies:
https://docs.mql4.com/ru/basis/variables/formalDasselbe gilt für Close - iClose, Open - iOpen, Time - iTime Volume - iVolume usw.
Und der Indikator kann bis zu 8 Linien von 0 bis 7 zeichnen https://docs.mql4.com/ru/customind/indicatorbuffers
vielen Dank :) der Indikator wird immer noch nicht gezeichnet, ich habe Spikes in Linien wie price=iL[k]; wobei iL mein iLow ist...former Low
Jedenfalls habe ich eine Menge nützlicher Dinge herausgefunden... aber ich werde nicht weiter nachforschen...
Es gibt eine einfachere Methode, um die Neuzeichnung zu visualisieren... ohne einen benutzerdefinierten Indikator.
Was sagt das Lehrbuch dazu?
"
Die zu übergebenden Parameter werden in Klammern hinter dem Namen der aufzurufenden Funktion angegeben und durch Kommata getrennt aufgelistet. Die Anzahl der Parameter, die an die Funktion übergeben werden, darf 64 nicht überschreiten. Die Funktion darf auch die übergebenen Parameter nicht verwenden. In diesem Fall wird eine leere Parameterliste angegeben, d.h. öffnende und schließende Klammern werden unmittelbar hinter den Funktionsnamen gesetzt.
Die Anzahl, der Typ und die Reihenfolge der im Funktionsaufruf übergebenen Parameter müssen mit der Anzahl, dem Typ und der Reihenfolge der in der Funktionsbeschreibung angegebenen Formalparameter übereinstimmen (Ausnahme ist der Aufruf einer Funktion, die Standardparameter hat - siehe Funktionsaufruf und Funktionsbeschreibung und Rückgabeoperator). Ist dies nicht der Fall, gibt der MetaEditor eine Fehlermeldung aus. Als Übergabeparameter können Konstanten, Variablen, Ausdrücke und Arrays verwendet werden. "