[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 178

 
chief2000 >> :

Herhangi bir "i" için değişkenlerin durumunu hatırlamak için diziler ayarladıysam sorun yaşadım ve

boyutlarını "[]" tanımlamadı.

Dizi bir gösterge olarak tanımlanmışsa SetIndexBuffer(0,MyArray); int init() içinde, ek olarak başlatılması gerekmez,

aksi takdirde, MyArray[] bildirimi dışında; ayrıca ArrayResize(MyArray,Count); boyutunun başlatılmasına da ihtiyacımız var;,

Ve atamanın yapılacağı fonksiyondadır.

içinde olanlar

 int start ( )
{ ArrayResize ( MyArray , Count ) ;
//...
return ( 0 ) ;
}

.

Ancak, Dizinin boyutu, MyArray[1000] sayısıyla açıkça bildirilmişse; o zaman tüm bunlara gerek yok.

ArrayResize seçeneği, dizinin boyutunu önceden bilmiyorsanız, ancak programda hesapladığınızda kullanışlıdır.

 
Urain >> :

Dizi bir gösterge olarak tanımlanmışsa SetIndexBuffer(0,MyArray); int init() içinde, ek olarak başlatılması gerekmez,

aksi takdirde, MyArray[] bildirimi dışında; ayrıca ArrayResize(MyArray,Count); boyutunun başlatılmasına da ihtiyacımız var;,

Ve atamanın yapılacağı fonksiyondadır.

içinde olanlar

.

Ancak, Dizinin boyutu, MyArray[1000] sayısıyla açıkça bildirilmişse; o zaman tüm bunlara gerek yok.

ArrayResize seçeneği, dizinin boyutunu önceden bilmiyorsanız, ancak programda hesapladığınızda kullanışlıdır.



Cevap kapsamlı! Çok teşekkürler!

 
chief2000 >> :

Cevap kapsamlı! Çok teşekkürler!

Bütün bunların ve çok daha fazlasının ders kitabında derli toplu ve oldukça net bir şekilde yazıldığını ve yavaş yavaş peri masallarını dinlemekten bağımsız okumaya geçilmesi gerektiğini eklemeden edemeyeceğim.

 

If öğesinden sonra bir switch ifadesi eklemenin mümkün olup olmadığını açıklayabilir misiniz?

onlar:

eğer (koşul)

değiştirmek

 
chief2000 >> :

Kıyıda Chukchi balığı. Bir Amerikan denizaltısı çıkıyor, kaptan dışarı doğru eğiliyor.

Etrafına baktı, kuzeydoğuya doğru olan rotada bağırdı. Tekne battı ve gözden kayboldu. Bir süre sonra ortaya çıkıyor

Rus denizaltısı. Chukchi'nin kaptanı, Amerikan denizaltısının hangi yönde kaybolduğunu sorar.

Chukcha'nın cevapları:
- Kuzeydoğu rotası!
- Bana burada ver, akıllı olma, bana parmağını göster, bana parmağını göster!

:)

Bir acemi söyle.

MQL'de balık olarak adlandırılan işlevler vardır.

Diğer programlarda, örneğin Omega'da çağrılabilmeleri için DLL gibi işlevleri yeniden yazmak mümkün mü?

Teşekkür ederim.

 
granit77 >> :

Bütün bunların ve çok daha fazlasının ders kitabında derli toplu ve oldukça net bir şekilde yazıldığını ve yavaş yavaş peri masallarını dinlemekten bağımsız okumaya geçilmesi gerektiğini eklemeden edemeyeceğim.

Bu doğru, ama her şey zaman alır. Ve yakında MQL5 öğrenmek zorunda kalacağım..

 

İyi insanlar duruma yardımcı olur. gibi bir koşul nasıl doğru yazılır: 2 seviye 0 ve 100 ile bir gösterge var, .. ve durum aşağıdaki gibidir: çizgi bir süre sonra seviye 0'ın altına düştü ve bir süre sonra seviye 0'ın üzerine çıktı ve 100 seviyenin ötesine geçti ve çıkışta 100. seviyeden itibaren koşul sona ermelidir.

ׂ

danışmana kaydolmak işe yaramıyor, ... çünkü test sırasında hiç takılıyor, ama takılmaması için gerekli, .. nasıl yapacağımı anlamıyorum, .. ......?????

ve aşağıdaki koşulu yazmak mümkün mü?


 
Infinity >> :

