MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 487

 
igrok333 :

Bir dosyanın 8. satırı nasıl okunur?

dosya işlemleri hakkında soru

https://docs.mql4.com/ru/files


Bir zamanlar bana söylediği gibi, mql'deki her şey numaralandırma ile yapılır mı?


Başka bir şekilde yapılamaz mı?

Tüm veri türleri, bayt cinsinden belirli bir miktarda belleğe sahiptir. Buna göre, kod yazarken bunu kullanabilir ve dosya işaretçisini bir satırdaki verilerin kapladığı bayt sayısı kadar kaydırabilirsiniz.

Dizede double türünde 4 değer varsa, dize 4 * 8 = 32 bayt kaplar. Buna göre dosyanın 9. satırını okumak için dosya işaretçisini 256 bayt kaydırmak gerekir.

 bool    FileSeek (
   int                   file_handle,     // handle файла
   long                  offset,           // в байтах 
   ENUM_FILE_POSITION    origin           // позиция для отсчета
   );
 bool    FileSeek (file_handle, 265 , SEEK_SET );

İşaretçi dosyanın sonundan uzaktaysa, değer negatif olmalıdır.

Ancak, hepsi pürüzsüz yelken değil. Bir süre önce bu sorunla ilgilendim ve .txt ve .csv dosyalarının bununla düzgün çalışmadığını, ancak .bin dosyalarının hatalara izin vermediğini öğrendim. Bu sorunun zaten çözülmüş olması ve şanslı olmanız mümkündür.

 
Alexey Viktorov :

Satırda 4 çift değer varsa

Ama tüm değerler csv dosyası dizelerinde değil mi?


Dosyadaki her satırım bir kelimedir.
12 bayt boyutunda dize değerleri alıyorum.
bu yüzden satır 8'e gitmek için arabayı 84 bayt kaydırmam gerekiyor.

 bool    FileSeek (file_handle, 84 , SEEK_SET );

bilgi için teşekkürler.

 
mql 5'teki tüm açık pozisyonlar arasında nasıl döngü yapılır?
 
Roman Sharanov :
mql 5'teki tüm açık pozisyonlar arasında nasıl döngü yapılır?
bu mql4 konusu
 
igrok333 :
bu mql4 konusu

Hayır, bu konu hem mql4 hem de mql5 içindir

 
Roni Iron :

Tünaydın!

Soru: Test cihazının terminaldeki çalışması nasıl hızlandırılır?

Benim için 4 işlemciden sadece 1 tanesini ve sadece 150MB RAM kullanıyor. (yani bilgisayarın tam gücünü kullanmaz)

Seçenekler nedir?

Bu daha önce tartışıldıysa, lütfen bağlantı atın!

MT4 ise, burada sadece işlemcinin frekansı rol oynar. Tek akış mı kullanıyor? Bunun bazı avantajları var, aynı anda 4 MT4 terminalini farklı test veya optimizasyon görevleriyle çalıştırabilirsiniz. Ve işlemcide ve bir terminalde aynı yük olacaktır.

 
Roman Sharanov :
Mql 5'teki tüm açık pozisyonlar arasında nasıl geçiş yapılır?

mql5, pozisyonlar ve emirler arasında ayrım yapar. Bir pozisyon, bir ticaretin sonucudur. Ve anlaşma, siparişin tetiklenmesinin sonucudur.

İlk olarak, sunucuya bir ticaret talebi gönderilir ve ya bekleyen bir emir (istek onu ayarlamak içinse) ya da bir piyasa emri (istek bir pozisyon açmak için ise) belirir.

Bir piyasa emri tetiklendiyse (bir işlem gerçekleştiyse), bu işlem sonucunda bir pozisyon belirir (veya mevcut bir pozisyon değişir).

Bir hedge hesabının birçok ayrı pozisyonu (çok yönlü olanlar dahil) olabilirken, netleştirme hesabının sadece bir pozisyonu olabilir.

Bu nedenle, bir döngüdeki tüm konumları gözden geçirmek için, bir döngüyü sayılarına göre düzenlemeniz gerekir - buna göre, mql4 için olağan olan OrdersTotal() yerine PositionsTotal() kullanın.

Tüm siparişleri mql5'te sıralamanız gerekiyorsa, burada (mql5'te) mql4 OrdersTotal() için geleneksel kullanılır.

 
igrok333 :

Ama tüm değerler csv dosyası dizelerinde değil mi?


Dosyadaki her satırım bir kelimedir.
12 bayt boyutunda dize değerleri alıyorum.
bu yüzden satır 8'e gitmek için arabayı 84 bayt kaydırmam gerekiyor.


bilgi için teşekkürler.

Metin dosyası satır satır okunmalıdır. Satır numarasını hesaplamanın başka bir yolu yoktur. Bu nedenle, evet, yalnızca FileReadString kullanarak bir döngüde sıralı okuma ile.

 

ObjectCreate(name,OBJ_FIBO, ...), ardından ObjectSetFiboDescription(name,0,"...") kullanarak grafik üzerinde Fibonacci seviyeleri oluşturuyorum, seviyelerin açıklamasını ayarladım, ancak isimler sağdan uzağa taşınmalı köşe. Boşluklar ekledim ama sadece metni uzaklaştırmakla kalmıyor, aynı zamanda satırları da kapatıyorlar. Ayrıca, daha fazla boşluk eklerseniz metnin uzaklaşması durur.
Soru: Metne, altındaki satırı kapatmayacak şekilde "görünmez" bir karakter eklemek mümkün müdür?


 
Maxim Khrolenko :

ObjectCreate(name,OBJ_FIBO, ...), ardından ObjectSetFiboDescription(name,0,"...") kullanarak grafik üzerinde Fibonacci seviyeleri oluşturuyorum, seviyelerin açıklamasını ayarladım, ancak isimler sağdan uzağa taşınmalı köşe. Boşluklar ekledim ama sadece metni uzaklaştırmakla kalmıyor, aynı zamanda satırları da kapatıyorlar. Ayrıca, daha fazla boşluk eklerseniz metnin uzaklaşması durur.
Soru: Metne, altındaki satırı kapatmayacak şekilde "görünmez" bir karakter eklemek mümkün müdür?

0 kodlu noktaları ve karakterleri deneyin