Questions des débutants MQL5 MT5 MetaTrader 5 - page 654
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
Le numéro de barre de la fractale inférieure est connu.
A partir de là, recherchez dans la boucle le premier sommet correspondant au creux de la fractale connue.
Nous pourrions le faire, mais je ferais le contraire. C'est-à-dire que nous trouvons d'abord le sommet de la bougie précédente (formée), puis la dernière fractale descendante. S'ils coïncident, on met un point.
Je ne comprends pas. Je pensais que c'était ce qu'on faisait dans l'état.
Entrez le LOGIN et le PASSWORD de MQL5.community.
Où y a-t-il exactement une ligne ?
Désolé, j'ai confondu avec le terminal. Bien sûr, il vous suffit d'entrer le LOGIN de MQL5.community.
Je ne comprends pas. Je pensais que c'était ce qu'on faisait dans l'état.
Facile... fais ça...
#property link "https://www.mql5.com/ru/users/tapochun"
#property version "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
//---
#property indicator_type1 DRAW_ARROW
#property indicator_width1 5
#property indicator_color1 clrAqua
#property indicator_type2 DRAW_ARROW
#property indicator_width2 5
#property indicator_color2 clrRed
//+------------------------------------------------------------------+
//| Глобальные переменные |
//+------------------------------------------------------------------+
double bufSell[];
double bufBuy[];
//+------------------------------------------------------------------+
//| Входные параметры |
//+------------------------------------------------------------------+
input int inpNum=50; // Количество свечей для поиска последнего фрактала
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SetIndexBuffer(0,bufBuy);
SetIndexBuffer(1,bufSell);
SetIndexEmptyValue(0,EMPTY_VALUE);
SetIndexEmptyValue(1,EMPTY_VALUE);
SetIndexArrow(0,225);
SetIndexArrow(1,226);
IndicatorDigits(_Digits);
//---
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<=0 || prev_calculated<0)
return( 0 );
//---
if(prev_calculated>0) // Если не первый расчет индикатора
{
}
else // Если первый расчет индикатора
{
ArrayInitialize(bufBuy,EMPTY_VALUE);
ArrayInitialize(bufSell,EMPTY_VALUE);
//---
for(int i=1; i<rates_total-7; i++)
{
CheckBuyArrow(low[i],i,i+4,rates_total-3,time);
CheckSellArrow(high[i],i,i+4,rates_total-3,time);
}
}
//---
return(rates_total);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CheckBuyArrow(const double price,
const int index,
const int first,
int last,
const datetime &time[]
)
{
last=(first+inpNum-1<last) ? first+inpNum-1 : last;
double iPrice;
//---
for(int i=first; i<=last; i++)
{
iPrice=iFractals(_Symbol,_Period,MODE_UPPER,i);
if(iPrice!=EMPTY_VALUE)
{
if(price==iPrice)
{
bufBuy[index]=iPrice-10*_Point;
Print(__FUNCTION__,": "+TimeToString(time[index])+" - "+TimeToString(time[i]));
}
return;
}
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CheckSellArrow(const double price,
const int index,
const int first,
int last,
const datetime &time[]
)
{
last=(first+inpNum-1<last) ? first+inpNum-1 : last;
double iPrice;
//---
for(int i=first; i<=last; i++)
{
iPrice=iFractals(_Symbol,_Period,MODE_LOWER,i);
if(iPrice!=EMPTY_VALUE)
{
if(price==iPrice)
{
bufSell[index]=iPrice+10*_Point;
Print(__FUNCTION__,": "+TimeToString(time[index])+" - "+TimeToString(time[i]));
}
return;
}
}
}
//+------------------------------------------------------------------+
Merci, mais il ne montre aucun signe de vie... peut-être ai-je fait quelque chose de mal ?
Plusieurs options sont possibles :
Eh bien, le système est x64, parce que j'ai 8 Go de RAM, et le système win 10, ok merci déconnecté le pare-feu maintenant essayer à nouveau !
Je ne comprends pas. Je pensais que c'était ce qu'on faisait dans l'état.