Nasıl kodlanır? - sayfa 223

 

...

Sanırım (değerleri csv dosyasına yazan EA'nızı göremediğim için) bir FileFlush() eksik. Dosyayı kapatmadan hemen "diğerleri" tarafından erişilebilen dosyada değişiklik yapmak istediğiniz durumlarda (bu, dolaylı olarak floş kullanır ) değişiklikleri her zaman diske temizlemelisiniz

Saygılarımızla

mladen

sunshineh:
Merhaba,

CSV-Files ile çalışan bir EA yazıyorum.

Test için CSV Dosyalarımı aşağıdaki klasöre koydum:

/test kullanıcısı/dosyalar

İşte EA'mdan sadece küçük bir kısım:

int handle = 0;

int Long = 0;

handle=FileOpen("LongMarket.csv",FILE_CSV|FILE_READ,';');

if (handle > 0)

{

Long= FileReadNumber(handle);

FileClose(handle);

}

Print("LongMarket = ", Long);

Print("Long handle = ", handle);

EA'mda CSV Dosyalarını okudum ve sonra bazı tam sayıları yazıyorum.

Şimdi testimi yaptığımda ve dergide "Yazdır" mesajlarını okuduğumda, genellikle artık CSV Dosyalarında yazılmayan eski tamsayılar alıyorum!

Örneğin:

İlk önce 3 yazıyor ve EA'm çalışıyor ve 0'ı dosyaya yazıyor,

Bu CSV Dosyasında yalnızca 3'ü görebiliyorum!!

Bu CSV Dosyasını temizlediğimde ve o " /tester/files"-Klasörüne 3'lü yeni bir CSV Dosyası koyduğumda, daha önce testten yalnızca 0'ı okuyabilirim!!!! Ama EA'nın 0'ı nerede okuduğunu bulamıyorum!!!

Çıldıracağım!!!!!

Umarım sorumu anlayabilir ve bana bir ipucu verebilirsiniz!!
 

Birisi bir uyarı özelliği eklememe yardımcı olabilir mi?

Bu göstergeye bir alarm fonksiyonu eklemek istiyorum, renkli alarm. Uzun süre denedim, "eğer alarmı" kullandım, ama asla başarılı olmadım. Birisi bana yardım edebilir mi? Çok teşekkürler! ~ İngilizcem iyi değil çok üzgünüm.

#özellik göstergesi_chart_window

#özellik göstergesi_tamponları 4

#özellik göstergesi_color1 OrmanYeşil

#özellik göstergesi_renk2 Kırmızı

#özellik göstergesi_color3 Siyah

#özellik göstergesi_color4 Siyah

//---- giriş parametreleri

harici int FastClosePeriod=13;

harici int FastCloseShift=0;

harici int FastOpenPeriod=34;

harici int FastOpenShift=0;

harici int SlowClosePeriod=34;

extern int SlowCloseShift=0;

harici int SlowOpenPeriod=62;

extern int SlowOpenShift=0;

//---- gösterge tamponları

çift ExtBlueBuffer[];

çift ExtRedBuffer[];

çift ExtDarkVioletBuffer[];

çift ExtBlackBuffer[];

//+------------------------------------------- -------------------+

//| Özel gösterge başlatma işlevi |

//+------------------------------------------- -------------------+

int init()

{

//---- çizim sırasında satır kayması

SetIndexShift(0,FastCloseShift);

SetIndexShift(1,FastOpenShift);

SetIndexShift(2,SlowCloseShift);

SetIndexShift(3,SlowOpenShift);

//---- çizim sırasında ilk pozisyonlar atlandı

SetIndexDrawBegin(0,FastCloseShift+FastClosePeriod);

SetIndexDrawBegin(1,FastOpenShift+FastOpenPeriod);

SetIndexDrawBegin(2,SlowCloseShift+SlowClosePeriod);

SetIndexDrawBegin(3,SlowOpenShift+SlowOpenPeriod);

//---- 3 gösterge arabelleği eşlemesi

SetIndexBuffer(0,ExtBlueBuffer);

SetIndexBuffer(1,ExtRedBuffer);

SetIndexBuffer(2,ExtDarkVioletBuffer);

SetIndexBuffer(3,ExtBlackBuffer);

//---- çizim ayarları

SetIndexStyle(0,DRAW_HISTOGRAM,0,2);

SetIndexStyle(1,DRAW_HISTOGRAM,0,2);

SetIndexStyle(2,DRAW_NONE,0,2);

SetIndexStyle(3,DRAW_NONE,0,2);

//---- dizin etiketleri

SetIndexLabel(0,"HızlıKapat");

SetIndexLabel(1,"HızlıAç");

SetIndexLabel(2,"YavaşKapat");

SetIndexLabel(3,"YavaşAç");

//---- başlatma tamamlandı

dönüş(0);

}

//+------------------------------------------- -------------------+

//| 9 Kare Tüccar |

//+------------------------------------------- -------------------+

int başlangıç()

{

int limiti;

int counted_bars=IndicatorCounted();

//---- olası hataları kontrol et

if(counted_bars<0) return(-1);

//---- son sayılan çubuk yeniden sayılacak

if(counted_bars>0) counted_bars--;

limit=Barlar-sayılan_barlar;

//---- Ana döngü

for(int i=0; i<limit; i++)

{

//---- ma_shift 0'a ayarlandı çünkü SetIndexShift abowe'u çağırdı

ExtBlueBuffer=iMA(NULL,0,FastClosePeriod,0,MODE_EMA,PRICE_CLOSE,i);

ExtRedBuffer=iMA(NULL,0,FastOpenPeriod,0,MODE_EMA,PRICE_OPEN,i);

ExtDarkVioletBuffer=iMA(NULL,0,SlowClosePeriod,0,MODE_EMA,PRICE_OPEN,i);

ExtBlackBuffer=iMA(NULL,0,SlowOpenPeriod,0,MODE_EMA,PRICE_MEDIAN,i);

}

//---- tamamlamak

dönüş(0);

 
 
Dosyalar:
example.gif  12 kb
example.mq4  3 kb
 
wolfe:
Hadi bakalım. Bunu çok hızlı yaptım ve evet, yapılabilir.

Kodlama örneği için ekteki example.mq4'e bakın.

Ayrıca, yorumların yer aldığı bir ekran görüntüsü de dahil edilmiştir, böylece RSI değerlerinin dizide tıklanarak kaydedildiğini görebilirsiniz.

merhaba wolfe,

Zamanlayıcınız ve çabalarınız için çok teşekkür ederim. bunu deneyeceğim

Saygılarımızla,

MSV

 
 

Bollinger Bandı

Merhaba,

Biri bana Bollinger Band formülünde (kapanışta 20 periyod dev 2) Excel elektronik tablosunda yardımcı olabilir mi? Şimdiden teşekkür ederim.

 

Merhaba millet !!

EA'mda sadece "günde bir alım satım" emri açmam gerekiyor, lütfen, bunu yapmak için kod nasıl?

 
Apolofx:
Merhaba millet !! EA'mda sadece "günde bir alım satım" emri açmam gerekiyor, lütfen, bunu yapmak için kod nasıl?

Tüm kapalı emirler arasında dolaşmanız ve her birinin sembolü ve kapanma zamanı için kontrol etmeniz gerektiğine inanıyorum... Symbol() ile eşleşen ve en son kapanma zamanına sahip olanı alın. daha sonra 24 saat ekleyin ve mevcut zamanı test etmek ve son siparişe + 24 saat ulaştığında ticareti açmak için bunu bir değişkende kullanın

 

Veya bunu yapmanın daha basit bir yolu, TimeDayOfYear işlevini kullanmak ve eşleşen sembol ve sihirli sayı ile son kapatılan siparişi kontrol etmektir. Sadece bugün ile yılın aynı günü olmadığından emin olun.

TimeDayOfYear'ın tanımı ve kullanımı için yardım dosyasına bir göz atın

Saygılarımızla

Lüks