Hatalar, hatalar, sorular - sayfa 3018

 
Artyom Trishkin :

Daha sonra mumların altına çizilmesi gereken indikatör için indikatör + mum çizgisine çekmeniz gerekir. Geri kalanı için - mumların üzerine çizilenler için, grafiğin arka planında mum çizimini ayarlayın. Şahsen ben başka bir yol görmüyorum.

biraz sapıklıkla ve çok az ustalıkla pek çok şey yapılabilir. ancak, MQL5'te program oluşturmanın rahatlığı ve esnekliği açısından, geliştiricilerden gösterge arabelleği (gösterge arabelleklerinden herhangi biri için) için bir özellik isteyebilirsiniz.

 

Alglib yapı 2940'ta yeniden yazılmıştır, şimdi karmaşık sayılarla çalışan bir yapıdır (bir sınıf vardı)

ve hatalar yaptı:

 #include <Math\Alglib\complex.mqh>
void OnStart ()
{
      al_complex a( 1 , 2 );
      al_complex b( 3 , 4 );
      a += b;
       printf ( "tst#1 : a.real = %f , a.imag = %f" , a.re, a.im);

      al_complex c( 1 , 2 );
      al_complex d( 3 , 4 );
      c -= d;
       printf ( "tst#2 : c.real = %f , c.imag = %f" , c.re, c.im);
 }

2021.05.23 21:49:35.210 tst (EURUSD,H1) tst#1 : a.gerçek = 4.000000 , a.imag = 6.000000

2021.05.23 21:49:35.210 tst (EURUSD,H1) tst#2 : c.real = 4.000000 , c.imag = 6.000000


karmaşık .mqh kaynağı

 //+------------------------------------------------------------------+
//| Overloading (+=)                                                 |
//+------------------------------------------------------------------+
void al_complex:: operator +=( const al_complex &rhs)
  {
   re+=rhs.re;
   im+=rhs.im;
  }
//+------------------------------------------------------------------+
//| Overloading (-=)                                                 |
//+------------------------------------------------------------------+
void al_complex:: operator -=( const al_complex &rhs)
  {
   re+=rhs.re;
   im+=rhs.im;
  }
 

Yeni bir veri türü kompleksi duyurduklarını hatırlamıyorum, ancak dahil edilen kitaplıklar olmadan her şey düzgün çalışıyor:

 void OnStart ()
{
      complex a( 1 , 2 );
      complex b( 3 , 4 );
      a += b;
       printf ( "tst#1 : a.real = %f , a.imag = %f" , a.real, a.imag);

      complex c( 1 , 2 );
      complex d( 3 , 4 );
      c -= d;
       printf ( "tst#2 : c.real = %f , c.imag = %f" , c.real, c.imag);
 }

2021.05.23 21:54:13.976 tst (EURUSD,H1) tst#1 : a.gerçek = 4.000000 , a.imag = 6.000000

2021.05.23 21:54:13.976 tst (EURUSD,H1) tst#2 : c.real = -2.000000 , c.imag = -2.000000




yeni karmaşık tip nereden geldi? .... yardımda hiçbir şey yok ve başka neler eklendi?

 
Igor Makanu :

Yeni bir karmaşık veri türü duyurduklarını hatırlamıyorum, ancak dahil edilen kitaplıklar olmadan her şey düzgün çalışıyor:

2021.05.23 21:54:13.976 tst (EURUSD,H1) tst#1 : a.gerçek = 4.000000 , a.imag = 6.000000

2021.05.23 21:54:13.976 tst (EURUSD,H1) tst#2 : c.real = -2.000000 , c.imag = -2.000000




yeni karmaşık tip nereden geldi? .... yardımda hiçbir şey yok ve başka neler eklendi?

Geliştiricilerden yeni türlerin eklenmesiyle ilgili onay geldi. Son günlerde.

 
Igor Makanu :

Yeni bir veri türü kompleksi duyurduklarını hatırlamıyorum, ancak dahil edilen kitaplıklar olmadan her şey düzgün çalışıyor:

2021.05.23 21:54:13.976 tst (EURUSD,H1) tst#1 : a.gerçek = 4.000000 , a.imag = 6.000000

2021.05.23 21:54:13.976 tst (EURUSD,H1) tst#2 : c.real = -2.000000 , c.imag = -2.000000

yeni karmaşık tip nereden geldi? .... yardımda hiçbir şey yok ve başka neler eklendi?

burada :

7. MQL5: Karmaşık sayılarla çalışmak için destek eklendi.


Yeni bir yerleşik tip "karmaşık" eklendi.
 struct complex
  {
   double              real;   // вещественная часть
   double              imag;   // мнимая часть
  };
"Karmaşık" tür, MQL5 işlevleri için bir parametre olarak değere göre geçirilebilir (yalnızca referansla geçirilen sıradan yapıların aksine). Bir DLL'den içe aktarılan işlevler için "karmaşık" tür yalnızca başvuru yoluyla iletilmelidir.

'i' soneki karmaşık sabitleri tanımlamak için kullanılır:
complex square(complex c)
  {
   return (c*c);
  }
  
void OnStart ()
  {
   Print (square( 1 + 2 i));   // в качестве параметра передается константа
  }

// будет выведено "(-3,4)" - это строковое представление комплексного числа
Karmaşık sayılar için şu anda yalnızca basit işlemler mevcuttur: =, +, -, *, /, +=, -=, *=, /=, ==, !=.

Gelecekte, ek matematiksel işlevler eklenecektir: mutlak değer, sinüs, kosinüs ve diğerleri.
Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна
Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна
  • 2021.05.14
  • www.mql5.com
В пятницу 21 мая 2021 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Artyom Trishkin :

burada :

7. MQL5: Karmaşık sayılarla çalışmak için destek eklendi.


Yeni bir yerleşik tip "karmaşık" eklendi.
"Karmaşık" tür, MQL5 işlevleri için bir parametre olarak değere göre geçirilebilir (yalnızca referansla geçirilen sıradan yapıların aksine). Bir DLL'den içe aktarılan işlevler için "karmaşık" tür yalnızca başvuru yoluyla iletilmelidir.

'i' soneki karmaşık sabitleri tanımlamak için kullanılır:
Karmaşık sayılar için şu anda yalnızca basit işlemler mevcuttur: =, +, -, *, /, +=, -=, *=, /=, ==, !=.

Gelecekte, ek matematiksel işlevler eklenecektir: mutlak değer, sinüs, kosinüs ve diğerleri.

tamam teşekkürler geç güncelleme için özür dilerim

 
Yürütme sırasında hata:
 void OnStart ()
{
     const string text[] = { "ABC" , "" , "ABC" };
     uchar array[];
     int start = 0 ;
     int n = 0 ;
     for ( int i = 0 ; i < ArraySize ( text ); i++ )
    {
         const int count = StringLen ( text[ i ] );
        n += StringToCharArray ( text[ i ], array, start, count );
        start += count;
    }
     Print ( ArraySize ( array ), ":" , n );
}

Sonuç: 6:7

Beklenen: 6:6

 
A100 :
Yürütme sırasında hata:

Sonuç: 6:7

Beklenen: 6:6

count = 0 - dizenin yalnızca sonunu kopyalayın. Hala "" != NULL .

 
fxsaber :

count = 0 - dizenin yalnızca sonunu kopyalayın. Hala "" != NULL .

Ve kaç tane

 StringToCharArray

count = 0 olduğunda karakterleri kopyalamalı mısınız?

İpucu: say = 3 kopya 3 karakter

 
A100 :

count = 0 olduğunda karakterleri kopyalamalı mısınız?

Görünüşe göre count=0, count=-1 ile aynı şekilde çalışıyor ve "" olması durumunda, terminal sıfırını kopyalıyorsa, ek kontroller olmadan boş dizenin normal olarak dönüştürülmeyeceği ortaya çıkıyor