İyi insanlar duruma yardımcı olur. gibi bir koşul nasıl doğru yazılır: 2 seviye 0 ve 100 ile bir gösterge var, .. ve durum aşağıdaki gibidir: çizgi bir süre sonra seviye 0'ın altına düştü ve bir süre sonra seviye 0'ın üzerine çıktı ve 100 seviyenin ötesine geçti ve çıkışta 100. seviyeden itibaren koşul sona ermelidir.

danışmana kaydolmak işe yaramıyor, ... çünkü test sırasında hiç takılıyor, ama takılmaması için gerekli, .. nasıl yapacağımı anlamıyorum, .. ......?????

ve aşağıdaki koşulu yazmak mümkün mü?


Laguero ile bir danışman arayın bence böyle durumlar vardı tam olarak hatırlamıyorum ama sizinki ona çok benziyor...

 
Infinity писал(а) >>

İyi insanlar duruma yardımcı olur. gibi bir koşul nasıl doğru yazılır: 2 seviye 0 ve 100 ile bir gösterge var, .. ve durum aşağıdaki gibidir: çizgi bir süre sonra seviye 0'ın altına düştü ve bir süre sonra seviye 0'ın üzerine çıktı ve 100 seviyenin ötesine geçti ve çıkışta 100. seviyeden itibaren koşul sona ermelidir.

danışmana kaydolmak işe yaramıyor, ... çünkü test sırasında hiç takılıyor, ama takılmaması için gerekli, .. nasıl yapacağımı anlamıyorum, .. ......?????

ve aşağıdaki koşulu yazmak mümkün mü?

Asılmamak için şöyle bir şey olmalı:

 if ( ind [ 1 ] > 0 & & ind [ 2 ] < = 0 ) flag_1 = true ;
if ( ind [ 1 ] < 0 & & ind [ 2 ] > = 0 ) flag_1 = false ;

if ( flag_1 & & ind [ 1 ] > 100 & & ind [ 2 ] < = 100 ) { flag_2 = true ; flag_1 = false ; }

if ( flag_2 & & flag_2 & & ind [ 1 ] < 100 & & ind [ 2 ] > = 100 )
{
   flag_2 = false ;
   // Здесь вроде бы произошло описываемое событие...
   // Но надо экспертом проверять...
}
Genel olarak, bu bayrakların yardımıyla daha az hesaplama olacağını ve hatta daha fazla döngü olmamasını tanımlamanın gerekli olduğunu kastettim ...
 
Infinity >> :

İyi insanlar duruma yardımcı olur. gibi bir koşul nasıl doğru yazılır: 2 seviye 0 ve 100 ile bir gösterge var, .. ve durum aşağıdaki gibidir: çizgi bir süre sonra seviye 0'ın altına düştü ve bir süre sonra seviye 0'ın üzerine çıktı ve 100 seviyenin ötesine geçti ve çıkışta 100. seviyeden itibaren koşul sona ermelidir.

danışmana kaydolmak işe yaramıyor, ... çünkü test sırasında hiç takılıyor, ama takılmaması için gerekli, .. nasıl yapacağımı anlamıyorum, .. ......?????

ve aşağıdaki koşulu yazmak mümkün mü?


Belki şöyle bir şey - sadece bir fikir(!) - Gösterge için:

x [ i ] = iRSI ( . . . ) ; // <= Пусть RSI будет в качестве Примера. 

TimeStart = 0 ;
TimeEnd   = 0 ;


if ( x [ i ] > 0    & &    x [ i + 1 ] < = 0 ) {
   TimeStart = Time [ i ] ;
}
if ( x [ i ] > = 100    & &    x [ i + 1 ] < 100 ) {
   TimeEnd = Time [ i + 1 ] ;
}

if ( TimeStart ! = 0    & &    TimeEnd ! = 0    & &    TimeEnd > TimeStart ) {
   Range_i_Start = iBarShift ( NULL , 0 , TimeStart ) ;
   Range_i_End   = iBarShift ( NULL , 0 , TimeEnd ) ;

   bool status = false ;
   for ( int k = . . . Range_i_Start - > Range_i_End   ) {
       if ( x [ k ] < 0    | |    x [ k ] > 100 ) {
         status = true ;
         break ;
       }
   } // for()

   if ( status = = false ) {
       . . . Done ;

      TimeStart = 0 ;
      TimeEnd   = 0 ;
   }
} // if(TimeStart!=0   &&   TimeEnd!=0) {
Neden: