MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 988

 
-nan(ind) değeri yok mu?
 
Yevhenii Levchenko :
-nan(ind) değeri yok mu?

sayı değil

 
Yevhenii Levchenko :

sizeof() bir değişkenin türünün boyutunu döndürür


Her şey doğru. Bir dizi, aynı türden bir veri topluluğudur. böyle yazarsan

 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 .


Bu dizilerden herhangi birini bir fonksiyona geçirirseniz, 52 soru neden olacak.

 
MT5 için, fırsatları açtıktan sonra kalan tüm grafik ekranları ok şeklinde yok edecek herhangi bir komut dosyası var mı, yoksa nesneleri tek tek manuel olarak silmek uzun zaman alıyor.
 
Konstantin Lebedev :
MT5 için, fırsatları açtıktan sonra kalan tüm grafik ekranları ok şeklinde yok edecek herhangi bir komut dosyası var mı, yoksa nesneleri tek tek manuel olarak silmek uzun zaman alıyor.

Ve bunu tek tek yapmanıza gerek yok, tüm grafik nesnelerini tek seferde silebilirsiniz:


 
Konstantin Lebedev :
MT5 için, fırsatları açtıktan sonra kalan tüm grafik ekranları ok şeklinde yok edecek herhangi bir komut dosyası var mı, yoksa nesneleri tek tek manuel olarak silmek uzun zaman alıyor.

Barabashka, sorunun ne hakkında olduğunu anlamadı. Sekmede "Geçmiş" veya "ticaret" bağlam menüsü ve hepsini bir kerede silin. Ayrıca eklemeyi devre dışı bırakabilirsiniz.


 
Merhaba. Yine de (yavaşça, neden acele?) MT5'te ustalaşıyorum. Kaydın yanlış anlaşılmasıyla karşı karşıya kaldı. İpucu veya elinizde bir zaman arabelleği satırı olan bir gösterge varsa, lütfen bir bağlantı atın))) Teşekkürler
 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 ;
 }
}

Yaparım
 

bana yardım et lütfen


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

//| Lex_Bands.mq4 |
//| Lex |
//| |
//+------------------------------------------- --------------------+
# mülkiyet telif hakkı "Lex"
#mülkiyet katı
#özellik göstergesi_chart_window
#özellik göstergesi_tamponları 3
#özellik göstergesi_plots 3
//--- Middle_Line'ı çiz
#özellik göstergesi_label1 "Orta_Hat"
#özellik göstergesi_type1 DRAW_LINE
#özellik göstergesi_renk1 clrLightSeaGreen
#özellik göstergesi_style1 STYLE_SOLID
#özellik göstergesi_width1 2
//--- Up_Line'ı çiz
#property Indicator_label2 "Up_Line"
#özellik göstergesi_type2 DRAW_LINE
#özellik göstergesi_renk2 clrLightSeaGreen
#özellik göstergesi_style2 STYLE_SOLID
#özellik göstergesi_width2 2
//--- Down_Line'ı çiz
#özellik göstergesi_label3 "Aşağı_Satır"
#özellik göstergesi_type3 DRAW_LINE
#özellik göstergesi_renk3 clrLightSeaGreen
#özellik göstergesi_style3 STYLE_SOLID
#özellik göstergesi_width3 2
//--- gösterge parametreleri
giriş int InpBandsPeriod=20; // MA Dönemi
giriş intklPeriod=20; // Dönem Sapması
giriş int OtklShag=5; // Adım sapması
girdi int MA_Type=0; // MA Tip 0 - SMA, 1 - EMA, 2 - SMMA, 3 - LWMA
giriş 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

//--- gösterge arabellekleri
çift Middle_LineBuffer[];
çift Up_LineBuffer[];
çift Down_LineBuffer[];

//+------------------------------------------- --------------------+
//| özel gösterge başlatma işlevi |
//+------------------------------------------- --------------------+
int OnInit()
{
Gösterge Tamponları(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);
dönüş(0);
}
//+------------------------------------------- --------------------+
//| özel gösterge yineleme işlevi |
//+------------------------------------------- --------------------+
int başlangıç()
{
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-1);
if(counted_bars > 0) counted_bars--;
int limit = Çubuklar - sayılan_barlar;
if(counted_bars==0) limit--;
çift dOtklSumMax[];
doubleSrOtklMax[];
çift dOtklSumMin[];
çift SrOtklMin[];
for(int i=1;i<=limit;i++)
{
for(int j=i;j<=i+OtklPeriod;j=j+OtklShag)
{
double max=Yüksek[iEn Yüksek(NULL,0,MODE_HIGH,OtklShag,j)];
double min=Düşük[iDüşük(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;
çift dOtklmax=Otklmax*Otklmax;
dOtklSumMax[j]=dOtklSumMax[j-1]+dOtklSumMax[j];
dOtklSumMax[OtklShag]=dOtklSumMax[j];
çift 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];
}
dönüş(0);
}

İşte gösterge kodu. Derleme yaparken hata vermiyor ama grafikte hiçbir şey göstermiyor.
 
Xander1603 :

bana yardım et lütfen

...

İşte gösterge kodu. Derleme yaparken hata vermiyor ama grafikte hiçbir şey göstermiyor.

Kodu doğru yapıştırın :


Ve basit bir soru ile çok fazla konu oluşturmayın.

 
Ve dizeyi enum'a nasıl dönüştürebilirim?