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

 
alsu:


Merci beaucoup pour votre réponse rapide.
 
Diubakin:
Essayez cette option :
Merci beaucoup pour votre réponse rapide.
 
Chers professionnels ! Où puis-je trouver la fonction SloseBy() qui fonctionne en mode manuel ? Je veux l'ajouter à mes hiboux, de sorte que je puisse fermer la position avec le moins maximal à celle avec le plus maximal, pas manuellement, mais automatiquement selon les conditions. Je n'ai pas pu le trouver dans le codebase. Je ne l'ai pas trouvé dans le codebase. Merci !
 
borilunad:
Ev. pros ! Où puis-je trouver la fonction СloseBy(), qui fonctionne en mode manuel ? Je veux l'ajouter à mes hiboux, pour qu'il ne soit pas possible de fermer une position avec un maximum de moins vers l'opposé avec un maximum de plus, mais automatiquement, selon les conditions. Je n'ai pas pu le trouver dans le codebase. Je ne l'ai pas trouvé dans le codebase. Merci !

Essayez cette option :

bool LockOFF(int EA_Magic) {
 double Result, PrevLoss, PrevProfit;
    int pos, orders_total, order_type, MaxProfitTicket, MaxLossTicket;
   bool Ans;

 MaxProfitTicket=-1; MaxLossTicket=-1;

 orders_total=OrdersTotal();
 for(pos=orders_total-1; pos>=0; pos--) {
  if(!OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) continue;
  if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=EA_Magic) continue; // не наш ордер
  if(OrderType()>1) continue;
  Result=OrderProfit()+OrderSwap()+OrderCommission();
  if(Result<0.0 && (PrevLoss==0.0 || Result<PrevLoss)) {
   PrevLoss=Result; MaxLossTicket=OrderTicket(); order_type=OrderType(); } } // end of for

 if(MaxLossTicket==-1) return(false); // нет убыточной позиции
 if(order_type==OP_BUY) order_type=OP_SELL; else order_type=OP_BUY; 

 orders_total=OrdersTotal();
 for(pos=orders_total-1; pos>=0; pos--) {
  if(!OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) continue;
  if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=EA_Magic) continue; // не наш ордер
  if(order_type!=OrderType()) continue;
  Result=OrderProfit()+OrderSwap()+OrderCommission();
  if(Result>0.0 && (PrevProfit==0.0 || Result>PrevProfit)) {
   PrevProfit=Result; MaxProfitTicket=OrderTicket(); } } // end of for

 if(MaxProfitTicket==-1) return(false); // нет противоположной прибыльной позиции

 Ans=OrderCloseBy(MaxLossTicket, MaxProfitTicket);
 if(!Ans) { Print("Ошибка при встречном закрытие"); return(false); }
 
 return(true); }
 

Sergei, à première vue, ça vaut le coup ! Je vais le visser, faire les conditions et l'essayer. Merci beaucoup !

Essayé, il fonctionne sans erreurs ! Il ne reste plus qu'à expérimenter les conditions, pour obtenir l'effet, et tout ira bien ! Mais c'est pour demain !

Merci beaucoup. Et des rêves intéressants !

 
borilunad:
Sergei, à première vue, ça vaut le coup ! Je vais le visser, faire les conditions et l'essayer. Merci beaucoup !
Seulement, au lieu d'une commande de contre-fermeture, insérez une fonction de contre-fermeture à part entière - sinon, ce n'est que pour le testeur. Et initialiser les variables dans la fonction.
 
artmedia70:
Seulement, au lieu d'une commande de contre-fermeture, insérez une fonction de contre-fermeture à part entière - sinon, ce n'est que pour le testeur. Et initialiser les variables dans la fonction.
Merci Artyom, c'était trop tard. Je vais tout faire selon les règles en ligne aujourd'hui !
 
borilunad:
Merci, Artyom ! C'était trop tard. Je ferai tout dans les règles pour la mise en ligne aujourd'hui !
Bonne chance...
 

Bon après-midi. J'ai une telle question.

J'ai redessiné cet indicateur pour mes propres besoins avec beaucoup de difficulté à partir de morceaux de code d'autres Expert Advisors et Inductors. Ce n'est pas un gros code et il fonctionne comme je le souhaite.

Le problème est qu'il effectue certains calculs en interne et affiche des flèches vers le haut ou vers le bas sur le graphique.

Veuillez m'indiquer comment faire pour qu'un conseiller expert ouvre un ordre dans la bonne direction lorsque la flèche apparaît sur le graphique.

Plus précisément, j'ai juste besoin de savoir quelle flèche est active maintenant, je pense que je peux faire le reste.

Voici un morceau de code pour le rendre plus clair, c'est une initialisation dans l'indicateur

   SetIndexBuffer(1, Vverh);

   SetIndexStyle(1,DRAW_ARROW);

   SetIndexArrow(1,233);

   

   SetIndexBuffer(2,Vniz);

   SetIndexStyle(2,DRAW_ARROW);

   SetIndexArrow(2,234); 

Merci d'avance

 
Activict:

Bon après-midi. J'ai une telle question.

J'ai redessiné cet indicateur pour mes propres besoins avec beaucoup de difficulté à partir de morceaux de code d'autres Expert Advisors et Inductors. Ce n'est pas un gros code et il fonctionne comme je le souhaite.

Le problème est qu'il effectue certains calculs en interne et affiche des flèches vers le haut ou vers le bas sur le graphique.

Veuillez m'indiquer comment faire pour qu'un conseiller expert ouvre un ordre dans la bonne direction lorsque la flèche apparaît sur le graphique.

Plus précisément, j'ai juste besoin de savoir quelle flèche est active maintenant, je pense pouvoir faire le reste.

Voici un morceau de code pour le rendre plus clair, c'est une initialisation dans l'indicateur

   SetIndexBuffer(1, Vverh);

   SetIndexStyle(1,DRAW_ARROW);

   SetIndexArrow(1,233);

   

   SetIndexBuffer(2,Vniz);

   SetIndexStyle(2,DRAW_ARROW);

   SetIndexArrow(2,234); 

Merci d'avance à tous

Utilisez la fonction iCustom intégrée pour recevoir les valeurs de l'indicateur personnalisé dont vous avez besoin dans le conseiller expert.



double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)

Par exemple, vous devez savoir s'il y a une flèche vers le haut ou vers le bas sur la dernière barre complètement formée :


double Up=iCustom(NULL, 0, name/* название индикатора */, /* настраиваемые параметры индикатора через запятую */, 1, 1); // стрелка вверх
double Dw=iCustom(NULL, 0, name/* название индикатора */, /* настраиваемые параметры индикатора через запятую */, 2, 1); // стрелка вниз