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
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 !
Ce que vous avez fait n'est pas une implémentation par OnTimer(). Vous n'y obtenez que des valeurs (tout l'historique, et chaque seconde, sans aucun contrôle). En général, il est peu probable que vous puissiez le mettre en œuvre par vous-même. Attendre la réponse de l'auteur de la branche :)
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("Таймер");
}
//+------------------------------------------------------------------+
Je suppose que cela signifiedéplacer tout ce qui est dansOnCalculate versOnTimer.
Afin de le réécrire, tous les indicateurs à inclure doivent également être sous mql5
Après-midi. Je suis sur l'indicateur Delta_RSI, je l'ai constamment dessiné (voir capture d'écran) histo dans les deux sens en même temps (chercher l'erreur). Il est également possible de colorer la couleur de l'absence de signal pour les valeurs supérieures ou inférieures à zéro. Serez-vous capable de voir(corriger) ? Merci.
décrivez ce que vous faites pour le briser ))))
graphique, TF, séquence, etc.
décrivez ce que vous faites pour le briser ))))
graphique, TF, séquence, etc.