Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 113

 
Merhaba!!! Aşağıdakileri yapmak istiyorum:
Danışmanıma, zaten açık olanlar olsa bile tüm emirleri (Sat ve Al) açması için ihtiyacım var ve bunu tüm koşullar yerine getirildiğinde değil, bir sonraki mumda yapıyor !!! Yardım plz...... Şimdiden teşekkürler...

Şu anda kodum şöyle:

PHP kodu:
geçersiz başlangıç ()
{
eğer(
YeniÇubuk ())
{
// algoritmanın kendisi vb.
}
}

bool NewBar ()
{
statik
tarihsaat son çubuğu = 0 ;
tarihsaat curbar = iTime ( Sembol (), 0 , 0 );
if(
lastbar != bordür )
{
lastbar = bordür ;
dönüş (
doğru );
}
dönüş (
yanlış );
}
 
qroner :
void Uchet_Orderov_Function(string _Simvol, int _Magic, int &_Mas[8]){
ArrayInitialize(_Mas, 0);
int Bilet=-1;
for(int pos=OrdersTotal()-1; pos>=0; pos--){
if(OrderSelect(kon,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Simvol&&
OrderMagicNumber()==_Magic && OrderTicket()!=Ticket){
Bilet=SiparişTicket();
switch(OrderType()){
durum 0:{_Mas[0]++;_Mas[6]++;break;}
durum 1:{_Mas[1]++;_Mas[6]++;break;}
durum 2:{_Mas[2]++;_Mas[7]++;break;}
durum 3:{_Mas[3]++;_Mas[7]++;break;}
durum 4:{_Mas[4]++;_Mas[7]++;break;}
durum 5:{_Mas[5]++;_Mas[7]++;break;}
}
}
}

}

İşte fonksiyon.

Standart modda herhangi bir hata olmadığı için sorunun kodda olmadığını düşündüm.

Genel olarak, kimse kampanyaya cevap vermeyecek ...

 
qroner :

Genel olarak, kimse kampanyaya cevap vermeyecek ...

Terminal size hatanın 69. satırda olduğunu söyledi, ancak daha az satırın olduğu programın metnini gösteriyorsunuz ... Neye göre cevap vereceksiniz?
 
qroner : Genelde kimse kampanyaya cevap vermeyecek...

Gönderdiğiniz fonksiyonda herhangi bir hata yok. Aynı biletlere sahip bitişik siparişleri filtrelemek için OrderTicket()!=Ticket kullanımı kafamı karıştırdı. Kontrol edin ve hiçbirinin olmadığından emin olun. Derleyici belirtilirse (69,25), o zaman 69 satırının 25. konumuna bakın - hata oradadır. Bu tek satırı getir

 
Vladimir : Terminal size hatanın 69. satırda olduğunu söyledi, ancak daha az satırın olduğu program metnini gösteriyorsunuz ... Neye göre cevap vereceksiniz?

69. hatta ne olduğunu gerçekten merak ediyorum.

 

Ah, kimsenin cevap vermeyeceğini düşündüm.

İşte kodun o kısmı:

66 double Volatilite(int _period){

67 çift toplam = 0;

68 for(int i=1; i<=_period; i++)

69 summ+=MathAbs(Yüksek[i]-Düşük[i]);

70 dönüş( NormalizeDouble (toplam/_dönem, Rakamlar));

71}

Bahşiş için teşekkürler

 
qroner :

Ah, kimsenin cevap vermeyeceğini düşündüm.

İşte kodun o kısmı:

66 double Volatilite(int _period){

67 çift toplam = 0;

68 for(int i=1; i<=_period; i++)

69 summ+=MathAbs(Yüksek[i]-Düşük[i]);

70 dönüş(NormalizeÇift(toplam/_dönem, Rakamlar));

71}

Bahşiş için teşekkürler

Temiz. Hata, summ+=MathAbs(High[i]-Low[i]); satırında. Kenardan 25 pozisyon saydıktan sonra, muhtemelen High[i]'ye ulaşacağız.

Alert tarafından gönderildi (Düşük[-1]); derleyici pozitif bir sayı gerektirir. int n=-1 yazdı; Alert(Düşük[n]); - Array'i aralık dışında yürütürken. Ama nasıl <0 olabilir??? Belki de tarihsel veri eksikliğidir? ... ile ... arasındaki tarih aralığını kontrol edin

 

HANGİ Tüccarı SEÇECEK LÜTFEN BANA VEYA SUNUCUSUNUN TAM ADINI SÖYLEYİN

 
qroner :

Ah, kimsenin cevap vermeyeceğini düşündüm.

İşte kodun o kısmı:

66 double Volatilite(int _period){

67 çift toplam = 0;

68 for(int i=1; i<=_period; i++)

69 summ+=MathAbs(Yüksek[i]-Düşük[i]);

70 dönüş(NormalizeÇift(toplam/_dönem, Rakamlar));

71}

Bahşiş için teşekkürler

 double Volatility( int _period)
  {
     double summ = 0 ;

     for ( int i= 1 ; i<=_period; i++)
         if ( ArraySize ( High ) > i && ArraySize ( Low ) > i)
           summ+= MathAbs ( High [i]- Low [i]);

     return ( NormalizeDouble (summ/_period, Digits ));
 }
 double Volatility( int _period)
  {
     double summ = 0 ;
     int src = MathMin ( MathMin (_period, ArraySize ( High )), ArraySize ( Low ));

     for ( int i= 1 ; i<src; i++)
        summ+= MathAbs ( High [i]- Low [i]);

     return ( NormalizeDouble (summ/_period, Digits ));
 }

Görünüşe göre _period'unuz bazen dizinin öğelerinden daha büyük bir değere sahip. Buradan ve dizinin ötesine geçiyoruz.

Seçeneklerden birini seçin.

 
Tünaydın ! Nasıl bir tetikleyici oluşturabilirsiniz? Örneğin, DayDown = 1 yürütülürse if( iClose (NULL,HTF,4)<BlueLine) bu koşula ihtiyacım var! Soru: DayDown'ı 1'de bırakıp ertesi güne kadar yoklamayı nasıl bırakabilirim?