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

 

else koşulundan bir alıntı varsa, işlevin kendisi çalışmayı durduracaktır.

 if ( res ! = - 1 ) {     
//..
} else {
    err = GetLastError ( ) ;
     if ( err > 1 ) try = 0 ;
     Comment ( "Ошибка - " , err ) ;           
}

try = 0, bu nedenle while döngüsü sona erer ve openOrder() false döndürür

ancak while(!openOrder(..)){} yapısını kullanırsanız, evet, bir sipariş açana kadar gagalamaya devam eder

 
kekkenen. (! openOrder (..)) {} ifşa edilmezken start () işleviyle ilgileniyorum, orada {} içinde ne yapılıyor. Yeniden fiyat teklifi denemelerinin sayısını sınırlandırıyor musunuz?
 

Madem emrin açılması gerektiğini yazmışsın o zaman öyle "rijit" bir yapı verdim ki açılması gerektiğine göre ne kadar açmaya çalışılırsa açsın açılacaktır.. emirlerin açılması normal ise o zaman gerekli olmasa da, kritik hatalara tepki vermek veya onları görmezden gelmek için fonksiyonda denemek ve zaten belirlemek için deneme sayısını geçebilir ve aptalca deneme süreleri siparişini açmaya çalışabilirsiniz..


ve while(!openOrder(..)){}'ın anlamı, sonsuz bir döngü oluşturmamızdır, yani. sipariş açılana kadar çalışacak ..

hatta emir açarken hangi taktiklerin kullanılması gerektiğini belirleyin yardımcı oluruz..

 

soru:

Dizi ile çalışamaz.

Diziyi başlatıyorum , herhangi bir veriyle dolduruyorum ve okuduğumda sıfırlar var.

Neyi yanlış yapıyorum?


 double MASS [ ] ;

for ( int i = 0 ; i < 10 ; i + + )
 {
  MASS [ i ] = i ;
 }
for ( int n = 0 ; n < 10 ; n + + )
 {
   Print ( MASS [ n ] ) ;
 }
 
Kontra писал(а) >>

Dizi ile çalışamaz.

Örneğin şunları bildirirken dizinin boyutunu belirtmeniz gerekir:

double MASS[10];

veya daha sonra:

ArrayResize(MASS,10);
 

ve dizinin hangi boyutuna sahip olacağımı bilmiyorsam?

Ve sorsam bile - bir şey derlenmiyor:

Harici bir değişken ekliyorum:

extern int Razmer = 10;

Ve hatta daha aşağısı:

   double MASS [ Razmer ] ;

for ( int i = 0 ; i < 10 ; i + + )
 {
  MASS [ i ] = i ;
 }
for ( int n = 0 ; n < 10 ; n + + )
 {
   Print ( MASS [ n ] ) ;

çıktı sonucu:

'Boyut' - beklenen tam sayı C:\Program Files\MetaTrader - Alpari2\experts\temp.mq4 (36, 16)
']' - virgül veya noktalı virgül bekleniyor C:\Program Files\MetaTrader - Alpari2\experts\temp.mq4 (36, 22)
'MASS' - değişken tanımlı değil C:\Program Files\MetaTrader - Alpari2\experts\temp.mq4 (40, 3)
'MASS' - değişken tanımlanmadı C:\Program Files\MetaTrader - Alpari2\experts\temp.mq4 (44, 9)

 
Kontra писал(а) >>

ve dizinin hangi boyutuna sahip olacağımı bilmiyorsam?

Bu yüzden dizide kaç eleman olacağı bilindiğinde ArrayResize işlevini kullanmanız gerekir.

Harici bir değişkenle gördüğünüz gibi çalışmayacak :)

Bu şekilde mümkündür:

ArrayResize(MASS,Razmer);
 

Teşekkürler sevgili cerrah.

Her şey çalıştı :)

 
int init ( )
   { 
   double A = AccountBalance ( )          //Определяем баланс
   double B = NormalizeDouble ( A / 50 , 0 )    //Выполняем вычисления и делаем результат целым числом
   double Lots = B * 0.01                  //Вычисление лота.

if ( Lots > 0 ) Alert ( "Лот будет " , Lots )

   return ( 0 ) ;
   }
Burada yanlış olan nedir ve nasıl uygulanabilir?
 

Gerçekte ne uygulamaya çalışıyorsun?