[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 193

 
artmedia70:

Comment... En se basant sur Igor Kim a fait quelque chose... Une seule de vos caractéristiques... les autres sont les mêmes...

quelque chose comme ça, je suppose :

Et nous l'appelons :

pour compter les achats et les ventes sur le symbole actuel, avec Magic

Artyom, bien sûr, je commence par Kim, en supprimant les contrôles inutiles pour moi et en ajoutant les tâches nécessaires pour moi. Ne pas réinventer la roue ! Merci pour la correction, je vais être plus audacieux pour supprimer les inutiles ! Et je n'ai pas besoin de vérifier le magicien et le symbole, parce que parfois j'interviens "avec mes mains" et pas avant la multidevise pour moi encore !
 
TarasBY:

Pour supprimer la condition "extra", vous pouvez procéder comme suit



Igor, tu as raison. C'est plus lisible de cette façon...
 
borilunad:
Artyom, je viens bien sûr de Kim, en supprimant les contrôles inutiles et en ajoutant les tâches dont j'ai besoin. Ne pas réinventer un vélo ! Merci pour la correction, je vais être plus audacieux pour supprimer les inutiles ! Et je n'ai pas besoin de vérifier le magicien et le symbole, comme parfois j'interviens "manuellement" et pas avant la multidevise pour moi encore !

Ensuite, je dois vérifier si (OrderMagicNumber()==0) ... Il s'agit d'un contrôle pour "manuel".

Si nous voulons interférer avec d'autres EAs travaillant avec un autre symbole, nous pouvons supprimer la vérification de OrderSymbol().

J'ai laissé le minimum de contrôles nécessaires pour travailler sur un seul personnage, avec ses propres positions/ordres. Si vous voulez également toucher à ce que "manipule", vous devez ajouter une vérification de magic==0.

 
artmedia70:

Ensuite, vous devriez faire une vérification si (OrderMagicNumber()==0) ... est un contrôle pour "manuel".

Si nous voulons interférer avec d'autres EAs travaillant avec un autre symbole, nous pouvons supprimer la vérification sur OrderSymbol().

J'ai laissé les contrôles minimums requis pour travailler sur un symbole, avec ses propres positions/ordres. Si vous voulez aussi toucher cela "à la main", alors vous devez ajouter un contrôle pour magik==0.

J'ai déjà le droit de le faire ! Mais j'en prends note, surtout avec != et le continuum ne ralentit pas du tout ! Merci !
 
solnce600:

Merci beaucoup pour votre aide. Tout va bien. Mais......

1. Sur certaines des cinq minutes, plus d'un ordre s'ouvre.

2. Certains ordres sont fermés par des ordres stop dont le prix est différent de celui prescrit dans le code.


Eh bien, allez, alors tout est simple - faire la même vérification dans les ordres fermés) Et sur le prix de clôture- désolé, il est fixé correctement, et puis le serveur à quel prix vraiment fermer.
int start()

{

 double Price=iOpen (Symbol (),PERIOD_M5,0)+300*Point;        
 double SL=NormalizeDouble (Price-300*Point, Digits);         
 double TP=NormalizeDouble (Price+150*Point, Digits);    
 
 int last_order_bar = 0;
 int ot = OrdersTotal();

 if (ot>0) //если есть ордера в рынке
 {
   if (OrderSelect (ot-1,SELECT_BY_POS)) //выбрали последний ордер
      if (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
         last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний ордер (если он есть)
 }
 
 int last_hist_order_bar = 0;
 int oht = OrdersHistoryTotal();

 if (oht>0) //если есть ордера в рынке
 {
   if (OrderSelect (oht-1,SELECT_BY_POS, MODE_HISTORY)) //выбрали последний закрытый ордер
      if (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
         last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний закрытый ордер (если он есть)
 }
 
 if (ot==0 || last_order_bar>0) //если ордеров нет либо последний открыт не на текущем баре
    if (oht==0 || last_hist_order_bar>0) //если закрытых ордеров нет либо последний из закрытых был открыт не на текущем баре
       if (Bid>=Price)                       //если текущая цена доползла до цены открытия
          int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );

}
 
alsu:
Eh bien, il est facile de faire la même vérification dans les ordres fermés) Et à propos du prix de clôture - désolé, il est fixé correctement, et ensuite c'est au serveur de décider à quel prix il peut être fermé.

Merci beaucoup. Désolé pour le dérangement.
 
alsu:
Et qu'en est-il du prix de clôture - désolé, il est défini correctement, et c'est ensuite au serveur de décider à quel prix il sera réellement clôturé.

Merci encore pour toute votre aide. Mais.....

Je n'ai ouvert qu'une seule commande en un an, c'est-à-dire la première que j'ai rencontrée.

Et il y a beaucoup plus de chandeliers avec des paramètres pour ouvrir un ordre dans cette période.

http://clip2net.com/s/2ToEo


Je ne pourrai pas le fermer. Merci.

 
solnce600:

Merci encore pour toute votre aide. Mais.....

Je n'ai ouvert qu'une seule commande pendant la période d'un an, c'est-à-dire la première que j'ai rencontrée.

Et il y a beaucoup plus de chandeliers avec des paramètres pour ouvrir un ordre dans cette période.

http://clip2net.com/s/2ToEo


Merci.


Corriger ma faute de frappe - la deuxième fois

 if (oht>0) //если есть ордера в рынке
 {
   if (OrderSelect (oht-1,SELECT_BY_POS, MODE_HISTORY)) //выбрали последний закрытый ордер
      if (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
         last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний закрытый ордер (если он есть)
 }

J'ai besoin

last_hist_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ());
 
alsu:

Corriger ma faute de frappe - la deuxième fois

C'est censé l'être.


OK. Merci beaucoup.
 

Bonsoir, dites-moi comment écrire une fonction permettant de déterminer les Les hauts et les bas des trois derniers chandeliers. Merci.