Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 97
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
Type, int ou date
Une fois, j'ai créé une fonction qui envoie des messages à une fenêtre d'indicateur vide. Vous pouvez ajuster les couleurs des lignes affichées. C'est déjà débogué. Si vous en avez besoin, je peux le partager.
Je regarderai volontiers votre code, Artem. Pour tester l'impression, ce n'est pas l'option la plus pratique...
r772ra:
Qu'est-ce que c'est ?
Type, int ou date
J'ai réécrit tout le bazar et c'est ressorti comme ça :
Pour une raison quelconque, même lorsque les commandes sont fermées, l'heure de clôture de la dernière commande ne devrait pas être nulle.
On l'a tout le temps dans les commentaires :
Время закрытия последнего открытого ордера = 0
C'est pourquoi mon code ne fonctionne pas plus loin, car cette fonction ne fonctionne pas.
Alors j'ai réécrit tout le bazar et ça a donné ça :
Pour une raison quelconque, même lorsque les ordres sont fermés, l'heure de clôture du dernier ordre ne devrait pas être nulle.
J'étais capable de l'avoir dans mon commentaire tout le temps :
C'est pourquoi rien ne fonctionne selon mon code, car cette fonction ne me laisse pas entrer.
Cet EA prend en compte les ordres en attente dans votre code. Eh bien, il va regarder les ordres ouverts en conséquence. Naturellement, le temps de fermeture sera de zéro.
Si vous voulez voir les ordres fermés, vous devez les afficher dans la liste des ordres fermés :
и
Mais... nous devons créer deux fonctions - l'une recherche les ordres ouverts et l'autre les ordres fermés.
Il prend également en compte vos ordres en attente. Et en conséquence, il examine les ordres ouverts. Naturellement, le temps de fermeture sera de zéro.
Si vous voulez voir les ordres fermés, vous devez les voir dans la liste des ordres fermés :
и
Mais... nous devons créer deux fonctions - l'une recherche les ordres ouverts et l'autre les ordres fermés.
Merci, Artyom. Exactement... La suite est une question d'optimisation du code. Il y a des questions sur la structure du code, mais il faudra l'écrire sur une tête fraîche.
Je regarderai volontiers votre code, Artem. Pour tester l'impression, ce n'est pas la variante la plus pratique...
Voici un EA pour tester la fonction. Il contient la fonction elle-même et son appel. Avant de l'appeler, vous devez préparer un message, qui peut comporter jusqu'à quatre lignes. La longueur de chaque ligne, si je me souviens bien, ne doit pas dépasser 64 caractères. C'est pourquoi j'ai divisé un message en plusieurs lignes. Chaque ligne d'un message peut être éditée dans une couleur différente. C'est assez clair dans le code : nous préparons d'abord les lignes de messages, puis nous appelons la fonction. Je ne l'ai pas beaucoup commenté - je l'ai écrit d'une traite il y a longtemps. Maintenant, j'ai déjà oublié à quoi ça sert. Si j'ai des questions, je m'en souviendrai, mais je ne me souviens que des choses nécessaires maintenant.
Et une dinde :
C'est comme ça... J'espère que vous trouverez la solution.
Bien sûr, vous pouvez faire un underlay au lieu de l'afficher sur le graphique principal, mais je suis trop paresseux pour le faire... :)
Voici un EA pour tester la fonction. Il contient la fonction elle-même et son appel. Avant de l'appeler, vous devez préparer un message, qui peut comporter jusqu'à quatre lignes. La longueur de chaque ligne, si je me souviens bien, ne doit pas dépasser 64 caractères. C'est pourquoi j'ai divisé un message en plusieurs lignes. Chaque ligne d'un message peut être éditée dans une couleur différente. C'est assez clair dans le code : nous préparons d'abord les lignes de messages, puis nous appelons la fonction. Je ne l'ai pas beaucoup commenté - je l'ai écrit d'une traite il y a longtemps. Maintenant, j'ai déjà oublié à quoi ça sert. Si j'ai des questions, je m'en souviendrai, mais je ne me souviens que des choses nécessaires maintenant.
Et une dinde :
C'est comme ça... J'espère que vous trouverez la solution.
Bien sûr, vous pouvez faire un underlay au lieu de l'afficher sur le graphique principal, mais je suis trop paresseux pour le faire... :)
Des gens bien ! J'ai écrit un EA, tout semble fonctionner correctement dans la vie réelle. Mais je l'ai vérifié sur le testeur - il y a des problèmes. L'essentiel est le suivant. Le conseiller expert doit ouvrir les ordres par des lignes horizontales tracées sur le graphique. Dans le testeur, il les ouvre tout le temps à différents niveaux, comme si beaucoup de lignes avaient été posées, alors qu'il n'y en a pas ! Pouvez-vous expliquer ce qui ne va pas ?
Une partie du code responsable des lignes :
int New_gorizont()
{
int tip_o_buy ;
int tip_o_sell ;
int obj_ObjectsTotal() ;
// si aucune nouvelle ligne, sortie
if(obj_=0)
retour ;
// if(obj_Total(), return ; // s'il y en a...
si(obj_total!=0)
chaîne de caractères name=ObjectName(0) ;
double pr=NormalizeDouble(ObjectGet(name,1),Digits) ;
ObjectDelete(name) ; // supprimez et définissez à nouveau.
if(pr>Bid+(Stop_level+1)*Point) // déterminer le type d'ordre
{
tip_o_sell=OP_SELLLIMIT ;
tip_o_buy=OP_BUYSTOP ;
}
si(pr<Bid-(Stop_level+1)*Point)
{
tip_o_sell=OP_SELLSTOP ;
tip_o_buy=OP_BUYLIMIT ;
}
// fixer les commandes
OrderSend(Symb,tip_o_sell,Value,pr,3,pr+StopLoss*Point,pr-TakeProfit*Point, "Order set") ;
Prov_oshibok() ;
................................
}
En d'autres termes, l'objet_objet=0 et c'est tout. Mais il fixe et fixe tout à l'infini pour une raison quelconque.
Des gens bien ! J'ai écrit un EA, tout semble fonctionner correctement dans la vie réelle, tout est normal. Mais j'ai vérifié sur le testeur et il y a un problème.
Je ne le crois pas, cet EA ne peut fonctionner ni sur le site réel ni dans le testeur.