Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 988

 
-nan(ind) non c'è nessun valore?
 
Yevhenii Levchenko:
-nan(ind) non è un numero?

non un numero

 
Yevhenii Levchenko:

sizeof() restituisce la dimensione del tipo di variabile


Proprio così. Un array è una collezione di dati dello stesso tipo. Se lo scrivi così

int masiv[1];
Print(sizeof(masiv));//вернёт 4, потому что int 4 байта, если так masiv[2]- будет 8.
int Perem;
Print(sizeof(Perem));//вернёт 4, потому что int 4 байта
//если записать вот так
int masiv[];
Print(sizeof(masiv));вернёт 52 вне зависимости где и как объявлен массив.
//если записать вот так
int masiv[][3][3];
Print(sizeof(masiv));вернёт 52.


Se si passa uno qualsiasi di questi array in una funzione, ci sarà una domanda 52 perché.

 
C'è qualche script per mt5 per cancellare tutti i grafici delle frecce rimanenti dopo l'apertura dei trade, altrimenti è molto tempo per cancellare manualmente gli oggetti uno per uno.
 
Konstantin Lebedev:
C'è qualche script per mt5 per cancellare tutti i display grafici rimanenti sotto forma di frecce dopo l'apertura dei trade, perché ci vuole molto tempo per cancellare manualmente gli oggetti uno per uno.

Non c'è bisogno di farlo uno per uno, si possono eliminare tutti gli oggetti grafici in una volta sola:


 
Konstantin Lebedev:
C'è qualche script per mt5 per cancellare tutti i display grafici rimanenti sotto forma di frecce dopo l'apertura dei trade, altrimenti ci vuole molto tempo per cancellare manualmente gli oggetti uno per uno.

Il batterista non capisce di cosa si tratta. Nella scheda "Storia" o "Commercio", menu contestuale e cancellare tutto in una volta. Potete anche disabilitare l'aggiunta.


 
Salve. Sto ancora (lentamente, che fretta c'è?) padroneggiando MT5. Di fronte alla mancata comprensione del disco. Suggerimento o se c'è un indicatore con una linea di buffer per il tempo si prega di inviarmi il link))) Grazie
for(int i=limit; i>=0; i--)
{
...

MqlDataTime tm;
TimeToStruct(time[i],tm);

if(tm.hour==18 && tm.min==30 && Period()<=PERIOD_H1)
 {
//функция для создания таймлинии (вертикальная) ВСЕ ОК!

//КАК ВЫГЛЯДИТ ЗАПИСЬ СОЗДАНИЯ БУФЕРНОЙ ЛИНИИ ? ТАК НЕ ПОЛУЧАТСЯ 
for(int j=shift; j>=0; j--)
 {
CL=iClose(NULL,_Period,j);
Buff[i]=close[j]; // =CL;

if(Buff[j-1]!=Buff[j])
Buff[j-1]=EMPTY_VALUE;
 }
}

Fare
 

Aiuto per favore


//+------------------------------------------------------------------+

//| Lex_Bands.mq4 |
//| Lex |
//| |
//+------------------------------------------------------------------+
#proprietà copyright "Lex"
#proprietà rigorosa
#proprietà indicator_chart_window
#proprietà indicator_buffers 3
#proprietà indicator_plots 3
//--- tracciare Middle_Line
#property indicator_label1 "Middle_Line"
#proprietà indicator_type1 DRAW_LINE
#property indicator_color1 clrLightSeaGreen
#proprietà indicator_style1 STYLE_SOLID
#proprietà indicator_width1 2
//--- trama Up_Line
#property indicator_label2 "Up_Line"
#proprietà indicator_type2 DRAW_LINE
#property indicator_color2 clrLightSeaGreen
#proprietà indicator_style2 STYLE_SOLID
#proprietà indicator_width2 2
//--- plot_Line
#property indicator_label3 "Down_Line"
#proprietà indicator_type3 DRAW_LINE
#property indicator_color3 clrLightSeaGreen
#proprietà indicator_style3 STYLE_SOLID
#proprietà indicator_width3 2
//--- parametri dell'indicatore
input int InpBandsPeriod=20; // MA Period
input int OtklPeriod=20; // periodo Otkloneniya
input int OtklShag=5; // Shag Otkloneniya
input int MA_Type=0; // MA Type 0 - SMA, 1 - EMA, 2 - SMMA, 3 - LWMA
input int Applied_Price=4; // 0 - PRICE_CLOSE, 1 - PRICE_OPEN, 2 - PRICE_HIGH, 3 - PRICE_LOW, 4 - PRICE_MEDIAN, 5 - PRICE_TYPICAL, 6 - PRICE_WEIGHTED

//--- buffer di indicatori
double_LineBuffer[];
double_LineBuffer[];
double_LineBuffer[]; double Down_LineBuffer[];

//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'indicatore personalizzato
//+------------------------------------------------------------------+
int OnInit()
{
IndicatorBuffers(7);
SetIndexBuffer(0,Middle_LineBuffer);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(1,Up_LineBuffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(2,Down_LineBuffer);
SetIndexStyle(2,DRAW_LINE);
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di iterazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-1);
if(counted_bars > 0) counted_bars;
int limit = Bars - counted_bars;
if(counted_bars==0) limit--;
doppio dOtklSumMax[];
doppio SrOtklMax[];
doppio dOtklSumMin[];
doppio SrOtklMin[];
for(int i=1;i<=limite;i++)
{
for(int j=i;j<=i+OtklPeriod;j=j+OtklShag)
{
double max=High[iHighest(NULL,0,MODE_HIGH,OtklShag,j)];
double min=Low[iLowest(NULL,0,MODE_HIGH,OtklShag,j)];
double Otklmax=max-iMA(NULL,0,InpBandsPeriod,0,MA_Type,Applied_Price,j);
double Otklmin=iMA(NULL,0,InpBandsPeriod,0,MA_Type,Applied_Price,j)-min;
doubleOtklmax=Otklmax*Otklmax;
dOtklSumMax[j]=dOtklSumMax[j-1]+dOtklSumMax[j];
dOtklSumMax[OtklShag]=dOtklSumMax[j];
doppio dOtklmin=Otklmax*Otklmax;
dOtklSumMin[j]=dOtklSumMin[j-1]+dOtklSumMin[j];
dOtklSumMin[OtklShag]=dOtklSumMin[j];
}
Middle_LineBuffer[i]=iMA(NULL,0,InpBandsPeriod,0,MA_Type,Applied_Price,i);
SrOtklMax[i]=MathSqrt(dOtklSumMax[OtklShag]/(OtklPeriod/OtklShag));
SrOtklMin[i]=MathSqrt(dOtklSumMin[OtklShag]/(OtklPeriod/OtklShag));
Up_LineBuffer[i]=iMA(NULL,0,InpBandsPeriod,0,MA_Type,Applied_Price,i)+SrOtklMax[i];
Down_LineBuffer[i]=iMA(NULL,0,InpBandsPeriod,0,MA_Type,Applied_Price,i)-SrOtklMin[i];
}
ritorno(0);
}

Ecco il codice dell'indicatore. Non ha errori quando viene compilato, ma non mostra nulla sul grafico.
 
Xander1603:

Per favore, aiutatemi.

...

Ecco il codice dell'indicatore. Non dà alcun errore durante la compilazione, ma non mostra proprio nulla sul grafico.

Inserire il codice correttamente:


E non creare molti argomenti con una semplice domanda.

 
Come si converte una stringa in enum?