[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 214
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
Bon après-midi. J'ai écrit une fonction qui doit retourner le nombre de barres lorsqu'un ordre a été ouvert :
int BarLastOpenPose()
{
datetime t ;
for (int i=0 ; i<OrdersTotal() ; i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue ;
if (OrderType()>1) continue ;
if (t<OrderOpenPrice()) t=OrderOpenPrice() ;
}
}
return (iBarShift(Symbol(),Period(),t,true)) ;
}
Cependant, il renvoie toujours -1. Où ai-je fait une erreur ? Merci d'avance.
Bon après-midi. J'ai écrit une fonction qui doit retourner le nombre de barres lorsqu'un ordre a été ouvert :
int BarLastOpenPose()
{
datetime t ;
for (int i=0 ; i<OrdersTotal() ; i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue ;
if (OrderType()>1) continue ;
if (t<OrderOpenPrice()) t=OrderOpenPrice() ;
}
}
return (iBarShift(Symbol(),Period(),t,true)) ;
}
Cependant, il renvoie toujours -1. Où ai-je fait une erreur ? Merci d'avance.
Peut-être que c'est comme ça :
return(iBarShift(Symbol(),Period(),t)) ; c'est-à-dire, sans vrai.
Bon après-midi. J'ai écrit une fonction qui doit retourner le nombre de barres lorsqu'un ordre a été ouvert :
int BarLastOpenPose()
{
datetime t ;
for (int i=0 ; i<OrdersTotal() ; i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue ;
if (OrderType()>1) continue ;
if (t<OrderOpenPrice()) t=OrderOpenPrice() ;
}
}
return (iBarShift(Symbol(),Period(),t,true)) ;
}
Cependant, il renvoie toujours -1. Où ai-je fait une erreur ? Merci d'avance.
La variable t se voit attribuer le prix d'ouverture, bien qu'elle soit déclarée comme un entier.
La variable t est affectée au prix d'ouverture, bien qu'elle soit déclarée comme un nombre entier.
Comment décrire un tel état ?
Veuillez me conseiller.
Si un extremum (par exemple un haut) de la première barre de 5 minutes de la journée en cours coïncide avec un extremum de la journée en cours (sur le journalier), alors nous faisons quelque chose. Comment le décririez-vous ?
aidez les gens bien !
Bonjour, chers utilisateurs de la ressource !
Aidez-nous, nous sommes confrontés à la lecture/écriture d'un nombre réel dans un fichier.
La tâche consiste à lire le solde d'un fichier, si le solde actuel est supérieur - écraser le fichier.
Le problème est qu'il produit toujours 0 (zéro).
Avec l'écriture/la lecture des nombres entiers, je n'ai pas trouvé de tels problèmes.
Voici le code :
double équilibre ;
int file_handle_bala ;
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_READ) ;
//copie de la position, dans le cas d'un fichier vide - position = 0
si (FileSize(file_handle_bala)>0)
{
balance=FileReadDouble(file_handle_bala,DOUBLE_VALUE) ;
Alert(balance) ; ------------------------------------- C'est ici que le zéro doit être écrit, bien que le solde précédemment enregistré doive être écrit.
FileClose(file_handle_bala) ;
if (AccountBalance()>balance) ------------------------------------ et cette règle ne fonctionne pas car l'alerte ci-dessous n'émet rien
{
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE) ;
balance=AccountBalance() ;
Alerte (solde) ;
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE) ;
FileClose(file_handle_bala) ;
}
}
else // si le fichier est vide
{
FileClose(file_handle_bala) ; // d'abord, fermer le fichier ouvert
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE) ; //ouvert en écriture
balance=AccountBalance() ;
FileWriteDouble(file_handle_bala,balance,DOUBLE_VALUE) ;
FileClose(file_handle_bala) ;
}
Merci beaucoup plus tôt !!!
Notez cette ligne
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE) ;
1. Vous devriez être plus respectueux et amical pour publier votre code.
2. Vous essayez d'écrire un entier de 8 octets. MQL4 ne dispose pas d'un tel type de données.
\Qu'est-ce que j'ai fait de mal ? Pourquoi tant d'erreurs ? (J'ai besoin de connaître la valeur maximale de l'indice de référence).(J'ai besoin de connaître la valeur maximale de l'indicateur dans les 10 dernières barres). Merci d'avance.
Bonne journée à tous !
Je suis en train d'écrire mon premier bot, et en même temps je me familiarise avec MQL. Je rencontre le problème suivant lors des tests :
L'ordre OP_BUYSTOP est exécuté juste après le placement de l'ordre, bien que, à en juger par le graphique, le prix n'atteigne pas la valeur cible (voir ci-dessous).
USDJPY,M5 (visuel)
Date 2011.09.19
Heure 02:15
Ouvert 76.903
Haut 76.909
Bas 76.890
Fermer 76.890
Volume 66
Je teste toutes les tiques.
Peut-être que je ne comprends pas correctement l'ordre OP_BUYSTOP ? Pour acheter si le prix dépasse une certaine valeur, non ?
Voici un bout de code source qui passe une commande
int ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, SL, TP) ;
\Qu'est-ce que j'ai fait de mal ? Pourquoi tant d'erreurs ? (J'ai besoin de connaître la valeur maximale de l'indicateur pour les 10 dernières barres). Merci d'avance.
Vous déclarez la fonction Hi :
dans la fonction start()