Une question pour les experts MQL - page 9

 

Bonjour. Aidez-moi à trouver une erreur dans le code.

C'est le programme initial du tutoriel.

Il ne compte pas les tiques. Pourquoi est-ce que c'est comme ça ?

Merci.

//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int Count=0 ; // Variable globale.
//--------------------------------------------------------------------
int init() // Special init()
{
Alert ("The init() function worked at start") ; // Message
return ; // Exit init()
}
//--------------------------------------------------------------------
int start() // Special init()
{
double Price = Ask ; // Variable locale Count.
Count++ ; // Compteur de tick
Alert("New tick ",Count," Price = ",Price);// Message
return ; // Exit start()
}
//--------------------------------------------------------------------
int deinit() // Fonction spéciale deinit()
{
Alert ("Deinit() triggered during upload") ; // Message
return ; // Exit deinit()
}
//--------------------------------------------------------------------

 

Voici ce qui est en train de sortir

 

Bonjour.

Le serveur de la société de courtage où j'ai un compte réel est configuré de telle sorte que si aucune cotation n'est reçue sur le graphique de l'instrument pendant plus de 3 minutes (temps différent pour les différents symboles), une interdiction de transaction est générée et au lieu d'exécuter un ordre d'ouverture/fermeture ou de mise à niveau, le serveur répond NO PRICE (jusqu'à ce qu'une cotation soit reçue). En même temps, un message s'affiche dans le journal :

2012.04.20 13:42:07 '245---00' : ordre d'achat de 0.2 JOK2 ouvrant à 0.00 sl : 0.00 tp : 0.00 échoué [Hors guillemets].

-------------------

Il s'avère donc que travailler avec l'EA multi-devises de cette société de courtage dans MT4 est impossible. Surtout pendant les heures de nuit de faible liquidité - une ou deux positions sont encore ouvertes - et deux ou trois autres sont rejetées !

Je ne comprends pas pourquoi ils ont fait cela. Le support ne répond pas vraiment, ils se tortillent comme des vers sous la botte, et se défaussent sur les développeurs mql - en déclarant souvent que c'est (littéralement :) une caractéristique glitchy de la plateforme mt4. Très bien, laissons-les à leur conscience.

S'il vous plaît, conseillez-moi comment retourner au terminal cette étrange interdiction " ouverture à 0.00 sl : 0.00 tp : 0.00 failed [Off quotes]" - ainsi je pourrais vérifier les 3-4 devises dont j'ai besoin pour "NO PRICE" en programmatique avant l'ouverture et seulement alors l'EA enverrait des ordres pour ouvrir/fermer des positions! Leur support technique ne donne pas de réponse à cette question ...

 
Rita:

Je ne comprends pas pourquoi on procède de cette façon.

C'est une béquille. C'est généralement une béquille pour les DC qui ont des problèmes avec les retards de devis.

Si vous voulez le surveiller vous-même, vous devez surveiller tous les ticks pour tous les symboles négociés et introduire à l'avance une interdiction dans le conseiller expert.

 
greysoldier:

Bonjour. Aidez-moi à trouver une erreur dans le code.

C'est le programme initial du tutoriel.

Il ne compte pas les tiques. Pourquoi est-ce que c'est comme ça ?

Merci.

//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int Count=0 ; // Variable globale.
//--------------------------------------------------------------------
int init() //fonction spéciale init()
{

}
//--------------------------------------------------------------------
int start() // fonction spéciale start()
{
double Price = Ask ; // Variable locale.

Count++ ; // Compteur de tic-tac

Alert("New tick ",Count," Price = ",Price);// Message
return ; // Quitter start()
}
//--------------------------------------------------------------------
int deinit() // Fonction spéciale deinit()
{

}
//--------------------------------------------------------------------

donc
 
TheXpert:

C'est une béquille. Habituellement, ce genre de chose est introduit dans les sociétés de courtage qui ont des problèmes de retard dans les devis.

Si nous voulons le surveiller nous-mêmes, nous devons surveiller tous les ticks pour tous les symboles négociés et introduire l'interdiction dans le conseiller expert à l'avance.


Il s'avère donc que nous ne pouvons pas paramétrer par programme le fonctionnement correct de l'EA multidevises - pour l'ouverture/la fermeture simultanée des positions de plusieurs devises ?

D'autant plus qu'il y a un intervalle différent pour les différentes devises (et il y a des centaines d'instruments dans MT4 !) - dans le serveur il y a un intervalle différent avant l'interdiction "NO PRICE" et ces intervalles changent pendant la journée !

Que disent les développeurs de la plateforme mt4 ? Comment un EA multi-devises peut-il fonctionner normalement dans de telles conditions avec des [Off quotes] fréquentes, notamment la nuit ( voir mon post ci-dessus)?

 
Rita:

En particulier, pour différentes devises (et il y a plusieurs centaines d'instruments dans MT4 !) - le serveur fixe différents intervalles au moment de l'interdiction "NO PRICE".

C'est vrai.

et ces intervalles changent au cours d'une journée !

C'est peu probable. Ils semblent être câblés dans l'outil.

 

J'ai posé des questions à des débutants et aucune réponse, peut-être que quelqu'un ici peut aider.

Bonjour, conseil d'aide, a écrit un hibou, il doit périodiquement ouvrir 2 ordres à la fois le problème est que pas toujours ouvre les deux ordres, slippage je mets et 3 et 5 et 10, mais toujours pas non oui et ouvrir un seul. Je n'arrive pas à comprendre comment organiser un gardien qui garderait la trace des ouvertures et, le cas échéant, ouvrirait une commande manquante "oubliée" ?

 
Montrez-moi la partie du code où vous définissez les conditions d'ouverture de ces deux ordres en même temps...
 
Ouvrez un ordre, vérifiez son ouverture, s'il s'ouvre, ouvrez un deuxième ordre avec une vérification...