[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 64
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
Pouvez-vous m'indiquer comment faire pour qu'un EA ouvre un ordre pour plusieurs symboles à la fois ? >> Merci d'avance !
Ce n'est pas possible parce que l'EA ne peut ouvrir un ordre que pour un seul symbole, et qu'il faut ensuite attendre la transaction (qui n'est pas toujours réussie et pas toujours rapide) pour libérer le flux commercial pour d'autres ordres.
Messieurs, veuillez conseiller un nouveau venu ! J'ai téléchargé le tutoriel MQl4BookRussian.chm (auteur Sergey Kovalev), le problème est que l'impression à partir de ce format est très désordonnée. Probyby a copié ce texte au format doc, les images disparaissent. Savez-vous si le manuel est disponible dans un format adapté à l'impression (pour la lecture sur un écran, les yeux se fatiguent) ?
Essayez la version en ligne du manuel directement sur le site web - https://book.mql4.com/ru/. Et vous pouvez le transférer sur un document sans aucun problème.
Ce n'est pas possible parce qu'un EA ne peut ouvrir un ordre que sur un seul symbole, après quoi vous devez attendre que l'opération de transaction soit réalisée (et elle n'est pas toujours réussie et pas toujours rapide) et que le flux de transactions devienne libre pour d'autres ordres.
Avec le trade flow je comprends tout, mais comment faire successivement sur 3 instruments avec un intervalle minimal des opérations d'ouverture (selon l'algorithme du conseiller l'ouverture doit commencer dans une certaine seconde sur trois devises à la fois) ? Si cela ne vous dérange pas, pourriez-vous poster un extrait de code à titre d'exemple ? Je vous en serais très reconnaissant !
int start()
{
if (OrdersTotal() == 0
&& TimeDayOfWeek(TimeCurrent()) == 5
&& TimeHour(TimeCurrent()) == 12
&& TimeMinute(TimeCurrent()) == 30
&& TimeSeconds(TimeCurrent()) >= 00)
{
Alert("Тра ляля");
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"sell",999999,0,Red);
}
Si c'est le code entier, il ne compile même pas. Si vous mettez un nombre à la place de Lot, l'EA fonctionne bien.
Je comprends tout avec le flux de transactions, mais comment faire pour que les transactions s'ouvrent consécutivement sur 3 symboles avec des intervalles minimaux (selon l'algorithme de l'EA, l'ouverture doit commencer dans une certaine seconde sur trois devises à la fois) ? Si cela ne vous dérange pas, pourriez-vous poster un extrait de code à titre d'exemple ? Je vous en serai très reconnaissant !
Je suppose que vous avez juste besoin de 3 ordres à ouvrir pour des instruments différents ? Pourquoi ne pas faire une variable drapeau par exemple
Créer dans les variables globales
int flag=0;
string Symb;
///////////////
plus loin
int start()
{
if (условие открытия)
{flag=1;}
if (flag==1)
{
Symb="EURUSD";
OrderSend(Symb,...)///Открываем, переносим флаг во 2 состояние для открытия след ордера и
flag=2; ///выходим тк больше мы ни чего не можем сделать
return(0);
}
if (flag==2)
{
Symb="AUDUSD";
OrderSend(Symb,...)
flag=3;
return(0);
}
if (flag==3)
{
Symb="USDJPY";
OrderSend(Symb,...)
flag=0;//Возвращаем флаг в начальное состояние..
return(0);
}
return(0);}
Il serait également intéressant d'ajouter un contrôle ouvert et de ne déplacer le drapeau qu'une fois le contrôle réussi.
Si c'est le code entier, il ne compile même pas. Si vous mettez un nombre à la place de Lot, l'EA fonctionne bien.
Vérifiez le type de données du Lot. Il devrait être double.
Donc, d'un seul coup d'œil. Je n'ai pas compris les termes, mais il n'y a pas de croisement dans la deuxième variante.
Une dernière chose : la fonction OrderSend renvoie un ticket int, il est donc correct de vérifier le succès comme ceci :
Dans votre cas, vous devez vérifier l'inexactitude :
______
Oui, je ne sais pas comment font les autres, mais pour moi le mot "experts" sonne comme une moquerie. C'est peut-être pour ça que tu n'as pas eu de nouvelles depuis si longtemps. ;)
Bonjour !!!!!!!!!!!!!!
Oui, quoi que tu dises........ ne l'appelle pas ainsi ne l'appelle pas..... Bien qu'experts soit l'abréviation de spécialistes (personnes ayant des connaissances, enseignants, pour ainsi dire).
Je ne m'en soucie pas...... je voulais dire seulement positif et gentil ........
Mais peu importe : ........
Au tout début de ce fil, j'ai posé une question sur le MA. Les réponses étaient très intelligentes. Maintenant, je m'y remets.
Une idée a surgi.....
J'ai décidé de modifier un peu les conditions d'échange. Mais cela n'a pas fonctionné(((((((( je voulais mettre open_1 et open_0 (prix d'ouverture sur la première barre et
Prix ouvert sur une barre de zéro) Lorsque j'ai vérifié, cela a donné des erreurs, j'ai dû revenir à la version originale (que j'ai donnée ci-dessus).
Comme on me l'a expliqué open[1] est un appel de la cellule du tableau avec le nom open et l'index [1]. Tout ceci est bon...... mais il suffit d'avoir un prix ouvert sur 1(2,0) barre.
Conseils pour le mannequin.....)))))))).....
Comment savoir si l'ordre en attente a été déclenché (par exemple, à l'achat) ? est-il préférable de le rechercher par son identifiant dans l'historique ou existe-t-il une option plus courte ?
Vous pouvez essayer ceci
OrderSelect(1, SELECT_BY_POS)
if(OrderOpenTime()!=0)
{
///необходимая операция
}
Mais ceci n'est une option que si vous n'avez qu'une seule commande !