int j; ... 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 :
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 serait la formule pour calculer la valeur du prix si la valeur MACD actuelle devenait "-A" ?
Leo59: 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" ?
Индикатор используют для проверки силы и направления тренда, а также определения разворотных точек. Строится на основе скользящих средних. Существует две модификации индикатора MACD: линейный MACD и MACD-гистограмма. Для расчёта линейного MACD из скользящей средней цены (обычно берётся экспоненциальная скользящая средняя с меньшим периодом...
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 doit être la formule pour calculer la valeur du prix si la valeur MACD actuelle devient "-A" ?
Leo59: 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" ?
Il serait peut-être utile de montrer la formule permettant de calculer quand une certaine valeur de "A" a une valeur positive - on ne sait pas très bien de quoi on parle.
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" ?