Erreurs, bugs, questions - page 2818

 
Nikolai Semko:

Oui, je peux.

Un script de test est joint.

Le résultat du script :

Ceci ne fonctionnera que pour les indicateurs d'interface (imposés manuellement par l'utilisateur), mais ne fonctionnera pas pour ceux créés à partir d'EAs. La tâche consiste tout au plus à activer l'auto-optimisation virtuelle en incluant un inlude dans le code source de l'EA. Maintenant, cela n'est possible qu'avec une danse au tambourin (édition supplémentaire du code source ou certains paramètres par défaut (seulement la période _Symbol/ actuelle), ce qui ne fonctionnera pas toujours).

Et, en principe, on ne comprend pas pourquoi la fonction IndicatorParameters ne renvoie pas les deux méta-paramètres les plus importants.

Quant aux indicateurs et aux Expert Advisors sur toile, tout peut être fait techniquement, mais la question est de savoir pourquoi s'en préoccuper. L'objectif d'une toile est différent. Pour les devis personnalisés, il existe une solution prête à l'emploi où les indicateurs et les experts sont intégrés de manière standard.

 

conseiller - comment sont calculés correctement les bénéfices dans les widgets et les signaux...

la semaine dernière - ou plutôt dans les 5 premiers jours de trading j'ai fait 1000%, puis le jour suivant


j'ai fait un autre 1000% - c'était bien dans les signaux et les widgets

donc... puis est venue la deuxième semaine de négociation - et puis bam... et il n'est que de +39 %.

OK - Je pense que je vais échanger un peu plus... et j'en reste là - j'ai fini 0 et bam... ce n'est pas +39% mais 98%... du côté positif, j'ai obtenu +4000%...



Alors, quel est le pourcentage que j'ai ? ?? 39 ou 98 ou dois-je croire mes yeux - c'est tout 4000%.

 
Stanislav Korotky:

Cela ne fonctionnera que pour les indicateurs d'interface (imposés manuellement par l'utilisateur), mais pas pour ceux créés à partir des Expert Advisors. La tâche la plus importante consiste à activer l'auto-optimisation virtuelle en incluant un include dans le code source de l'EA. Maintenant, cela n'est possible qu'avec une danse au tambourin (édition supplémentaire du code source ou certains paramètres par défaut (seulement la période _Symbol/ actuelle), ce qui ne fonctionnera pas toujours).

Et, en principe, il n'est pas clair pourquoi la fonction IndicatorParameters ne renvoie pas les deux méta-paramètres les plus importants.

Quant aux indicateurs et aux Expert Advisors sur toile, tout peut être fait techniquement, mais la question est de savoir pourquoi s'en préoccuper. L'objectif d'une toile est différent. Pour les devis personnalisés, il existe une solution prête à l'emploi où les indicateurs et les experts sont intégrés de manière standard.

Oui, si l'indicateur a été créé à l'aide des fonctions IndicatorCreate, iCustom, iMA, iMACD, i... et qu'il n'est pas supervisé, c'est-à-dire qu'il n'est pas attaché à un graphique en utilisant ChartIndicatorAdd, alors vous ne pouvez vraiment pas connaître le TF et le symbole de cet indicateur, si cet indicateur n'a pas été créé par vous. Si c'est le cas, vous devez connaître le symbole et le TF au moment où vous avez créé l'indicateur et obtenu la poignée.
Si l'indicateur n'est pas le vôtre, il n'est pas logique d'interférer dans la parcelle de quelqu'un d'autre, surtout quand cet indicateur n'est pas dans les graphiques et qu'il s'agit d'un service.
Mais si l'indicateur, dont le symbole et le TF doivent être contrôlés par son handle, est écrit par vous, mais n'est pas utilisé par vous ou est utilisé de manière non supervisée, vous pouvez créer un buffer supplémentaire dans celui-ci, dans lequel (par l'union par exemple) son TF et son symbole actuels sont stockés. Ensuite, même lors d'une simple manipulation de handles avec votre fonction spécialeutilisant le CopyBuffer, vous pouvez savoir s'il s'agit de votre indicateur, et s'il s'agit du vôtre, vous pouvez lire son symbole actuel et son TF.
Mais je suis d'accord avec vous, si IndicatorParameters avait la possibilité de lire le TF et le symbole, ce serait beaucoup plus facile. Il est clair que cette fonction en est dépourvue. Il est peu probable que son absence soit liée à la sécurité, car l'identifiant inconnu a déjà un accès complet au contenu de l'indicateur, à l'exception du TF et du symbole.

 
Aleksander:

conseiller - comment sont calculés correctement les bénéfices dans les widgets et les signaux...

la semaine dernière - ou plutôt dans les 5 premiers jours de trading j'ai fait 1000%, puis le jour suivant


j'ai fait un autre 1000% - c'était bien dans les signaux et les widgets

donc... puis est venue la deuxième semaine de négociation - et puis bam... et il n'est que de +39 %.

OK - Je pense que je vais échanger un peu plus... et j'en reste là - j'ai fini 0 et bam... ce n'est pas +39% mais 98%... du côté positif, j'ai obtenu +4000%...



Alors, quel est le pourcentage que j'ai ? ?? 39 ou 98 ou dois-je croire mes yeux - c'est tout 4000%.

Les réponses à des questions aussi naïves sont si évidentes que l'on ne peut s'empêcher de s'interroger sur l'autopromotion. Croyez-moi, j'adorerais avoir tort, mais ......

 
Sergey Voytsekhovsky:

Les réponses à ces questions naïves sont si évidentes que des soupçons d'autopromotion viennent involontairement à l'esprit. Croyez-moi, j'adorerais avoir tort, mais ......

nah - c'est vraiment la première fois que j'utilise le service Signals... Et qu'est-ce que je vois ? Une semaine, les pourcentages sont comptés de telle ou telle façon... et la semaine suivante, que dois-je attendre du widget ? 0 % à nouveau ?

j'ai une dissonance cognitive - quand je vois une chose ici - et puis j'en vois une autre - et que dois-je croire alors ????

comment calculer les pourcentages dans un widget ? ???

Торговые сигналы для MetaTrader 5
Торговые сигналы для MetaTrader 5
  • www.mql5.com
Выберите подходящую торговую систему и оформите на неё подписку в пару кликов. Замониторенные счета сопровождаются подробной статистикой и торговой историей. Посмотрите обучающий видеоролик о том, как подписаться на Сигнал...
 

La fonction a cessé de fonctionner après la mise à jour

ChartSetInteger(0,CHART_BRING_TO_TOP,0,true)

Il ne passe pas au graphique 0, quelle pourrait être l'erreur ?

void OnStart()
  {
   long currChart,prevChart=ChartFirst();
   int z=0,limit=100;
     while(z<limit)
     {
      currChart=ChartNext(prevChart);
      string __simvol=ChartSymbol(currChart);
      ENUM_TIMEFRAMES __period=ChartPeriod(currChart);
      if(currChart==-1)
        {
         __simvol=Symbol();
         currChart=0;
        };
         if(!ChartSetInteger(currChart,CHART_BRING_TO_TOP,0,true))
        {
         //--- выведем сообщение об ошибке в журнал "Эксперты"
         Print(__FUNCTION__+", Error Code = ",GetLastError());
         //return(false);
        };
      Print(currChart, "  ", __simvol);

      Sleep(2000);
      if(currChart==0)
         {break;};
     prevChart=currChart;
      z++;

     };
  }
 

Aidez-moi, s'il vous plaît.

Comment connaître le prix d'un ordre au marché sur le symbole de gauche ?


En utilisant l'exemple d'un EA.

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

input int inTP = 100; // Размер тейка.

#define  Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  if (!OrdersTotal()) // Если нет текущих ордеров
  {
    OrderSend(_Symbol, OP_BUY, 0.1, Ask, 0, 0, Ask + inTP * _Point);  // Купили с тейком.
    OrderSend(_Symbol, OP_SELL, 0.1, Bid, 0, 0, Bid - inTP * _Point); // Продали с тейком.
  }
}


