Erreurs, bugs, questions - page 1009

 

OK, je vais poser la question autrement, il y a peut-être une réponse normale.

Il existe un indicateur qui est calculé sur l'arrivée d'un événement de minuterie.

S'il n'y a pas de ticks, même si les données de l'indicateur sont mises à jour, elles n'apparaissent pas sur le graphique tant que celui-ci n'est pas mis à jour de force.

Existe-t-il un moyen normal de faire un affichage automatique des nouvelles données sans ticks ?

 
TheXpert:

OK, je vais poser la question autrement, il y a peut-être une réponse normale.

Il existe un indicateur qui est calculé sur l'arrivée d'un événement de minuterie.

S'il n'y a pas de ticks, même si les données de l'indicateur sont mises à jour, elles n'apparaissent pas sur le graphique tant que celui-ci n'est pas mis à jour de force.

Existe-t-il un moyen normal d'afficher automatiquement les nouvelles données sans ticks ?

Il y a un problème lorsque l'ensemble des données n'est pas affiché avant l'arrivée d'un nouveau tick. Et vous pouvez soit appuyer sur le bouton Rafraîchir, soit changer de période. J'ai fait appel à OnCalculate() dans le timer pour de tels cas, mais cela n'aide pas. Les données des tampons d'indicateurs peuvent être obtenues, mais elles ne sont pas affichées avant un nouveau tick ou une mise à jour forcée ou un changement de cadre temporel.

Je considère que c'est un bug.

Est-ce le même cas pour vous ou est-ce seulement les dernières nouvelles données qui ne sont pas affichées ?

 
tol64:

Est-ce que c'est la même chose pour vous ou est-ce que ce sont juste les dernières nouvelles données qui n'apparaissent pas ?

C'est probablement la même chose. Je suis en train d'écrire la logique pour le travail hors ligne et le week-end.

Apparemment, il est très coûteux en termes de ressources de donner aux logiciels l'accès à cette fonction. Mais cela vaudrait la peine de faire une mise à jour, si l'indicateur a changé plus de (x) valeurs.

 
ChartRedraw ne vous aide-t-il pas ?
 
Renat:
ChartRedraw ne vous aide pas ?
Je l'ai vérifié à la première heure... hélas.
 
TheXpert:

OK, je vais poser la question autrement, il y a peut-être une réponse normale.

Il existe un indicateur qui est calculé sur l'arrivée d'un événement de minuterie.

S'il n'y a pas de ticks, même si les données de l'indicateur sont mises à jour, elles n'apparaissent pas sur le graphique tant que celui-ci n'est pas mis à jour de force.

Existe-t-il un moyen normal de faire un affichage automatique des nouvelles données sans ticks ?

L'ancienne méthode, qui a fait ses preuves, consiste à modifier le calendrier, faute de mieux.

En cliquant sur le bouton, vous pouvez le faire ici : https://www.mql5.com/ru/code/224.

ChartReinit
ChartReinit
  • votes : 7
  • 2010.11.29
  • Vladimir Gomonov
  • www.mql5.com
Кнопочная переинициализация чарта с перерасчетом всех индикаторов, а также простенький и прозрачный объектно-ориентированный пример обработки всех чартов из одного эксперта.
 

construire 821

lors de l'utilisation de la bibliothèque standard(classe CTrade) lors de l'ouverture d'une position d'achat sur le marché, il est possible de choisir de modifier le stop ou le profit après 2,5 secondes (pas moins).

PositionSelect(_Symbol)

renvoie à faux

il n'y a pas de telle situation avec une position de vente


//+------------------------------------------------------------------+
//|                                                test_open_buy.mq5 |
//|                                                         olyakish |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "olyakish"
#property link      "http://www.mql5.com"
#property version   "1.00"
#include <Trade\Trade.mqh> 
CTrade trade;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

   double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK); // лучшее предложение на покупку

   bool res=trade.PositionOpen(_Symbol,// инструмент
                               ORDER_TYPE_BUY,// 
                               0.1,// количество лотов для торговли
                               Ask,// последняя цена bid
                               0.0,// Stop Loss
                               0.0,// Take Profit 
                               " ");
// без комментариев  
   Print("res=",res);
   Print(PositionSelect(_Symbol));
   Sleep(2500);
   Print(PositionSelect(_Symbol));

  }
//+------------------------------------------------------------------+
2013.07.01 14:49:57     test_open_buy (EURUSD,M1)       res=true
2013.07.01 14:49:57     test_open_buy (EURUSD,M1)       false
2013.07.01 14:49:59     test_open_buy (EURUSD,M1)       true
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade
  • www.mql5.com
Стандартная библиотека / Торговые классы / CTrade - Документация по MQL5
 
void GetHistoryProperties()
  {
// Узнаем, есть ли позиция
 
   HistorySelect(t1,t0);
   ulong    ticket=0;
   uint     total=HistoryDealsTotal();
   
   for(uint i=0;i<total;i++){
  if((ticket=HistoryDealGetTicket(i))>0){
  bool ss=HistoryOrderGetString(ticket,ORDER_SYMBOL,symbol1);//не работает
  Print(symbol1," ---",Symbol()," ",ss," ",ticket);
    //пустое значение symbol1
  //или так
  symbol1=myhistory.Symbol();
  Print(symbol1," ---",Symbol()," ", ticket);
  //пустое значение symbol1
 if (Symbol()==symbol1)   {  //Без этого условия всё работает




     }}}

//---
   SetInfoPanel(); // Установим/обновим информационную панель
  }  
Impossible d'obtenir le symbole de l'ordre sur l'historique bug ou erreur ?
 
zfs:
Impossible d'obtenir le symbole de l'ordre sur l'historique des ordres : un bug ou une erreur ?

Je pensais que la réponse à cette question était oui. Vous sélectionnez le ticket dans l'historique des transactions, et vous essayez d'obtenir la propriété dans l'historique des commandes. Ce sont des listes différentes.

P.S. Il y aaussi un article avec des exemples : MQL5 Recipes - Trade History and Library of Functions for Getting Position Properties(en anglais)

 
tol64:

Je pensais que la réponse à cette question était oui. Vous sélectionnez le ticket dans l'historique des transactions, et vous essayez d'obtenir la propriété dans l'historique des commandes. Ce sont des listes différentes.

P.S. Et il y a un article avec des exemples : Recettes MQL5 - Historique et bibliothèque de fonctions pour obtenir des propriétés de position

Je pensais que les commandes étaient divisées en 2 parties et il y en a 3. Merci, vous l'expliquez mieux)