Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1269
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
Alexei, merci ! Il est clair maintenant que ce n'est pas possible.
C'est vrai, je n'ai pas exactement mql4. J'essaie de modifier des données par le biais de la classe CiOpen. Je suis confus par la méthode Update, qui devrait changer l'élément à une position spécifiée du tableau.
Copiez dans vos variables / tableaux et travaillez déjà avec eux.
C'est ce que j'ai fait.
Je vous suis très reconnaissant pour votre aide ! Je suis assez novice en matière de programmation.
Pendant mes études, j'ai rencontré des difficultés pour mettre en œuvre le code. Il existe un article https://www.mql5.com/ru/articles/3336. Je ne comprends pas comment la comparaison est effectuée.
if(!CompareTiks(n_tiks[i], m_ticks[k]))
Je soupçonne que "Template Data Collections" est utilisé et qu'il existe une méthode globale"Compare".Mais la liste des articles ne donne nulle part comment faire comprendre au compilateur que je dois utiliser "Compare" de "Data Template Collections". Je n'ai pas trouvé d'exemples de méthodes globales de"Data Template Collections".
L'entrée suivante dans la description de la méthode globale ne changera pas le résultat
template<typename T>
int Compare(
T x, // première valeur
T y // deuxième valeur
) ;
En conséquence, j'ai le code suivant (ou plutôt, le code a moi)
#ifndef MyInclude
#define MyInclude
//template<typename T>
//interface ICollection
//#include <Generic\Interfaces\ICollection.mqh>
template<typename T>
int Compare(
T x, // première valeur
T y // deuxième valeur
) ;
class CMarketBook
{
private :
string m_symbol ;
MqlTick m_ticks[] ;
MqlTick LastTicks[] ;
protégé :
public :
void CMarketBook::CompareTicks(void) ;
} ;
//+------------------------------------------------------------------+
//|Compare deux ticks colllection et trouve de nouveaux ticks |
//+------------------------------------------------------------------+
void CMarketBook: :CompareTicks(void)
{
MqlTick n_ticks[] ;
ulong T_begin = (TimeCurrent()-(1*20))*1000;/il y a 20 secondes
m_symbole = Symbole() ;
int Total = CopyTicks(m_symbole, n_ticks, COPY_TICKS_ALL, T_begin, 1000) ;
if (Total < 1) {printf("Failed to get ticks") ; return;}
if (ArraySize(m_ticks) == 0) {ArrayCopy(m_ticks, n_ticks, 0, 0, WHOLE_ARRAY) ; return;}
int k = ArraySize(m_ticks)-1 ;
int n_t = 0 ;
int Limit_comp = 20 ;
int Comp_success = 0 ;
// Essayer les nouveaux ticks reçus
for (int i = ArraySize(n_ticks)-1 ; i>=0 && k>=0 ; i--)
{
if ( !Compare(n_ticks[i], m_ticks[k]))
{
n_t = ArraySize(n_ticks) - i ;
k = ArraySize(m_ticks) - 1 ;
Comp_success = 0 ;
}
else
{
Comp_success += 1 ;
si (Comp_success >= Limit_comp) break ;
k-- ;
} ;
} ;
//Mémoriser les ticks reçus
ArrayResize(m_ticks, Total) ;
ArrayCopy(m_ticks, n_ticks, 0, 0, WHOLE_ARRAY) ;
//Calculer l'indice de départ des nouveaux ticks et le copier dans le tampon pour y accéder
ArrayResize(LastTicks, n_t) ;
if (n_t > 0)
{
int index = ArraySize(n_ticks) - n_t ;
ArrayCopy(LastTicks, m_ticks, 0, index, n_t) ;
} ;
} ;
#endif
Lors de la compilation, une erreur est générée - "object is passed by reference only" à la ligne if (!Compare(n_ticks[i], m_ticks[k])) pointant surn_ticks[i]
Bonjour à tous.
Je teste un conseiller expert Alpari MT4. Avant de faire le test, MT me propose de définir l'écart (soit la valeur actuelle, soit une valeur spécifique).
Chez Alpari, le spread est flottant. C'est pourquoi les paramètres de taille d'écart mentionnés ci-dessus ne me conviennent pas.
Q. Quelle fonction affiche sur l'historique les valeurs de spread pour chaque tick historique ?
Ou, comment dois-je faire pour que mon EA ouvre et ferme des ordres en tenant compte des valeurs de spreads valides au moment où l'ordre est ouvert ou fermé ?
Merci à tous pour votre aide.
Bonjour à tous.
Je teste un conseiller expert Alpari MT4. Avant de tester, MT me suggère de définir la valeur du spread (valeur actuelle ou toute autre valeur particulière proposée).
Chez Alpari, le spread est flottant. C'est pourquoi les valeurs d'écart susmentionnées ne me conviennent pas.
Q. Quelle fonction affiche sur l'historique les valeurs de spread pour chaque tick historique ?
Ou, comment faire pour que notre EA ouvre et ferme des ordres en tenant compte des valeurs de spreads valides au moment de l'ouverture ou de la fermeture de l'ordre ?
Merci à tous pour votre aide.
Vous ne pouvez pas le faire dans MT4, mais vous pouvez le faire dans MT5.
Pas dans MT 4, dans MT 5 vous pouvez
Merci beaucoup pour ces informations précieuses.
Je vais commencer à étudier le mql5. Ils disent que c'est très similaire à mql4. J'apprécierais vraiment si vous pouviez me dire comment mettre en œuvre mon idée dans mql5.
Merci beaucoup pour ces informations précieuses.
Je vais commencer à étudier le mql5. Ils disent que c'est très similaire à mql4. Je vous serais très reconnaissant si vous pouviez me dire comment mql5 met en œuvre mon idée.
Dans le mt5, vous n'avez pas besoin d'inventer quoi que ce soit.
C'est cool. Merci pour ces informations précieuses.
Si vous voulez passer rapidement de mql4 à mql5, il vaut mieux lire simultanément les manuels de mql4 et de mql5 et faire attention aux différences entre eux. Tout s'apprend par comparaison.....Bonne journée à tous !
J'ai commencé à étudier le mql5. J'ai commencé par étudier la manière dont les commandes sont ouvertes. J'ai compris que le code pour ouvrir une commande est écrit dans un fichier include séparé. J'ai maintenant maîtrisé ce code et sa variante finale pour le trading. J'ai été surpris de constater que l'ouverture des commandes dans mql4 est beaucoup plus facile et plus simple que dans mql5.
Je voudrais demander si je suis sûr d'avoir déjà le fichier avec le code pour ouvrir la commande et que je n'ai pas besoin d'écrire ce code. Si un tel fichier est disponible quelque part, il me suffit de le connecter à mon EA et de définir les valeurs des paramètres d'ordre dont j'ai besoin ? S'il existe un tel fichier, où et comment puis-je le trouver, et quel est son nom ?
Je voudrais vous demander le nom de ce fichier et où le trouver.