Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 738
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
Le message apparaît toujours à la 12e minute.
Insérer Print, au début de la fonction où le tableau est rempli
et montrer le nombre de valeurs dans la deuxième dimension
Je peux dire que NomNews entre dans la boucle While déjà dans un état supérieur à 999. Vous devez alors trouver pourquoi cela se produit et réinitialiser cette variable quelque part.
Pour le vérifier, écrivez-le au début de la boucle :
Oui, à la 11ème minute, l'empreinte est de 1000.
Insérer Print, au début de la fonction où le tableau est rempli
et montrer le nombre de valeurs dans la deuxième dimension
Je l'ai inséré au débutde la boucle While et j'ai obtenu l'infiniRange = 1000. L'ai-je inséré au mauvais endroit ?
Quel est ce nombre (ou cette fonction ?): datetime TimeNewsFunck(int nomf)
{
chaîne de caractères s=NewsArr[0][nomf] ;
string time=StringConcatenate(StringSubstr(s,0,4), ".",StringSubstr(s,5,2), ".",StringSubstr(s,8,2), " ",StringSubstr(s,11,2), " :",StringSubstr(s,14,4)) ;
return((datetime)(StringToTime(time) + GMTplus*3600))
}
Et où prend-il la valeur de l'int nomf ? Je n'ai pas pu le trouver.
Je l'ai inséré au débutde Whileloop et j'ai obtenu infiniteRange = 1000. L'ai-je mis au mauvais endroit ?
Et quel est ce nombre (ou cette fonction ?): datetime TimeNewsFunck(int nomf)
{
chaîne de caractères s=NewsArr[0][nomf] ;
string time=StringConcatenate(StringSubstr(s,0,4), ".",StringSubstr(s,5,2), ".",StringSubstr(s,8,2), " ",StringSubstr(s,11,2), " :",StringSubstr(s,14,4)) ;
return((datetime)(StringToTime(time) + GMTplus*3600))
}
Et où prend-il la valeur de l'int nomf ? Je ne l'ai pas trouvé.
Et puis il y a la fonction que j'ai essayé de découvrir sans succès. Peut-elle être la source du problème ?
Et puis il y a une fonction que je n'ai pas réussi à comprendre, malgré tous mes efforts. C'est peut-être là que réside le problème ?
Seul l'auteur pourra le découvrir lui-même. Vous feriez mieux d'envoyer le code de OnTick()
Oui, à la 11ème minute, il a donné l'empreinte 1000.
Essayez de remplacer
avec cette ligne.
Excès((2*psd*usd)*((2*psd*usd)-C))/(C-1)) dans la formule.
Pour exponentialiser : ^0,5 n'est pas *0,5
S'il n'y a pas une seule transaction sur le symbole et le majik regardés, ou s'il n'y a pas un seul profit ou une seule perte, ou s'il n'y a qu'une seule paire (C=1), nous obtiendrons la division par 0.
Avant la formule elle-même, vous devez vérifier que psd et usd sont > 0, et C !=1
Les paires rentables sont calculées avec un bénéfice > 1, une perte < 1, avec un bénéfice=1 ne sont pas analysées, c'est-à-dire que 1 doit aussi être inclus quelque part dans tel ou tel groupe.
Dans votre fonction, il serait préférable de sélectionner d'abord les numéros de transaction correspondant au symbole et au numéro magique, puis de vérifier si leur numéro a changé, si c'est le cas - recalculer zn, sinon - retourner zn (dans ce cas, zn n'est pas remis à zéro et la vérification != 0 ne sera pas nécessaire lors de l'impression).
Le hibou cesse de fonctionner, car il s'appuie sur les variables ww et nn, et lorsque votre fonction fonctionne, elles changent et brisent l'algorithme du hibou.
Rien n'aurait été compilé s'il y avait eu une erreur de conception du code.Je ne peux que vous remercier. C'est le seul endroit de Runet où ils m'ont aidé.
L'imprimante génère maintenant le message suivant "Stop_Ma_v_5.1 EURUSD,M15 : == Z-count equals = -nan(ind)" . Pouvez-vous m'indiquer ce que cela signifie et le code qui doit renvoyer le numéro ?
Code :
Mql5 les gars, pouvez-vous m'aider à faire une demande pour fermer une position dans un compte de couverture ? Situation : nous avons ouvert une position BUY, nous devons la fermer avec une limite de vente. Question : Comment puis-je écrire correctement une demande, pour fermer exactement la position choisie, et ne pas ouvrir de nouveaux SELL verrouillant BUY ? Veuillez écrire un morceau de code avec des commentaires ! Merci d'avance !
Clôture par un ordre ouvert d'un autre ordre ouvert pour le même symbole mais en sens inverse.
boolOrderCloseBy(
intticket,// numéro de la commande à clôturer
intopposite,// numéro de l'ordre opposé
couleurarrow_color// couleur
) ;
Paramètres
billet
[Numéro d'ordre unique de l'ordre à clôturer.
en face de
[Un numéro de séquence unique de l'ordre opposé.
couleur de la flèche
[La couleur de la flèche de fermeture sur le graphique. Si ce paramètre est absent ou si sa valeur est CLR_NONE, la flèche n'apparaît pas dans le graphique.
Valeur retournée
Retourne vrai si la fonction a réussi ou faux s'il y a eu une erreur. Pour obtenir les informations sur les erreurs, appelez GetLastError().
Exemple :
si(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
{
OrderCloseBy(order_id,opposite_id;)
retour(0);
}
P.S. Ce fil de discussion n'analyse que MQL4
Je ne peux que vous remercier. C'est le seul endroit dans Runet, où ils ont aidé.
L'imprimante génère maintenant le message suivant : "Stop_Ma_v_5.1 EURUSD,M15 : == Z-Account Equals = -nan(ind)". Pouvez-vous m'indiquer ce que cela signifie et le code qui doit renvoyer le numéro ?
Code :
La fermeture d'un ordre ouvert par un autre ordre ouvert pour le même instrument, mais dans la direction opposée.
boolOrderCloseBy(
intticket,// numéro de la commande à clôturer
intopposite,// numéro de l'ordre opposé
couleurarrow_color// couleur
) ;
Paramètres
billet
[Un numéro séquentiel unique de l'ordre en cours de clôture.
en face de
[Un numéro de séquence unique de l'ordre opposé.
couleur de la flèche
[La couleur de la flèche de fermeture sur le graphique. Si le paramètre est absent ou si sa valeur est CLR_NONE, la flèche n'apparaît pas dans le graphique.
Valeur retournée
Retourne vrai si la fonction a réussi ou faux s'il y a eu une erreur. Pour obtenir les informations sur les erreurs, appelez GetLastError().
Exemple :
si(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
{
OrderCloseBy(order_id,opposite_id;)
retour(0);
}
P.S. Ce fil de discussion n'analyse que MQL4.
Non. Toutes les questions sur mql4 ainsi que sur mal5 sont traitées ici dans ce fil, car le but principal était d'aider non seulement avec les algorithmes et les codes, mais aussi de faciliter la migration de mql4 à mql5.