Résultat du backtest.

Vous devez connaître les prix des zéros marqués. Pour ce qui est de SL/TP, vous pouvez les obtenir à partir du commentaire. Mais quand on passe un ordre au marché (pas les zéros verts sur la capture d'écran), où les trouve-t-on ?


Vous en avez besoin pour estimer les dérapages. Par exemple, dans le terminal, vous voyez un bon prix, cliquez sur acheter. L'accord est exécuté. Ensuite, nous voulons comprendre dans quelle mesure le prix de l'offre diffère de celui qui se trouvait dans le terminal lorsque nous avons appuyé sur la touche. On a l'impression que MT5 ne vous permet pas de faire la plus simple des analyses !


Ou, par exemple, vous voulez étudier l'effet de la fonctionnalité de décalage du testeur sur le résultat de l'EA. Pour ce faire, vous devez estimer ce que le glissement est devenu. Et cela ne peut pas être fait. Plus précisément, je ne peux pas le faire.


Ma question est la suivante : comment puis-je connaître le prix de mon ordre de marché s'il a été défini comme non nul dans MqlTradeRequest ?

 
fxsaber:

Question : comment puis-je connaître le prix d'un ordre au marché s'il a été défini comme non nul dans MqlTradeRequest ?

Le remplacement du marché par une limite avec une marge fixe n'aidera pas ?

 
SEM:

La fonction a cessé de fonctionner après la mise à jour

il ne passe pas à la carte 0, quel pourrait être le problème ?

J'ai une fonction similaire - changer le modèle sur le graphique. Avant la mise à jour, cela fonctionnait bien, maintenant cela change mais, sur un graphique, il peut y avoir plusieurs fenêtres avec un modèle.

//+------------------------------------------------------------------+
//| start function                                                   |
//+------------------------------------------------------------------+
void DeleteChart(void)
  {
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   bool errTemplate;
   while(i<limit)
     {
      currChart=ChartNext(prevChart);
      if(TimeFrame!=PERIOD_CURRENT)
        {
         ChartSetSymbolPeriod(prevChart,ChartSymbol(prevChart),TimeFrame);
        }
      errTemplate=ChartApplyTemplate(prevChart,Template+".tpl");
      if(!errTemplate)
        {
         Print("Error ",ChartSymbol(prevChart),"-> ",GetLastError());
        }
      if(currChart<0)
         break;
      Print(i,ChartSymbol(currChart)," ID =",currChart);
      prevChart=currChart;
      i++;
     }
  }
//+------------------------------------------------------------------+
 
fxsaber:

Ou, par exemple, vous voulez étudier l'effet de la fonctionnalité de retardement du testeur sur le résultat de l'EA. Pour ce faire, vous devez estimer ce que devenait le glissement. Et cela ne peut pas être fait. Plus précisément, je ne peux pas le faire.

Dans le Strategy Tester, nous avons réussi à le faire de manière standard. Nous changeons la valeur du champ d'exécution comme indiqué dans la capture d'écran.


Le résultat.


Les zéros ont disparu et nous pouvons estimer le glissement dans le testeur. Le problème est ouvert pour Real.