MT4 Dosyaları İşlevlerinin Değiştirilmesi. - sayfa 10

 

Dosya değiştirme

Strateji Test Cihazında harici sinyalleri kullanan bir EA'yı test etmek istiyorum ve iş parçacığı, yerel dosya işlemenin strateji test cihazında çalışmadığını belirtiyor. Bu yüzden bu başlıkta verilen dll'yi kullanmaya çalıştım. İşlemek istediğim girdi şuna benzeyen bir dosyada:

2007-01-02;EURUSD;2.InstPipDown;;Evet

2007-01-02;USDJPY;1.InstPipUp;;Evet

2007-01-02;USDCHF;1.InstPipUp;;Evet

2007-01-03;EURUSD;2.InstPipDown;;Evet

2007-01-03;EURUSD;4.PipMax1Down;;Evet

2007-01-03;GBPUSD;4.PipMax1Down;;Evet

2007-01-04;USDJPY;8.PipRevBear;;Evet

2007-01-05;EURUSD;5.PipMax2Up;;Evet

2007-01-05;USDJPY;1.InstPipUp;;Evet

Diğer sınırlayıcı türlerini kullanabilmek için dosyayı kendim oluşturuyorum.

O sırada bir "kayıt" almak için dll'yi nasıl kullanırım? Ayrı ayrı alanlar için ayrıştırma yapabilirim.

EOF'a ulaştığımı nasıl anlarım?

Birkaç varyasyon denedim ama tutarsız sonuçlar ve bazen çöp alıyorum. Örnekteki gibi veri yazmak işe yarıyor ama ben veri okumak istiyorum.

 

Peki, sebat kuralları!

Birkaç saat sonra şunu öğrendim:

Dosya işleyici, başka bir programla oluşturduğum bir dosyayı açmayı reddediyor. Açık dönüşler -1. Demo tarafından oluşturulan dosyayı (mt4.log) kullanır ve içeriğimi içine kopyalarsam açık çalışır. Neden olduğunu anlayamıyorum. Yabancı

"Kayıtlarımı" sabit uzunlukta yaptım ve her kaydın sonunda "CRLF"ye uyum sağlamak için "kayıt" artı 2'nin uzunluğunu okudum. Dosyanın uzunluğunu kayıt uzunluğuna böldüm ve tüm kayıtlarımı bir diziye almak için döngü yaptım:

İşte kod:

int init()

{

dizi inArr[500];

int dosyası;

int dosya boyutu;

int kayıtları;

int i;

dosya = gFileOpen("c:\mt4.log",READ);

// Yazdır(dosya);

dosya boyutu = gFileSize(dosya);

// Yazdır(dosya boyutu);

kayıtlar = dosya boyutu/25;

// Yazdır(kayıtlar);

for(i=1;i<=kayıtlar;i++)

{

inArr = gFileRead(dosya,25);

}

gFileClose(dosya);

Print(inArr[filesize-1]); //sonuncuyu kontrol et

dönüş(0);

}

 

dosya çıktılı gösterge

merhaba tüccarlar ve programcılar.

yeni bir gösterge için bir codeegemnt ile ilgili yardıma ihtiyacım var.

gösterge ilgili bilgileri içeren bir dosya yazabilmelidir, ancak yalnızca yeni bir mum açtıktan sonra yazmalıdır. her tik değil.

Bu nasıl yapılabilir? Yapmaya çalıştığım şey, bir PNN eğitmek için her yeni muma son 1000 çubuğun OHCL'sini yazmak. bu, RAPID-I ile dışarıda yapılmalıdır.

ve diğer bazı bilgilerle birlikte bir mumun kapanma olasılığının ne olabileceğini öğrenmek.

lütfen yardım et. harika bir proje olurdu, ama çok basit şeyler yapmak için aptalım (veya tembelim) :-)

PriNova

 

tarihsaat zamanöncesi=0; init()'ten önce

ve

if(timeprev==Zaman[0])

dönüş(0);

timeprev=Zaman[0]; startın hemen altında ()

ve bu kadar.

 

güzel bu çok hızlı cevap oldu.

teşekkür ederim elitcamper

 

Taşıma işlevi neden kitaplıktan kaldırıldı?

kodlayıcılarGuru,

Benim için ne kadar değerli olduğunu sana anlatamam, Müşterilerimden aldığım övgülerin çoğunu hak ediyorsun, çünkü sen olmasaydın onlara destek olmak için işimi yapamazdım.

Eğitiminizde belirtildiği gibi Taşı işlevinin uygulanmamasının bir nedeni var mı?

Çok Teşekkürler Tekrar dört hizmetiniz

John McGlaughlin

 

gDosyaOkuma

Merhaba,

mtguru1.dll'nin kaynak koduna baktığımda gFileRead() işlevinin çalışmaması gerektiğini buldum. Yanlış mıyım ?

gFileRead(), dosyadan okunan dizeyi saklamak için yerel bir değişken kullanır. İşlev döndüğünde, o değişkene bir işaretçi döndürür, ancak yerel değişken pbuffer kapsam dışına çıktığı için bu işaretçi geçerli olabilir.

Bu nedenle, bir MQL4 EA'dan şuna benzer bir talimat çökmelidir:

string arabelleği = gFileRead( tanıtıcı, 50 );

ve işe yarıyorsa bu garip...

Not: Bunu daha önce yanlış başlığa yazdım. https://www.mql5.com/en/forum/172885 .

 

Hata Düzeltmesi:

.... ancak bu işaretçi geçerli bir işaretçi olabilir ....

ancak bu işaretçi geçerli bir işaretçi OLAMAZ

 

Bir exe dosyası yürütün

Merhaba,

Basit bir şey yapmak istiyorum (böyle düşündüm). Bir EA'dan harici bir program açmak (başlatmak) istiyorum. (EA'da değil)

Yani sadece örnek amaçlı. EA'da belirli bir şey olduğunda Microsoft word'ü açmak istedim diyelim.

Bunu daha önce yaptım ama betiği bulamıyorum, internette arama yapmak için 2 saat harcadım. Bir dahaki sefere kodu güvenli bir yere kaydedeceğim!

 

bazı sorular?

"2008.10.21 01:54:34 Temel Trader DailyFX_MQL4 v0.02: tutamaç 2, FileClose'da mevcut değil" hatasını aldım.

Nasıl yapabilirim ?