[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 378

 
globad:
Je vois. Et si vous passez simultanément des ordres sur un compte à partir de plusieurs terminaux, ils ne seront pas passés l'un après l'autre ?


Et il y a des variations possibles ici. Par exemple, nous attachons un seul et même EA à une seule et même paire de devises dans deux terminaux. Mais nous avons mis une magie différente dans chaque EA. Par conséquent, l'ordre d'un EA sera accepté par l'autre EA comme celui d'un autre et le second EA ouvrira également une position lorsqu'il y aura un signal.

Et une autre option - les deux EA ont les mêmes magies. Un conseiller expert a ouvert une position sur la base du signal. Le second a détecté le signal et a vu que la position a déjà été ouverte. En conséquence, il n'ouvrira rien et passera en mode de surveillance.

Je ne sais pas ce qui se passera si les deux EAs voient le signal et aucune position en même temps. Ils tenteront simultanément de donner l'ordre au serveur d'ouvrir une position. Le plus souvent, il y aura deux postes ouverts. Si c'est le cas, nous pouvons contourner ce problème en faisant dormir le second EA pendant le temps nécessaire au serveur pour répondre à la demande de transaction du premier EA. Dans ce cas, le premier EA placera l'ordre en premier, et seulement ensuite le second EA détectera qu'il y a un signal et que l'ordre existe déjà.

 

Je ne comprends pas, qu'est-ce qui ne va pas ..... Je n'ai jamais été bon avec les fonctions, en particulier leur description. Quelqu'un peut-il me donner une réponse détaillée ? C'est un forum pour les programmeurs.......

int start()
  {
int TotalOrders, TotalOrders1;
int i=1;
 
if (b!=Bars){
b=Bars;
   if (iCustom(NULL, 0, "",set,up,2,1)!=0){
     OpenFirstOdrer();
      }
      
  return(0);
  }
  
}
//+------------------------------------------------------------------+
//Открыть ордер
double OpenFirstOdrer();  
 {
   int ticket;
   double BySignal;
   
         if (iCustom(NULL, 1, "",set,up,2,1)!=0){
     
         }
   
   return (0);
 }  

Chaque fois, une erreur devient de plus en plus difficile. )))) C'est comme si... ))))) Bref, qu'est-ce qui ne va pas ?

 
nikelodeon:

Je ne comprends pas, qu'est-ce qui ne va pas ..... Je n'ai jamais été bon avec les fonctions, en particulier leur description. Quelqu'un peut-il me donner une réponse détaillée ? C'est un forum pour les programmeurs.......

Chaque fois, une erreur devient de plus en plus difficile. )))) C'est comme si... ))))) Bref, qu'est-ce qui ne va pas ?

Et que voulez-vous obtenir avec une fonction qui ne fait rien ?
 
drknn:


Et nous pouvons en faire des variantes. Par exemple, nous connectons un seul et même EA à une seule et même paire de devises dans deux terminaux. Mais nous avons mis un magicien différent dans chaque EA. Par conséquent, l'ordre d'une EA sera considéré par l'autre EA comme l'ordre d'une autre personne et la seconde EA ouvrira également une position lorsque nous recevrons le signal.

Et une autre option - les deux EA ont les mêmes magies. Un conseiller expert a ouvert une position sur le signal. Le second a détecté un signal et a vu que la position a déjà été ouverte. En conséquence, il n'a rien ouvert et est passé en mode surveillance.

Je ne sais pas ce qui se passera si les deux EAs voient le signal et aucune position en même temps. Ils tenteront simultanément de donner l'ordre au serveur d'ouvrir une position. Le plus souvent, il y aura deux postes ouverts. Si c'est le cas, nous pouvons contourner ce problème en faisant dormir le second EA pendant le temps nécessaire au serveur pour répondre à la demande de transaction du premier EA. Dans ce cas, le premier EA placera l'ordre en premier, et ce n'est qu'ensuite que le second EA découvrira s'il y a un signal et si l'ordre est déjà en place.

Merci pour le conseil. Il serait bon que les commandes soient passées simultanément, ou presque en même temps. J'ai vérifié la variante ci-dessus avec plusieurs terminaux ouverts sur le compte réel en utilisant les outils portables. Toutes les commandes commencent à être traitées simultanément et sont passées presque en même temps. C'est pourquoi je cherche un EA ou un script plus facile. Il suffit de placer un ordre à une certaine distance du prix à un certain moment avec tp et sl. De préférence, il devrait également être en mesure de supprimer cet ordre après une certaine période de temps.

Nous ouvrons plusieurs terminaux sur un seul compte. Nous envoyons un tel EA à chacun d'entre eux et, en conséquence, nous avons un certain nombre de commandes au prix nécessaire. Le temps consacré à l'établissement de ces commandes sera approximativement égal au temps nécessaire pour une commande. La seule chose qui reste à faire est de trouver un tel EA. Peut-être que quelqu'un le sait ?

 
globad:

Il ne reste plus qu'à trouver un tel conseiller. Quelqu'un le sait-il ?

Ne serait-il pas plus simple d'en commander un, si vous en avez vraiment besoin ? Vous économiserez du temps et des efforts, et avec un système de trading adéquat, l'argent dépensé sera vite remboursé.
 
drknn:
Ne serait-il pas plus simple de le commander si vous en avez vraiment besoin ? Vous économiserez du temps et des efforts, et avec un système de trading adéquat, l'argent dépensé sera vite remboursé.
Je pense qu'il y a plein de goodies de ce genre tout prêts. L'EA ouvre un marché à un moment donné...
 
artmedia70:
Et que voulez-vous obtenir d'une fonction qui ne fait rien ?

Non, il n'y avait pas besoin de mettre un point-virgule à cet endroit.....
 
nikelodeon:

Non, il n'y avait pas besoin de mettre un point-virgule à cet endroit.....

Que fait la fonction de toute façon ?

//+------------------------------------------------------------------+
//Открыть ордер
double OpenFirstOdrer() 
 {
   int ticket;
   double BySignal;
   
         if (iCustom(NULL, 1, "",set,up,2,1)!=0){
     
         }
   
   return (0);
 }  

Il renvoie zéro de toute façon... J'ai donc posé la question sans regarder la syntaxe.

 
Pouvez-vous me dire si Meta Trader 4 vous permet d'ouvrir une transaction à un moment donné et de la fermer après un certain nombre de pips par rapport à la transaction d'ouverture. On peut peut-être écrire un script, quelqu'un sait-ilcomment faire ?
 
kellin:
Pouvez-vous me dire si Meta Trader 4 vous permet d'ouvrir une transaction à un moment donné et de la fermer après un certain nombre de pips par rapport à la transaction d'ouverture. Peut-être qu'un script peut être écrit, savez-vouscomment le faire ?
)) J'ai la même question, seulement une variante avec des ordres. supprimer aussi par temps.