Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 135

 

İyi günler, zor değilse de yeni başlayanlara söyleyin:

1) Belirli bir değişkenin değerine eşit boyutta bir dizi nasıl bildirilir? (i=7 ise double Muss[7] dizisini ilan ederiz ve böyle devam eder);

2) Koşul her zaman yanlışsa, neden kullanıcı tanımlı bir işlevdeki bir dizi bildirilmiş ve yeterince kullanılmış olarak kabul edilir?

while (yanlış){

Uyarı("aaaaaaaaa");

statik çift Buf_max[9000000];

statik çift Buf_min[9000000];}

3) Özel bir işlevde ve genel olarak basit bir dizi ile statik bir dizi arasında bir fark var mı?

 
ALXIMIKS :

İyi günler, zor değilse de yeni başlayanlara söyleyin:

1) Belirli bir değişkenin değerine eşit boyutta bir dizi nasıl bildirilir? (i=7 ise double Muss[7] dizisini ilan ederiz ve böyle devam eder);

...

1) ArrayResize()

 int i= 7 ;
double Muss[]; // объявление динамического массива
//---
int init() 
{
   ArrayResize (Muss,i); // устанавливает новый размер массива
   return ( 0 );
}
 

böyle saçmalık:

MarketInfo( Symbol() ,MODE_TRADEALLOWED) çağırırsanız - 1=ticarete izin verilir.

ve piyasa genel görünümünde bir sembolün üzerine geldiğinizde, - Ticaret: Kapat yazan bir araç ipucu açılır.

burada odak nedir?

Gerçekten ticarete izin vermiyor, ancak MODE_TRADEALLOWED neden yanlış bir değer döndürüyor?

 
chief2000 :

Göstergeyi kaç kez çalıştırdınız? Görünüşe göre birkaç kez (sonuçlarınızda döngüsellik fark edilir).
Tanımlamak için bir tür "sınırlayıcı" ile başka bir baskı ekleyin, bir giriş koşulu ayarlayın veya bir kereden fazla çalışmaması için bir komut dosyasına dönüştürün, o zaman daha net olacaktır.


İyi fikir))

Bunu şöyle kolaylaştırdım:

 //+------------------------------------------------------------------+
//|                                            massive_fffffffff.mq4 |
//|                                                              hoz |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "hoz"
#property link       ""

int start()
{ 

   int Array[ 4 ] = { 1 , 2 , 3 , 4 };
   int x1, x2, x3, x4;
   int Array_Size = ArrayRange (Array, 0 );
   
   for ( int i= 0 ; i< 11 ; i++)
   {
      i++;
       Print ( "_i = " , i);
   }

   for (x1= 0 ; x1<Array_Size; x1++)
   {
       Print ( "Combination = " , Array[x1]);

       for (x2=x1+ 1 ; x2<Array_Size; x2++)
      {
         Print ( "Combination = " , Array[x1] + "   " + Array[x2]);

         for (x3=x2+ 1 ; x3<Array_Size; x3++)
         {
             Print ( "Combination = " , Array[x1] + "   " + Array[x2] + "   " + Array[x3]);

             for (x4=x3+ 1 ; x4<Array_Size; x4++)
            {
               Print ( "Combination = " , Array[x1] + "   " + Array[x2] + "   " + Array[x3] + "   " + Array[x4]);
            }
         }
      }
   }
   for ( int h= 0 ; h< 11 ; i++)
   {
      h++;
       Print ( "h = " , h);
   }


   return ( 0 );
}

Günlük şöyle başlar:

 2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 9
2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 9
2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 7
2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 5
2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 3
2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 1
2013.09 . 10 17 : 09 : 07      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 11
2013.09 . 10 17 : 09 : 07      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 10
2013.09 . 10 17 : 09 : 07      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 9
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 9
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 7
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 5
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 3
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 1
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 11
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 10
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 9
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: Combination = 1
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 11
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 9
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 7
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 5
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 3
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 1
2013.09 . 10 17 : 09 : 06      massive_fffffffff test started
2013.09 . 10 17 : 09 : 04      TestGenerator: spread set to 2
2013.09 . 10 17 : 09 : 04      massive_fffffffff EURUSD.GI,M5: loaded successfully

Genellikle döngüler bile bitmez. Sipariş yok. Sonuç hiç tutarlı değil.

 
hoz :


İyi fikir))

Bunu şöyle kolaylaştırdım:

Günlük şöyle başlar:

Genellikle döngüler bile bitmez. Sipariş yok. Sonuç hiç tutarlı değil.


Her şeyi karmaşıklaştırdığınız bir şey, doğrulama aşamasında, seçeneğe bağlı olarak her şey 1-2 satırda yapılabilir. Genelde internette her şeyi yapabilirsiniz. Geri çekilme emri belirtilmedi.


 bool Status_Run = true ;


start() {

   if (Status_Run== true ) {
      Status_Run  = false ;

      Print("---START ---");
      ......

   }
}
 
chief2000 :

Her şeyi karmaşıklaştırdığınız bir şey, doğrulama aşamasında, seçeneğe bağlı olarak her şey 1-2 satırda yapılabilir. Genelde internette her şeyi yapabilirsiniz. Geri çekilme emri belirtilmedi.





Döngülerin bir kez yürütülmesi için bir bayrak mı girmek istiyorsunuz, hepsi bu mu? Yürütmem durmuyor .. Bu sürümde:

 //+------------------------------------------------------------------+
//|                                            massive_fffffffff.mq4 |
//|                                                              hoz |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "hoz"
#property link       ""

int start()
{ 

   bool Status_run = true ;
   int Array[ 4 ] = { 1 , 2 , 3 , 4 };
   int x1, x2, x3, x4;
   int Array_Size = ArrayRange (Array, 0 );
   
   if (Status_run == true )
   {
      Status_run = false ;

       for (x1= 0 ; x1<Array_Size; x1++)
      {
         Print ( "Combination = " , Array[x1]);

         for (x2=x1+ 1 ; x2<Array_Size; x2++)
         {
             Print ( "Combination = " , Array[x1] + "   " + Array[x2]);

             for (x3=x2+ 1 ; x3<Array_Size; x3++)
            {
               Print ( "Combination = " , Array[x1] + "   " + Array[x2] + "   " + Array[x3]);

               for (x4=x3+ 1 ; x4<Array_Size; x4++)
               {
                   Print ( "Combination = " , Array[x1] + "   " + Array[x2] + "   " + Array[x3] + "   " + Array[x4]);
               }
            }
         }
      }
   }

   return ( 0 );
}

Aslında, kod INIT'deki gibi çalışmalı, bir kez ve bu kadar. Sonra hemen, Boolean Status_run değişkeni false değerini alacak ve if koşulu artık yürütülmeyecek.Fakat nedense çıkışım logda bitmiyor.

 
hoz :


Döngülerin bir kez yürütülmesi için bir bayrak mı girmek istiyorsunuz, hepsi bu mu? Yürütmem durmuyor .. Bu sürümde:

Aslında, kod INIT'deki gibi çalışmalı, bir kez ve bu kadar. Sonra hemen, Boolean Status_run değişkeni false değerini alacak ve if koşulu artık yürütülmeyecek.Fakat nedense çıkışım logda bitmiyor.


Döngülerin yanlış sonuçlar verdiğini iddia ettiniz ve size bir doğrulama seçeneği sundum. Gerektiği gibi çalışıyorsa, algoritmanıza göre ilerleyin, değilse doğrulama aşamasında değişiklik yapın.

PS "Status_run" start() öncesinde oluşturulmalıdır, bu global bir değişkendir .
 

Guru, söyle bana. bool değişkenini ayarladım bayrak = doğru ; başlangıçta ,

bir anlaşma açıyorum

eğer ( koşul )

{

Opn_S=doğru;

bayrak=yanlış;

}

Bayrakla ilgili bir soru var, eğer bayrak açarken false döndürürse ve açılış koşulu bu bayrağı içeriyorsa. Bayrak tarafından iletilen doğru veya yanlış ne kadar süre saklanır, ertesi gün sıfırlanır mı?

 
Forexman77 :

Guru, söyle bana. bool = true değişkenini koydum; başlangıçta ,

bir anlaşma açıyorum

eğer ( koşul )

{

Opn_S=doğru;

bayrak=yanlış;

}

Bayrakla ilgili bir soru var, eğer bayrak açarken false döndürürse ve açılış koşulu bu bayrağı içeriyorsa. Bayrak tarafından iletilen doğru veya yanlış ne kadar süre saklanır, ertesi gün sıfırlanır mı?


Hayır, her yeni onay işaretiyle değer Bayrak gerçek olacak. https://book.mql4.com/en/variables/types

Global düzeyde bir değişken bildirmek gerekir - örneğin, programın başlangıcında, tüm işlevlerin dışında.

Veya değişkeni static yapın - static bool flag=true; .

 
ALXIMIKS :

Hayır, her yeni onay işaretiyle değer Bayrak gerçek olacak. https://book.mql4.com/en/variables/types

Bir değişkeni global düzeyde - programın başında, tüm fonksiyonların dışında bildirmek gerekir.

Veya değişkeni static yapın - static bool flag=true; .

Teşekkür ederim!