Hatalar, hatalar, sorular - sayfa 1339

 
A100 :
Ne için?
Mantığını görmek için.
 
Karputov Vladimir :
Mantığını görmek için.
Basılı - sonuç yukarıda açıklanmıştır
 
A100 :
Basılı - sonuç yukarıda açıklanmıştır
Nerede yazdırdın? Sonuç nerede? Anlayamıyorum - öncesi ve sonrası çıktısını eklemeyi unuttunuz.
 
Karputov Vladimir :
Nerede yazdırdın? Sonuç nerede? Anlayamıyorum - öncesi ve sonrası çıktısını eklemeyi unuttunuz.

Yeniden başlatmadan önce Önceki

Yeniden başlattıktan sonra Sonrasında

 

Foruma resim eklerken başlık görünmüyor

Başlık alanını doldurun. Resim görüntüleniyor ancak başlık görüntülenmiyor

 
A100 :

Profildeki grafikleri atlamanın farklı sırası

Profildeki birkaç çizelgeye yeni bir tane eklerseniz ve onu ortaya taşırsanız

daha sonra komut dosyasını kullanarak sonraki çizelgelerin numaralandırılmasıyla

ortada olmasına rağmen son olacak

Ve MT'yi yeniden başlatırsanız, yeni bir numaralandırma ile şekildeki gibi ortada olacaktır.

Yeniden başlatmadan önce ve sonra farklı davranışlar ortaya çıkıyor. mantık nerede?

"EURAUD", "EURCAD", "EURUSD" ve "NZDUSD" eklendi ve ilk grafiği etkinleştirin - "EURAUD"

Aşama 1

"NZDUSD", "EURAUD"dan sonra yerleştirilir ve ilk grafiği etkinleştirir - "EURAUD"

Adım 2

Yeniden başlattıktan sonra (ilk grafik etkin kalır - "EURAUD")

Aşama 3

Her şey kesinlikle mantıklı. Komut dosyasını çağırmadan hemen önce:

 //+------------------------------------------------------------------+
//|                                                    ChartNext.mq5 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//--- переменные для идентификаторов графиков
   long currChart,prevChart= ChartFirst ();
   int i= 0 ,limit= 100 ;
   Print ( "ChartFirst = " , ChartSymbol (prevChart), " ID = " ,prevChart);
   while (i<limit) // у нас наверняка не больше 100 открытых графиков
     {
      currChart= ChartNext (prevChart); // на основании предыдущего получим новый график
       if (currChart< 0 ) break ;           // достигли конца списка графиков
       Print (i, ChartSymbol (currChart), " ID =" ,currChart);
      prevChart=currChart; // запомним идентификатор текущего графика для ChartNext()
      i++; // не забудем увеличить счетчик
     }
  }
//+------------------------------------------------------------------+

aktif programı dikkatlice seçmeniz gerekir. Bir sonraki grafik aktif olandan sayılır.
 
Karputov Vladimir :

Her şey kesinlikle mantıklı.

Ve mantık nedir? Yeniden başlatmadan önce bir 2-3-4-5 dizisi ve yeniden başlatmadan sonra başka bir 2-5-3-4 varsa?
 
A100 :
Ve mantık nedir? Yeniden başlatmadan önce bir 2-3-4-5 dizisi ve yeniden başlatmadan sonra başka bir 2-5-3-4 varsa?

Yeniden başlatmadan önce profiller oluşturuldukları sırayla , yani 1-2-3-4 olarak kaydedilir. Yeniden başlatmadan önce profil yeniden yazılır (grafik hareketlerinin en son revizyonu, yani 1-4-2-3'e girilir). Yeniden başlatmanın ardından, grafikler, grafik hareketlerinin en son sürümüne, yani 1-4-2-3'e göre yeniden çizilir (oluşturulur) .

Ve şimdi, yeniden başlatmanın ardından, grafikler 1-4-2-3 sırasına göre oluşturulduğundan, bu ChartNext()'in tam olarak bu sırayı döndüreceği anlamına gelir.

 
Karputov Vladimir :

Yeniden başlatmadan önce profiller oluşturuldukları sırayla , yani 1-2-3-4 olarak kaydedilir. Yeniden başlatmadan önce profil yeniden yazılır (grafik hareketlerinin en son revizyonu, yani 1-4-2-3'e girilir). Yeniden başlatmanın ardından, grafikler, grafik hareketlerinin en son sürümüne, yani 1-4-2-3'e göre yeniden çizilir (oluşturulur) .

Soru şu anda nasıl uygulandığı değil (farklı bir şekilde uygulanabilir), ancak yeniden başlatmadan önce ve sonra (ceteris paribus) farklı bir sonuç elde edilir, bu da mantığın bozulduğu anlamına gelir.
 
A100 :
Soru şu anda nasıl uygulandığı değil (farklı bir şekilde uygulanabilir), ancak yeniden başlatmadan önce ve sonra (ceteris paribus) farklı bir sonuç elde edilir, bu da mantığın bozulduğu anlamına gelir.
Terminali yükledikten sonra grafikler yeniden oluşturulduğundan ve buna göre ChartNext() doğru çalıştığından mantığın bozulmadığına inanıyorum. Ancak hizmet masasında bir talep oluşturabilirsiniz - lütfen cevabı daha sonra paylaşın.
Neden: