MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 113
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Güncel fiyatları almanın birkaç yolu vardır:
1. Herhangi bir sembol için: garantili cari fiyatlar almak istiyorsanız, kullanmadan önce gerekli tanımlayıcılarla SymbolInfoDouble() işlevini çağırın.
2. Akım sembolü için de önceden tanımlanmış Bid ve Ask değişkenleri üzerinden cari fiyatları alabilirsiniz. Bu şekilde güncelliğini yitirebilirler, bu nedenle OnTick() işlevi uzun süre çalışıyorsa, RefreshRates() kullanılarak güncellenmeleri gerekir.
"tür dönüşümü nedeniyle olası veri kaybı"
Bu uyarı nasıl aşılır?
Derleyici uyarısı:
"tür dönüşümü nedeniyle olası veri kaybı"
Bu uyarı nasıl aşılır?
İşlevler tarafından döndürülen değer türlerini tam olarak bilmeniz ve açık bir döküm kullanmanız gerekir. https://www.mql5.com/ru/docs/basis/types/casting
Şablonunuz tamamlanmadı - büyük olasılıkla sihirbazda hesaplanan verilerin yazılacağı gösterge arabelleklerini belirtmediniz.
Ancak çoğu gösterge için temel ilke şudur:
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
if (rates_total< 1 ) return ( 0 ); // проверка достаточности данных для расчёта индикатора, если не достаточно - выходим
// если для расчёта требуются некое количество баров слева от индекса цикла, ...
// ... то проверять нужно это количество, а не 1
//--- Действия для полного перерасчёта индикатора
int limit=rates_total-prev_calculated; // количество посчитанных уже баров
if (limit> 1 ) { // если количество больше 1, значит имеем новые данные, и нужно полностью пересчитать индикатор
limit=rates_total- 1 ; // задаём количество требуемых для расчёта баров равным количеству баров в истории,
// если для расчёта требуются некое количество баров слева от индекса цикла, ...
// ... то это количество тоже нужно вычесть из rates_total чтобы не выйти за пределы массива
// так же тут нужно при необходимости произвести инициализацию буферов индикатора
}
//--- Основной цикл индикатора
for ( int i=limit; i>= 0 ; i--) {
// тут выполняем нужные расчёты и записываем их результат в нужные буферы, например:
ExtMapBuffer[i]=(open[i]+high[i]+low[i]+close[i])/ 4.0 ; // Выведем на график среднюю цену каждой свечи (OHLC/4.0)
}
//--- return value of prev_calculated for next call
return (rates_total);
}
//+------------------------------------------------------------------+
Artem, derleyici bir hata oluşturdu: 'ExtMapBuffer' - bildirilmemiş tanımlayıcı
Bu yüzden bu arabelleğe kendim girdim. Şablonu yeniden oluşturmanız gerekir, ancak yine de bu en basit eyleme daha sorumlu bir şekilde yaklaşın ve kendinize şu soruyu sorun - "gösterge oluşturma sihirbazı bana ne soruyor ve neye ihtiyacı var?", orada size ne sorduğunu okuyun, ve sadece "ileri" düğmelerine tıklamayın
merhaba! yaklaşık dört ay önce Kovalev'in ders kitabını kullanarak MQL4 çalışmaya başladım. Üstelik vidyoları var. Videoyu izliyorum, ders kitabını inceliyorum, orada kullanılan kodları tekrarlıyorum. Elbette teoriye göre çok şey öğrendim ama kendi başıma kod yazamıyorum. Hatta fikirlerim var, algoritmayı biliyorum. Her şeyi iyice inceliyorum, belki acelem var? Bunun çok ciddi bir mesele olduğunu ve bunda ustalaşmanın zaman aldığını anlıyorum. ama pratik yapmam gerektiğini biliyorum. basit görevlere ihtiyacınız var ve bunları yazın ve böylece birisi onları kontrol etsin, örneğin, sonra hareket edebilirsiniz! bir diğer sorun da güncellemeden önce kitap ve vidos vardı, kitaptan sonra kodu bile tekrarlıyorum, derliyorum, hata veriyor, yeni bir kapıda koyun gibi görünüyorum...... general, ne büyük bir üzüntü!
Belgeleri bir kez okuyun. Ders kitabı güncel değil. Belgeler bu konuda yardımcı olacaktır. Görevlere gelince - ders kitabında açıklanan görevlerin aynısını çözün. Sorunu okuyun, çözüme bakın, tekrarlayın. Ve böylece çalışmaya başlayana kadar. Kendinizi nasıl uygulayacağınızı öğrenmek istediklerinize mümkün olduğunca yakın görevler almak daha iyidir.
Hepsi, elbette, IMHO.
benim için her şey yolunda gidiyor
Tamam, ama bu tür nesnelerin neden farklı olmadığını açıklama arzusu var mı?
nesne türünü değiştirirseniz, özellikler 2 etiket veya eğilim çizgisi ile daraltılır
Belgeleri bir kez okuyun. Ders kitabı güncel değil. Belgeler bu konuda yardımcı olacaktır. Görevlere gelince - ders kitabında açıklanan görevlerin aynısını çözün. Sorunu okuyun, çözüme bakın, tekrarlayın. Ve böylece çalışmaya başlayana kadar. Kendinizi nasıl uygulayacağınızı öğrenmek istediklerinize mümkün olduğunca yakın görevler almak daha iyidir.
Hepsi, elbette, IMHO.
teşekkür etmek!
Tamam, ama bu tür nesnelerin neden farklı olmadığını açıklama arzusu var mı?
nesne türünü değiştirirseniz, özellikler 2 etiket veya eğilim çizgisi ile daraltılır