Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1269

 
Aleksei Lesnikov:

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-le dans vos variables / tableaux et travaillez déjà avec eux.
 
Valeriy Yastremskiy:
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]

Пишем скальперский стакан цен на основе графической библиотеки CGraphic
Пишем скальперский стакан цен на основе графической библиотеки CGraphic
  • www.mql5.com
Именно с этой, улучшенной и дополненной версией мы и начнем работать, чтобы постепенно превратить ее в скальперский стакан цен. Краткий обзор графической библиотеки CPanel Созданию пользовательских интерфейсов в MQL5 посвящено много статей. Среди них особенно выделяется серия Анатолия Кажарского "Графические интерфейсы", после которой сложно...
 
Lors de l'utilisation de l'internet mobile, pas de SendNotification... Lorsqu'on se connecte au wi-fi, ils viennent (même ceux qui ne venaient pas lorsqu'on utilisait l'internet mobile). Est-ce un problème du côté du FAI ? Je pense que toutes les permissions sont activées dans les paramètres de l'Internet mobile...
 

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.

 
ANDREY:

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.

 
Vladimir Pastushak:

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.

 
ANDREY:

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.

Vous n'avez pas besoin de faire quoi que ce soit avec mt5.
Tout se passe automatiquement et l'EA se négocie avec un spread flottant dans le testeur de stratégie.
 
Vladislav Andruschenko:
Dans le mt5, vous n'avez pas besoin d'inventer quoi que ce soit.
Tout se passe automatiquement et l'EA se négocie avec un spread flottant dans le testeur de stratégie.

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.