Questions d'un "mannequin - page 177

 
tol64:

Dans OnTrade(), nous recevons une réponse du serveur. Cela signifie que si nous vérifions l'événement dans OnTrade(), nous saurons déjà avec certitude s'il y a une position ou non. Nous pourrions toutefois fournir des options standard telles que DEAL_ENTRY_FULLOUT (clôture complète) ouDEAL_ENTRY_PARTOUT (clôture partielle) pour que tout soit parfaitement élégant.)))


Bonne suggestion. Pour le moment en temps réel, il n'y a aucun problème, mais lors de l'analyse de l'historique, nous devons résumer les volumes de toutes les transactions qui ont créé la position, pour savoir quand elle a finalement été fermée.
 
Valmars:
C'est une bonne suggestion. Aucun problème pour le moment actuel en temps réel, mais lors de l'analyse de l'historique, nous devons additionner les volumes de toutes les transactions qui ont formé la position, pour savoir quand elle a été finalement fermée.
Oui, il est plus difficile d'analyser l'histoire. Certes, toutes les informations nécessaires peuvent à nouveau tenir dans le commentaire, mais le code devient alors de plus en plus "hétéroclite". :)
 
tol64:
Oui, c'est plus difficile d'analyser l'histoire. Certes, toutes les informations nécessaires peuvent à nouveau être contenues dans un commentaire, mais le code devient alors de plus en plus "hétéroclite". :)
Par le commentaire, bien sûr, vous pouvez, mais seulement en trading automatisé avec votre EA, mais lors de l'analyse des comptes d'autres personnes, et même avec un contrôle manuel, vous ne réussirez pas. Uniquement par sélection via HistorySelectByPosition().
 
Valmars:
Par le biais du commentaire, bien sûr, vous pouvez, mais seulement dans le trading automatique de votre EA, et cela ne fonctionnera pas lors de l'analyse des comptes des autres et même avec un contrôle manuel. Uniquement par sélection via HistorySelectByPosition().

Il y a très, très longtemps, j'ai trouvé une solution qui rend inutile l'accumulation d'un énorme tas de ce genre de déchets.

Mais c'est du côté des développeurs.:(

Elle consiste à ajouter à la description (structure) d'une transaction un champ décrivant la position ouverte résultante sur un symbole (après qu'une transaction ait eu lieu).

Des valeurs positives de ce champ peuvent signifier une position d'achat, des valeurs négatives - une position de vente. 0 = aucune position.

--

Cela peut être fait dès maintenant - et aucun serveur ne souffrira. Il n'est pas nécessaire de changer le serveur. Pas du tout. Tout peut être résolu à l'intérieur du terminal.

// Ce changement est encore moins cher que de payer des crédits pour tous les messages du forum discutant de la pagaille avec le calcul des positions sur l'histoire. :)

 
MetaDriver:

... ajouter un champ à la description (structure) de la transaction décrivant la position ouverte résultante sur l'instrument (après que la transaction ait eu lieu).

Des valeurs positives de ce champ peuvent signifier une position d'achat, des valeurs négatives une position de vente. 0 = aucune position.

Intéressant ! Et en combinaison avec les nouvelles propriétés DEAL_ENTRY_DECREASE (diminution du volume) et DEAL_ENTRY_INCREASE(augmentation du volume), ce serait parfait : tous ceux qui ont besoin du résultat du volume d'une transaction - demandez-nous, tous ceux qui ont besoin uniquement des résultats de la transaction (diminution/augmentation du volume) - demandez-nous !

Avez-vous écrit au conseil d'administration au sujet de votre proposition ? - Parce qu'il n'est pas difficile pour moi de trouver une bonne idée.

MetaDriver:

Cela peut être fait dès maintenant - et aucun serveur ne souffrira. Il n'est pas nécessaire de modifier le serveur. Pas du tout. Tout peut être résolu à l'intérieur du terminal, assez facilement.
// Ce changement est encore moins cher que de payer des crédits pour tous les messages du forum discutant de la pagaille avec le calcul de la position sur l'historique.:)

"Crédits pour tous les messages du forum discutant des tracas liés au comptage des positions dans l'histoire" - sont-ils si chers ? :) Je les donne à l'autel du changement :)

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок - Документация по MQL5
 
Yedelkin:

Intéressant ! Et en combinaison avec les nouvelles propriétés DEAL_ENTRY_DECREASE (diminution du volume) et DEAL_ENTRY_INCREASE(augmentation du volume), ce serait parfait : qui a besoin du volume résultant d'une transaction spécifique - vous êtes le bienvenu, qui a besoin uniquement du résultat de la transaction (comme "diminution/augmentation du volume") - vous êtes le bienvenu !

