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

 
Alexey Kozitsyn :

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.

teşekkür etmek!
 
Derleyici uyarısı:

"tür dönüşümü nedeniyle olası veri kaybı"

Bu uyarı nasıl aşılır?
string singleElement+= CharToString ( StringGetCharacter (stringOfSymbols,i));
 
Maksym Mudrakov :
Derleyici uyarısı:

"tür dönüşümü nedeniyle olası veri kaybı"

Bu uyarı nasıl aşılır?
string singleElement+= CharToString ( StringGetCharacter (stringOfSymbols,i));

İş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

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin :
Ş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 verdi: 'ExtMapBuffer' - bildirilmemiş tanımlayıcı

 
Andrey Koldorkin :
Artem, derleyici bir hata oluşturdu: 'ExtMapBuffer' - bildirilmemiş tanımlayıcı

Doğal olarak olacak. Ben "buldozerden" yazdım. Ve örneği yazmadan önce, şablonunuzda herhangi bir harici değişken ayarlamadığınızı (ve buna gerek olmadığını) ve gösterge hesaplamalarını ekranda görüntülemek için herhangi bir arabellek ayarlamadığınızı söylemiştim. Tabii ki, arabellek çıktısı kullanmayan göstergeler var, ancak sizin durumunuzda değil.

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ü!
 
FOTOGRAF14 :
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.

 
Sergey Gritsay :
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

 
Alexey Kozitsyn :

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!

 
trader781 :

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

R Hangi nesneler ayırt edilemez? ve bir nesnenin türünü değiştirmek, ardından özelliklerin çökmesi ne anlama gelir?