Questions des débutants MQL5 MT5 MetaTrader 5 - page 716
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Salut ... Comment ça, tu ne peux pas ?
Qu'est-ce que c'est, alors ? Cinq minutes dans l'éditeur...
C'est parfait !
Une équipe ?
...
start()
{
........
j=j+10;
PlotIndexSetInteger(0,PLOT_SHIFT,j);
........
MERCI !
De toute façon.
Le déplacement de la ligne dans la fenêtre de l'indicateur vers la droite, au-delà de la barre de zéro, fonctionne sur la plateforme MT5.
MT4 n'a pas cette fonctionnalité, ça n'a pas marché, quoi que je fasse.
De plus, MT5, pour autant que je sache, a une capacité de modélisation en 3D, contrairement à MT4.
Tout cela est très cool !
J'ai craqué.
Je passe à MT5 ! !! // Et je le fais de toute urgence ;)
Qu'est-ce qui est impossible ? Déplacer le tampon indicateur vers la droite ? Oui, vous pouvez, même à droite ou à gauche ;) SetIndexShift().
Mais si vous avez décidé de passer à MT5, allez-y ;)
C'est génial !
Le commandement ?
...
start()
{
........
j=j+10;
PlotIndexSetInteger(0,PLOT_SHIFT,j);
........
J'ai stupidement inversé les dix dernières valeurs du tampon de calcul et sorti avec un décalage de 10 mesures. Je n'ai même pas pensé à une quelconque optimisation ou autre. Juste pour vous montrer :
//| iCheckShift.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots 2
//--- plot BufferCurrent
#property indicator_label1 "BufferCurrent"
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrRed
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- plot BufferFuture
#property indicator_label2 "BufferFuture"
#property indicator_type2 DRAW_LINE
#property indicator_color2 clrDodgerBlue
#property indicator_style2 STYLE_SOLID
#property indicator_width2 2
//--- input parameters
input int Shift=10; // Смещение в будущее (баров)
//--- indicator buffers
double BufferCurrent[];
double BufferFuture[];
double BufferCalculate[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
IndicatorBuffers(3);
SetIndexBuffer(0,BufferCurrent,INDICATOR_DATA);
SetIndexBuffer(1,BufferFuture,INDICATOR_DATA);
SetIndexBuffer(2,BufferCalculate,INDICATOR_CALCULATIONS);
SetIndexShift(1,Shift);
//---
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[])
{
//---
if(rates_total<1) return(0);
ArraySetAsSeries(BufferCalculate,true);
ArraySetAsSeries(BufferCurrent,true);
ArraySetAsSeries(BufferFuture,true);
int limit=rates_total-prev_calculated;
if(limit>1) {
limit=rates_total-1;
ArrayInitialize(BufferCalculate,EMPTY_VALUE);
ArrayInitialize(BufferCurrent,EMPTY_VALUE);
ArrayInitialize(BufferFuture,EMPTY_VALUE);
}
for(int i=limit; i>=0; i--) {
BufferCurrent[i]=(high[i]+low[i])/2.0;
if(i<Shift) BufferCalculate[i]=(high[i]+low[i]+open[i]+close[i])/4.0;
}
for(int i=0; i<Shift; i++) {
BufferFuture[Shift-i]=BufferCalculate[i];
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
Qu'est-ce qui n'est pas possible ? Déplacer le tampon indicateur vers la droite? Oui, vous pouvez, à droite ou à gauche ;)
Mais si vous avez décidé de passer à MT5, allez-y ;)
votre code écrit ci-dessus. N'est-ce pas ?
Je l'ai ajouté ici. SetIndexShift(). Et Artiom l'a écrit plus en détail.
Enfin ! Problème résolu.
...
start()
{
........
j=j+10;
SetIndexShift(0,j);
Tout fonctionne sur MT4.
MERCI BEAUCOUP ! !!
Ma question est la suivante :
Il y a un MACD dans la fenêtre de l'indicateur qui a une certaine valeur "A" calculée sur le prix actuel. Quelle serait la formule pour calculer la valeur du prix si la valeur MACD actuelle devenait "-A" ?
Bonjour !
Ma question est la suivante :
Il y a un MACD dans la fenêtre de l'indicateur qui a une certaine valeur "A" calculée sur le prix actuel. Quelle doit être la formule qui calcule la valeur du prix si la valeur MACD actuelle devient "-A" ?
https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80_MACD
Il y a un MACD dans la fenêtre de l'indicateur, qui a une certaine valeur "A" calculée sur le prix actuel. Quelle doit être la formule pour calculer la valeur du prix si la valeur MACD actuelle devient "-A" ?
Renat, merci, bien sûr, pour votre participation..... Mais, la question portait sur autre chose :
Il y a un MACD dans la fenêtre de l'indicateur, qui a une certaine valeur "A" calculée sur le prix actuel. Quelle serait la formule pour calculer la valeur du prix si la valeur MACD actuelle devenait "-A" ?