Je vais écrire l'indicateur gratuitement - page 18

 
Yurij Izyumov:
Comment distribuer le volume en ticks sur un chandelier, le chandelier a une plage et parfois une grande plage.

Je ne connais pas bien les détails, mais je pense que ça va marcher.

Supposons qu'un chandelier d'une minute ait une fourchette de HL=100 points et une certaine quantité d'unités de volume en tick.

Si nous prenons la théorie selon laquelle chacune d'entre elles est multidirectionnelle avec un ordre aléatoire, nous obtenons, par exemple, un chandelier de 5 minutes et nous verrons la distribution du prix avec

HL_0bar/antique volume HL_1bar/antique volume HL2bar/antique volume etc.

c'est-à-dire que nous fonctionnons déjà avec l'unité "valeur du chandelier/volume antique". En fait, la ligne reflétera verticalement la valeur de cet indicateur par rapport à d'autres indicateurs similaires. Et nous pouvons l'utiliser sur les cartes m5

de même avec le chandelier de 15 minutes, qui se compose de chandeliers de 15 minutes

Il est clair que la définition actuelle n'est pas tout à fait ce que nous voulions initialement, mais je viens de regarder la documentation - il n'y a pas d'historique de graphique en tick nulle part, donc la bougie minimale est une minute.

 

Bonjour, j'ai besoin d'un RSI standard avec une alerte. Est-il possible de mettre en œuvre une telle idée pour les signaux de voie confortable. Jusqu'à présent, je suis tombé soit sur un tas de bêtises liées au RSI, soit sur une alerte lorsqu'une bougie se ferme (et que le train est parti...).

un bip avec un message devrait être accompagné d'une indication de la paire sur laquelle l'événement se produit.

Le signal est émis une fois lors de la formation d'une bougie dans le cadre temporel sélectionné, lors du franchissement du niveau supérieur ou inférieur, respectivement, uniquement lors du franchissement à la hausse ou à la baisse et uniquement au moment du franchissement, et non lors de la fermeture de la bougie.

Il est souhaitable de faire un niveau de plus, au moment de son franchissement, il y a aussi un signal à temps unique.

Exemple.

Dans le cadre temporel 5M, le prix de l'EUR/USD baisse. À un moment donné, après avoir franchi le niveau RSI 30 (par exemple, à la 80e seconde d'une bougie), une alerte est générée et un message s'affiche indiquant que la paire EUR/USD a un signal d'achat préliminaire à un moment donné.

Si dans le temps restant de la formation d'une bougie, le RSI touche le niveau suivant (par exemple 20), une alerte retentit et envoie le message qu'à un certain moment sur la paire eVor dollar il y a un deuxième signal d'achat.

De préférence, le message doit montrer d'une manière ou d'une autre que le signal est préliminaire ou déjà spécifique (c'est-à-dire répété).

 
Yurij Izyumov:

Afin de le réécrire, tous les indicateurs à inclure doivent également être sous mql5

B Désolé pour le retard dans la réponse, mais j'ai VRAIMENT besoin de votre aide. Je suis en train d'écrire un article et le modérateur m'a demandé de réécrire tous les codes des fichiers joints pour mql5. Je n'ai besoin de réécrire que deux d'entre eux. Le reste des codes sera répliqué pour d'autres fichiers.

Je vous serais très reconnaissant de ne pas tergiverser, car la publication de l'article est retardée précisément à cause de cela. À mon tour, je promets de vous faire connaître mon traité. Merci encore !

1. Donc, ce que vous devez faire. Dans l'indicateur TDSEQUENTA_by_nikelodeon.mq5 j'ai ajouté un autre tampon qui est responsable de la transmission du signal, où 1 est Achat et -1 est Vente, je pense qu'il ne devrait pas y avoir d'erreur ici. Mais il est nécessaire d'ajouter un tampon supplémentaire, où lors de la formation d'un point bleu ou rouge, c'est-à-dire le signal lui-même, le nombre de points verts de chaque signal serait écrit dans ce tampon. J'ai déjà ajouté un tampon numéro 7, il ne reste plus qu'à y organiser l'écriture.

2. L'indicateur eVOLution-dvoid.1.3 (1).mq5 doit être complètement réécrit pour MQL5 ; cet indicateur prend les données des fichiers qui se trouvent dans le dossier\Files\evolution-dvoid\dvoid-BP.csv. Nous utilisons le format csv, mais comme ce format n'est pas supporté sur le forum, je vais le coller au format txt. Après le téléchargement, il faut le mettre dans le dossier spécifié et renommer l'extension en csv. Notre indicateur devrait fonctionner avec ce fichier.

L'indicateur BuyVOLDOWNNOPDOWN.mq5 doit être réécrit en MQL5 pour montrer comment les autres indicateurs sont appelés ; sur l'exemple de eVOLution-dvoid.1.3 (1).mq5, il est appelé là.

Quant aux fichiers de la famille Cluster_X, je vais essayer de les télécharger pour MT5 et nous verrons ensuite comment les joindre. Mais le plus important maintenant est de résoudre le problème avec les indicateurs ci-dessus. Merci beaucoup ! !!

 
Mihail Marchukajtes:
Puis-je vous demander quel sera le sujet de l'article ?
 
Alexey Kozitsyn:
Puis-je vous demander quel sera le sujet de l'article ?
Systèmes d'intelligence artificielle
 
Bon après-midi. Je suis sur l'indicateur Delta_RSI, il continue à dessiner (voir capture d'écran) histo dans les deux directions en même temps (chercher l'erreur). Est-il possible de colorer la couleur de l'absence de signal pour un niveau supérieur ou inférieur à zéro ? Merci.
 

BonjourYurij Izyumov! En parcourant les forums et en posant cette question, je n'ai pas obtenu de réponse claire... chacun a proposé sa solution, mais seulement en paroles et sans confirmer qu'elle fonctionnerait. J'aimerais voir la mise en œuvre pratique de cette question. Et la question est la suivante...

Il existe un indicateur de CodyBase https://www.mql5.com/ru/docs/series/copybuffer.

Le problème est que lorsque vous modifiez l'horizon temporel dans les paramètres d'entrée de l'indicateur, le délai de calcul de l'indicateur jusqu'à l'apparition d'un nouveau tick, et cela peut prendre jusqu'à plusieurs heures pour différents instruments.

Avez-vous la possibilité de mettre en œuvre cet écart ? Merci !

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyBuffer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Tango_X:

BonjourYurij Izyumov! En parcourant les forums et en posant cette question, je n'ai pas obtenu de réponse claire... chacun a proposé sa solution, mais seulement en paroles et sans confirmer qu'elle fonctionnerait. J'aimerais voir la mise en œuvre pratique de cette question. Et la question est la suivante...

Il existe un indicateur de CodyBase https://www.mql5.com/ru/docs/series/copybuffer.

Le problème est que lorsque vous modifiez l'horizon temporel dans les paramètres d'entrée de l'indicateur, le délai de calcul de l'indicateur jusqu'à l'apparition d'un nouveau tick, et cela peut prendre jusqu'à plusieurs heures pour différents instruments.

Avez-vous la possibilité de mettre en œuvre cet écart ? Merci !

Vous pouvez forcer l'appel de OnCalculate() en appuyant sur le bouton de rafraîchissement. Vous pouvez également effectuer tous les calculs dans OnTimer() ou OnBookEvent().
 

Bonjour. Est-il possible de faire une flèche sur ces indicateurs ? modèle et des captures d'écran de transactions dans le dossier.désolé d'ajouter si ind. ne donne pas le dossier à charger

LA DÉCOMPILATION EST INTERDITE ! ARCHIVE SUPPRIMÉE !

 
Alexey Kozitsyn:
Vous pouvez forcer l'appel de OnCalculate() en appuyant sur le bouton de rafraîchissement. Vous pouvez également effectuer tous les calculs dans OnTimer() ou OnBookEvent().

Je l'ai implémenté avec OnTimer() et rien n'en est ressorti. Malheureusement l'événement onTimer() ne calcule pas l'indicateur et le délai est sauvegardé, peut-être une affirmation forte et j'ai fait quelque chose de mal, s'il vous plaît corriger. Merci !

//+------------------------------------------------------------------+
//|                                              TestCopyBuffer3.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//---- plot MA
#property indicator_label1  "MA"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- input parameters
bool               AsSeries=true;
int                period=15;
input ENUM_TIMEFRAMES    TimeFrame=PERIOD_CURRENT; //Период графика
ENUM_MA_METHOD     smootMode=MODE_EMA;
ENUM_APPLIED_PRICE price=PRICE_CLOSE;
int                shift=0;
//--- indicator buffers
double                   MABuffer[];
int                      ma_handle;
int to_copy;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,MABuffer,INDICATOR_DATA);
   Print("Параметр AsSeries = ",AsSeries);
   Print("Индикаторный буфер после SetIndexBuffer() является таймсерией = ",
         ArrayGetAsSeries(MABuffer));
//--- set short indicator name
   IndicatorSetString(INDICATOR_SHORTNAME,"MA("+period+")"+AsSeries);
//--- set AsSeries (depends on input parameter)
   ArraySetAsSeries(MABuffer,AsSeries);
   Print("Индикаторный буфер после ArraySetAsSeries(MABuffer,true); является таймсерией = ",
         ArrayGetAsSeries(MABuffer));
//---
   ma_handle=iMA(Symbol(),TimeFrame,period,shift,smootMode,price);
   EventSetTimer(1);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- check if all data calculated
   if(BarsCalculated(ma_handle)<rates_total) return(0);
//--- we can copy not all data
   //int to_copy;
   if(prev_calculated>rates_total || prev_calculated<=0) to_copy=rates_total;
   else
     {
      to_copy=rates_total-prev_calculated;
      //--- last value is always copied
      to_copy++;
     }
//--- try to copy
  
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   CopyBuffer(ma_handle,0,0,to_copy,MABuffer);
   Print("Таймер");
  }
//+------------------------------------------------------------------+