Hatalar, hatalar, sorular - sayfa 2585

 

Hemen, ihtiyaç duyulmadığı gibi. Ve OnDeinit'ten önce.

 
fxsaber :

Hemen, ihtiyaç duyulmadığı gibi. Ve OnDeinit'ten önce.

İşin aslı, ihtiyacı biter bitmez onu siliyorum. OnDeinit çalışmıyorsa programın silinmekte olduğu nasıl anlaşılır?

 
Nikolai Semko :

İşin aslı, ihtiyacı biter bitmez onu siliyorum. OnDeinit çalışmıyorsa programın silinmekte olduğu nasıl anlaşılır?

Gerçek sorunu belirtin.

 
fxsaber :

Gerçek sorunu belirtin.

asıl sorun, ele almak gibi basit bir istisnayla kolayca çözüldü, çünkü kendi gerekli değildir:

Total = ChartIndicatorsTotal ( 0 , 0 );
for ( int i= 0 ; i<Total; i++) 
  {
       string name= ChartIndicatorName ( 0 , 0 ,i);
       if (name!= MQLInfoString ( MQL_PROGRAM_NAME )) 
         handle[i] = ChartIndicatorGet ( 0 , 0 ,name);
  }

Sadece düşünüyorum: ya kendi tutamacına ihtiyacın olursa...

böyle görevler vardı, ama bir şey hatırlamıyorum

 
Nikolai Semko :

Sadece düşünüyorum: ya kendi tutamacına ihtiyacın olursa...

böyle görevler vardı, ama bir şey hatırlamıyorum

Init_Sync'te böyle bir ihtiyaç var.

 

Rastgele dürtme yöntemiyle, const wchar_t* türünde bir dize olan mql-ovsky dizesine normal kopyalamayı belirledim
Memcpy işlevindeki bu parametre ile satırlar bile mql'de ve sızıntı olmadan gelmeye başladı.

memcpy( out , data, wcslen(data) * ( sizeof ( char )* 3 ) );

Yani 2 bayt sizeof (wchar_t) yerine 3 bayt kullanıldı.
mql dizesi, const wchar_t* dizesine bir işaretçiyi doğru bir şekilde kabul etmeye başladı
Bu normal mi?

Ancak ilginç bir şekilde, kendi kendine yazılan bir hazır bilgi dizgisi sizeof(wchar_t) ile doğru bir şekilde geçirilir.
 
Roman :

Rastgele dürtme yöntemiyle, const wchar_t* türünde bir dize olan mql-ovsky dizesine normal kopyalamayı belirledim
Memcpy işlevindeki bu parametre ile satırlar bile mql'de ve sızıntı olmadan gelmeye başladı.

Yani 2 bayt sizeof (wchar_t) yerine 3 bayt kullanıldı.
mql dizesi, const wchar_t* dizesine bir işaretçiyi doğru bir şekilde kabul etmeye başladı
Bu normal mi?

Ancak ilginç bir şekilde, kendi kendine yazılan bir hazır bilgi dizgisi sizeof(wchar_t) ile doğru bir şekilde geçirilir.

Neden normal wcscpy yerine memcpy kullanılıyor?

 
Ilyas :

Neden normal wcscpy yerine memcpy kullanılıyor?

memcpy, Renata'nın örnek makalesinde gösterildiği gibi kullanıldı.
Diğer kopyalama işlevlerinin kullanılması da benzer sorunlara neden olur.
Bu işlevlerle davranış bu gönderide ve bu
Tüm olası kopyalama işlevleri zaten denenmiştir.

 
Test cihazında, CopyTime() 100000 bar M15 EURUSD'yi rastgele bir tarihten sayamıyorum (demo hedge metaquote sunucusu)


void OnInit()
  {
    datetime first_date;
   SeriesInfoInteger(_Symbol,_Period,SERIES_FIRSTDATE,first_date);
   int bars=Bars(_Symbol,_Period);
   Print("First date ",first_date," - ",bars," bars");
   
   datetime time[];
   CopyTime(_Symbol,PERIOD_M15,D'2015.01.01',100000,time);
   Print("rows=",100000," =? ",ArraySize(time));
   Print("Load data from ",D'2015.01.01'," =? ",time[0]," to ",time[ArraySize(time)-1],", rows=",100000," =? ",ArraySize(time));
//---

  }
 
void OnTick(){


}

yaklaşık 37 bin bar okur. Terminalde çalıştırıldığında 100.000 çubuğun tamamını okur.


https://www.mql5.com/en/docs/series/timeseries_access#synchronized üzerinden sunucudan veri yüklemek için kod eklemeye çalıştım

Ama hiçbir şey değişmedi.

Test cihazında bu 100.000 bar nasıl sayılır?

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
 
elibrarius :

Bu 100.000 bar nasıl sayılır?

Başlamak için https://www.mql5.com/ru/articles/239 makalesini okuyun.

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...