[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 1020

 
AlexSTAL:

Où voulez-vous la paire ? Vers metatrader ???? Dans la revue de marché "Symboles", si ce DC n'en a pas, il n'est pas possible d'en ajouter.

Qu'est-ce que ça a à voir avec ça ? Vous n'avez en quelque sorte aucune idée de ce que vous voulez et de comment vous le voulez.....

Pour vous, je suppose que je pourrais dire ceci : DDE est conçu avec une fonctionnalité hyper limitée UNIQUEMENT pour le streaming des cotations en ligne. Il ne fonctionne pas avec l'historique

Le sujet des questions précédentes et de celle-ci est DDE-Sample.xls et son fonctionnement. Alex m'a dit comment faire pour que ce fichier charge les citations en temps réel.

Grâce à lui. Je voudrais demander : est-il possible d'ajouter une autre ligne avec d'autres paires de devises (AUDUSD et USDCAD) sous le tableau de la première page et de les afficher en temps réel ?

Merci d'avance....

Et que dire de l'idée de COMMENT TRANSFÉRER DES CITATIONS À EKSEL ?

 
igrok2008:

Le sujet des questions précédentes et de celle-ci est DDE-Sample.xls et son fonctionnement. AlexSTAL m'a expliqué comment faire en sorte que ce fichier charge les citations en temps réel.

Grâce à lui. Puis-je ajouter une autre ligne avec d'autres paires de devises (AUDUSD et USDCAD) sous le tableau de la première page et les afficher en temps réel ?

Je vous l'ai dit - copiez la ligne dans Excel et modifiez la formule et vous aurez n'importe quel instrument disponible dans MT4.
 
si alex était payé 100 cents pour chaque ligne d'indice :) - alors va te faire foutre et travaille :)
 
Vinin:
La plupart des gens n'ont pas besoin de ce bouton
Mais il y a tellement de textes, d'insultes et de révélations... Ennuyeux... :)
 
pension:

Pour écrire correctement la chouette, il faut connaître le fonctionnement de l'ensemble du système terminal.

Introduction. Il y a un programme principal. Il y a les sous-routines-fonctions. Il y a des opérateurs. Tous les opérateurs sont exécutés un par un, selon l'algorithme. C'est très clair. C'est un axiome.

Maintenant. Nous avons une copie de la chouette en .mq4 et une copie en .ex4 en conséquence. On traîne cette chouette sur différents tableaux. Supposons que nous ayons deux graphiques de la même paire avec des TF différentes.

Question 1 Où sont stockés les codes de programme des Hiboux alors ? Dans les modèles de graphiques ?

Question 2 : Tick arrive. Quelle est la séquence d'exécution des Hiboux ? S'il s'agit d'un seul (c'est probablement le cas, et seuls les blocs correspondants de valeurs de variables sont épinglés à chaque graphique, et l'interprète du langage ne substitue les valeurs que lors du déroulement), alors quel est le premier, quel est le second, etc. Ils ne peuvent pas se dérouler en parallèle, n'est-ce pas ?

Peut-être quelqu'un peut-il m'indiquer où cela est décrit dans la littérature. Probablement raté, je n'ai pas fait attention. Ou peut-être cette question a-t-elle déjà été examinée.

Je vous remercie tous d'avance pour votre réponse.

--J'ai le hibou au format .mq4 et .ex4, respectivement, une copie de chaque.

Les fichiers de type mq4 sont le code source d'un programme. Les fichiers de ce type contiennent le code source de tous les types de programmes (Expert Advisors, scripts et indicateurs).

Les fichiers ex4 sont des programmes compilés prêts à être utilisés dans le terminal du client.

-Où sont stockés les codes de programme des Hiboux alors ? Dans les modèles de graphiques ?

Dans les fichiers ex4 (c'est-à-dire compilés dans un langage que le programme comprend) près de la source mq4.

-Tick entre en jeu. Quelle est la séquence des PSB ?

Vous pouvez le vérifier vous-même en ajoutant une alerte ("Heure du hibou n°1 = " + TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS)) au début de la fonction ;

dans un autre alert("Hibou #2 Heure = " + TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS)) ;

 

Bonjour.

Comment se fait-il que Close [ i ] soit appelé dans une fenêtre d'indicateur séparée, mais pas dans l'outil principal, mais dans l'outil nommé nom ?

#propriété indicator_separate_window

////////////////

MovingBuffer[i]=iMA(name,0,Period1,Shift,modeMA,PRICE_OPEN,i) ; // - calcul de la moyenne mobile du nom de l'instrument

NameBuffer[i]= Close [i ] ; // - faux, parce que cela va entrer dans la cloche de l'instrument dans la fenêtre principale...

/////////////////

 
Rossi:

Bonjour.

Comment se fait-il que Close [ i ] soit appelé dans une fenêtre d'indicateur séparée, mais pas dans l'outil principal, mais dans l'outil nommé nom ?

#propriété indicator_separate_window

////////////////

MovingBuffer[i]=iMA(name,0,Period1,Shift,modeMA,PRICE_OPEN,i) ; // - calcul de la moyenne mobile du nom de l'instrument

NameBuffer[i]= Close [i ] ; // - faux, parce que cela va entrer dans la cloche de l'instrument dans la fenêtre principale...

/////////////////

MovingBuffer[i]=iMA(name,0,Period1,Shift,modeMA,PRICE_OPEN,iBarShift(name,0,Time[i],false)) ; // - вычисление скользящей средней инструмента name

NameBuffer[i]= iClose(name,0,iBarShift(name,0,Time[i],false)) ; // - неправильно, потому что введет клозе инструмента в основном окне...

LIRE

https://book.mql4.com/ru/functions/timeseries

 
costy_:

--... Le Tic entre en scène. Quelle est la séquence d'exécution de l'OWS ?

Vous pouvez vérifier vous-même en ajoutant un alert("Heure du hibou n°1 = " + TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS)) au début de la fonction ;

dans un autre alert("Hibou #2 Heure = " + TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS)) ;



trop grossier, j'utiliserais GetTickCount(), et remettrais à zéro un compteur dans tous les codas de façon synchrone au début d'une nouvelle minute, et ensuite j'enregistrerais tous les messages.
 

Voici une question. J'ai un conseiller expert qui ouvre et ferme des positions par lui-même. Mais lorsque j'ouvre une position manuellement, le testeur ne ferme pas la position ouverte manuellement lorsque le signal de fermeture arrive. Quel pourrait être le problème. Le code est joint pour fermer une position.

for(int i=0;i<OrdersTotal();i++)

{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;

if(OrderType()==OP_BUY)
{
if (Open[1]<Open[2])

OrderClose(OrderTicket(),OrderLots(),Bid,3,White);

break;
}


if(OrderType()==OP_SELL)

{

if (Open[1]>Open[2])

OrderClose(OrderTicket(),OrderLots(),Ask,3,White); 

break;
        }
       } 
    }
 
 
antoma2:

Voici une question. J'ai un conseiller expert qui ouvre et ferme des positions par lui-même. Mais lorsque j'ouvre une position manuellement, le testeur ne ferme pas la position ouverte manuellement lorsque le signal de fermeture arrive. Quel pourrait être le problème. Le code est joint pour fermer une position.

La fonction OrderMagicNumber() renvoie toujours 0 pour les positions ouvertes manuellement. C'est-à-dire que la variable MAGICMA dans l'EA n'est pas égale à 0.
Raison: