MQL5'te acemi soruları. Profesyoneller geçmez. - sayfa 7

 
Artyom Trishkin :

DRAW_NONE == 0

DRAW_LINE == 1

Yani bir yerlerde başka bir şeyiniz var. Teoride, her şey sizin için çalışmalı.

Sorunun ne olduğunu henüz söyleyemem ama her zaman işe yaramaz.
 
Bu konuyla ilgili olmayan yorumlar " MQL4 MT4 MetaTrader 4 Yeni Başlayanlardan Sorular " bölümüne taşındı.
 
Artyom Trishkin :

Hayır, teşekkürler. Limit>1 ile her şey bir kez yapılır. Bu, tarihin ilk lansmanı ve yüklenmesidir. Ve periyod_sm=10 yumuşatma işlemine sahipseniz, bu durumda limit 10'dan az olmalıdır. Buna göre, şöyle:

 if (limit> 1 )
  {
   limit=rates_total-period_sm- 1 ;
   ArrayInitialize (Buffer,InitValue);
  }

InitValue - arabelleği uygun şekilde - 0 veya EMPTY_VALUE ile başlatacak değer. Ya da belki -100500...

Örneğinizde önerdiğiniz gibi - bunu yapmak doğru değil - veya anlamadıysanız ayrıntılı bir açıklama yapın.

"Bu ilk başlatma ve geçmiş yükleme" olarak adlandırdığınız şey hakkında bir karar vermek -- prev_calculated değerine göre gerçekleşir

sınır (sizin durumunuzda sınırın ne olduğu net değil) -- bu yeniden hesaplamanın başladığı çubuğun sayısıysa -- o zaman burada sınır 1'den büyük olabilir, örneğin, 5 dakika boyunca bağlantı yok - - M1 limit=5'te bir bağlantı göründüğünde ve göstergeyi en baştan yeniden hesaplamak için bir neden olmadığında

normal terminal örneklerinde her şeyin nasıl kullanılacağını görebilirsiniz.

"Ayılar" göstergesinden örnekler:

MQL4 (baştan sona çubuk numaralandırma):

   int limit=rates_total-prev_calculated;
//---
   if (rates_total<=InpBearsPeriod)
       return ( 0 );
//---
   if (prev_calculated> 0 )
      limit++;
   for ( int i= 0 ; i<limit; i++)

MQL5 (uçtan başa çubuk numaralandırma):

   if (prev_calculated<InpBearsPeriod)
      limit=InpBearsPeriod;
   else limit=prev_calculated- 1 ;
//--- the main loop of calculations
   for (i=limit;i<rates_total && ! IsStopped ();i++)
 

Herkese selam. MT-5'te bir demo hesabım vardı. Windows'u yeniden düzenledikten sonra, MT-5'e girmek için parola girişimi kaybettim. Artık web terminalinde kayıtlı

Demo hesap MT-5. Her şey yolunda. Normal bir MT-5 ana terminaline yeni Oturum Açma, Parola ekliyorum. Her şey çalışır, yalnızca yeni bir F9 siparişi açarken,

yeni emir penceresinde Al ve Sat butonları aktif değildir. başvuramıyorum. Lütfen bana ne yapmam gerektiğini söyle?

Yanlış başlıkta soruyorsam özür dilerim.

Teşekkür ederim.

 
Shara1 :

Herkese selam. MT-5'te bir demo hesabım vardı. Windows'u yeniden düzenledikten sonra, MT-5'e girmek için parola girişimi kaybettim. Artık web terminalinde kayıtlı

Demo hesap MT-5. Her şey yolunda. Normal bir MT-5 ana terminaline yeni Oturum Açma, Parola ekliyorum. Her şey çalışır, yalnızca yeni bir F9 siparişi açarken,

yeni emir penceresinde Al ve Sat butonları aktif değildir. başvuramıyorum. Lütfen bana ne yapmam gerektiğini söyle?

Yanlış başlıkta soruyorsam özür dilerim.

Teşekkür ederim.

Anladım teşekkürler. Pencerede yeni bir F9 sırası var, sütunda hacim 0.00 idi. 0.01 koyun ve her şey çalıştı.

 

Merhaba, söyleyin bana, bazı Uzman Danışmanlarda bu satırlar var.

   double highest= DBL_MIN ,lowest= DBL_MAX ;

Soru - değişkenler neden bu sabitlere eşittir DBL_MIN , DBL_MAX?

 
refounder83 :

Merhaba, söyleyin bana, bazı Uzman Danışmanlarda bu satırlar var.

Soru - değişkenler neden bu sabitlere eşittir DBL_MIN , DBL_MAX?

DBL_MAX'tan küçük ve DBL_MIN'den büyük olduğu bilinen gerçek verilerle karşılaştırma için.

Örneğin:

 double x= DBL_MIN ;
int total= ArraySize (array);
for ( int i= 0 ; i<total; i++)
  {
   double y=array[i];  
   if (y>x) x=y;
  }
Print ( "x=" , DoubleToString (x, Digits ()));
 
teşekkür ederim anladım)
 

Ama bu işlem sunucu zamanını saniyelere çevirmek için mi yapılıyor?

 datetime time= TimeTradeServer ()+ 60 * 60 * 24 ;
   
  
 
refounder83 :

Ama bu işlem sunucu zamanını saniyelere çevirmek için mi yapılıyor?

Bu, "sunucu zamanı" artı bir gündür (60 saniye * 60 dakika * 24 saat)

PeriodSeconds() kullanabilirsiniz

 Print (" PeriodSeconds ( PERIOD_D1 )=", PeriodSeconds ( PERIOD_D1 ),", PeriodSeconds ( PERIOD_H1 )* 24 =", PeriodSeconds ( PERIOD_H1 )* 24 ,", 60 * 60 * 24 =", 60 * 60 * 24 );
Neden: