[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 56
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Description de l'intersection dans le programme. Il semble fonctionner, mais pas comme il le devrait. J'arrondis les variables à un chiffre pour que
puisse détecter l'intersection. Et cette Alert() me tambourine tant que les moyens sont à la même position. Comment faire pour qu'il soit appelé une fois, ou jusqu'à 5 fois.
//| Глобальные переменные |
//+------------------------------------------------------------------+
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);}
Si tout est faux à la racine, proposez des méthodes pour suivre l'intersection. Merci.
Bon après-midi, s'il vous plaît aidez, il y a une idée simple pour mettre en œuvre un appel Alert() lorsque trois MAs se croisent.
Description de l'intersection dans le programme. Il semble fonctionner, mais pas comme il le devrait. J'arrondis les variables à un chiffre pour...
pour attraper l'intersection. Et cet Alert() tambourine pour moi tant que les moyens sont à la même position. Comment faire pour qu'il soit appelé une fois, voire jusqu'à 5 fois. Si ce n'est pas à la racine, proposez des méthodes pour suivre l'intersection. Merci.
Quelque chose comme ça en un coup d'oeil...
Soit je suis stupide, soit il y a un problème avec le terminal. Je voulais optimiser un EA, mais il n'y a pas d'onglet "paramètres d'entrée" dans les propriétés de l'EA. J'ai essayé d'optimiser mon EA, mais il n'y a pas d'onglet "paramètres d'entrée" dans ses propriétés.
https://forum.mql4.com/ru/46980/page417#702426
https://www.mql5.com/ru/forum/138609/page417#702426
Est-il possible d'utiliser un tableau dans les paramètres d'une fonction ? Par exemple, je veux créer une fonction qui traite les informations contenues dans un tableau :
Que dit le tutoriel ici?
"
Lesparamètres à passer sont indiqués entre parenthèses après le nom de la fonction à appeler et sont énumérés, séparés par des virgules. Le nombre de paramètres passés à une fonction ne doit pas dépasser 64. La fonction peut également ne pas utiliser les paramètres passés. Dans ce cas, une liste de paramètres vide est indiquée, c'est-à-dire que les parenthèses ouvrantes et fermantes sont placées immédiatement après le nom de la fonction.
Le nombre, le type et l'ordre des paramètres passés dans l'appel de la fonction doivent coïncider avec le nombre, le type et l'ordre des paramètres formels, spécifiés dans la description de la fonction (l'exception est l'appel d'une fonction, qui a des paramètres par défaut - voir Appel de fonction et Description de fonction et opérateur de retour). Si cette coïncidence n'existe pas, le MetaEditor affichera un message d'erreur. Les constantes, les variables, les expressions et les tableaux peuvent être utilisés comme paramètres passés. "
Est-il possible d'utiliser un tableau dans les paramètres d'une fonction ? Par exemple, je veux créer une fonction qui traite les informations contenues dans un tableau :
Essayez ça :
https://docs.mql4.com/ru/basis/variables/formalIl en va de même pour Close - iClose, Open - iOpen, Time - iTime Volume - iVolume, etc.
Et l'indicateur peut dessiner jusqu'à 8 lignes de 0 à 7 https://docs.mql4.com/ru/customind/indicatorbuffers.
merci beaucoup :) l'indicateur n'est toujours pas dessiné, j'ai des pics dans des lignes comme price=iL[k] ; où iL est mon iLow...former Low
Bref, j'ai trouvé beaucoup de choses utiles... mais je ne vais pas creuser plus loin...
il existe une méthode plus simple pour visualiser le redécoupage... sans indicateur personnalisé.
Que dit le manuel ici?
"
Lesparamètres à passer sont indiqués entre parenthèses après le nom de la fonction à appeler et sont énumérés, séparés par des virgules. Le nombre de paramètres passés à la fonction ne doit pas dépasser 64. La fonction peut également ne pas utiliser les paramètres passés. Dans ce cas, une liste de paramètres vide est indiquée, c'est-à-dire que les parenthèses ouvrantes et fermantes sont placées immédiatement après le nom de la fonction.
Le nombre, le type et l'ordre des paramètres passés dans l'appel de la fonction doivent coïncider avec le nombre, le type et l'ordre des paramètres formels, spécifiés dans la description de la fonction (l'exception est l'appel d'une fonction, qui a des paramètres par défaut - voir Appel de fonction et Description de fonction et opérateur de retour). Si cette coïncidence n'existe pas, le MetaEditor affichera un message d'erreur. Les constantes, les variables, les expressions et les tableaux peuvent être utilisés comme paramètres passés. "
Essayez de cette façon :
https://docs.mql4.com/ru/basis/variables/formalErreur "FractalsUP - types incompatibles" lors de la tentative de compilation dans EA.
Les fonctions et les tableaux déclarés sont stockés dans les fichiers d'inclusion, le cas échéant.