A propos de votre proposition au CD écrit ? - Parce qu'il n'est pas difficile pour moi de lancer une bonne idée.

"Crédits pour tous les messages du forum discutant de la difficulté de calculer les positions sur l'histoire" - sont-ils si chers ? :) Je les abandonne sur l'autel du changement :)

Non. Ils sont très stressés par les propositions qui modifient les structures de données sous-jacentes.

Et je n'aime vraiment pas me disputer avec eux.

Quoi qu'il en soit, j'ai des complexes lorsqu'il s'agit de propositions "fondamentales". :)

// J'en ai fait beaucoup, et un très faible pourcentage est mis en œuvre.

J'espère que les gens soutiendront cette proposition, qui semble précieuse.

 
MetaDriver:

Non. Ils sont très tendus à propos des propositions qui modifient les structures de données sous-jacentes.

Et je n'aime vraiment pas me disputer avec eux.

Quoi qu'il en soit, j'ai des complexes lorsqu'il s'agit de propositions "fondamentales". :)

// J'en ai fait beaucoup et un très petit pourcentage a été mis en œuvre.

J'espère que les gens me soutiendront, la proposition est assez précieuse.

OK, étant un fondamentaliste radical, je ne vois aucune raison de reculer :) Si la proposition de changer les structures de données sous-jacentes est pour le bien, et non pour le mal, alors c'est une proposition idéologiquement saine.
 
Merci ! !!
 

Bonjour à tous !

Pouvez-vous me conseiller, si j'ouvre une transaction (Achat ou Vente) dans le testeur MT5 à un certain"moment dans le temps".

Mais à cemoment-là, il n'y avait pas de cotation sur la paire de devises (c'est-à-dire qu'il y a un écart dans les données, c'est-à-dire que la barre M5 commence à 00:05, et la barre suivante commence à 00:25).

Et j'ouvre une affaire dans le testeur par exemple à 00:15.

Le prix que le testeur fixe dans la transaction à partir de la première barre (Clowes) ou de la deuxième (Open).

Ou bien refusera-t-il de l'ouvrir du tout ?

 
J'essaie d'ouvrir cinq ordres. J'ai essayé de maîtriser les particularités du cinquième terminal. Donc, je ne l'ai pas compris pendant 40 minutes, je ne vois pas de sortie dans le journal ! Si vous le pouvez, jetez-y un coup d'œil.
//+------------------------------------------------------------------+
//|                                                     ордерній.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+

uint resultat=0;
          int i;
void OnTick()
  {
//---
                      for( ;i<5;i++){

 // if( resultat!=10009){
   MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
double Ask=last_tick.ask;
double Bid=last_tick.bid;

   MqlTradeRequest request={0};
   MqlTradeResult result={0};
   
   request.action= TRADE_ACTION_DEAL;
   request.magic =600;
   request.symbol=Symbol();
   request.price=Bid;
   request.deviation=20;
   request.volume=1;
   request.sl=Bid-300*Point();
   request.tp=Bid+300*Point();
   request.type=ORDER_TYPE_BUY;
   OrderSend( request,   result    );    
        
  int Error=GetLastError( ) ; ResetLastError();
  printf("Error %i ",Error);
  
   resultat= result.retcode ;
   printf("resultat %i ",resultat); //}
   Print ( i, PositionsTotal());
   // int PositionTicket= PositionGetInteger(POSITION_IDENTIFIER)
   
                                          }
  

   
  }
//+------------------------------------------------------------------+

 bool  PositionModify( int PositionTicket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)
      {  MqlTradeRequest request  = {0};

Oui, il ouvre les commandes, tout va bien, mais il n'écrit pas les imprimantes. Il est dit

2012.09.04 17:20:10 Transactions '1232639' : ordre #11979593 acheter 1.00 / 1.00 EURUSD à 1.25755 fait

2012.09.04 17:20:10 Transactions '1232639' : transaction #11107137 buy 1.00 EURUSD at 1.25755 done (based on order #11979592)

2012.09.04 17:20:10 Transactions '1232639' : achat instantané 1.00 EURUSD à 1.25739 sl : 1.25439 tp : 1.26039 (deviation : 20)


2012.09.04 17:20:10 Transactions '1232639' : achat instantané 1.00 EURUSD à 1.25739 sl : 1.25439 tp : 1.26039 (deviation : 20)

2012.09.04 17:20:09 Expert Advisor (EURUSD,M5) chargé correctement