MQL5'te birlikte öğrenme ve yazma - sayfa 9

 
gdtt :

EA'da kullanılan

değer 0. çubuktan alınır, bunun için gösterge tamponlarının değerleri mum kapanana kadar her tikte değişir.

Doğru, denedim, ama aslında ana sorunu çözmüyor.-- Bir Uzman Danışmandan gelen göstergeyi, yalnızca istenen çubukta değil, aynı zamanda birkaç çubuk önce gösterge arabelleğini yeniden hesaplamaya zorlamak için nasıl

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 

Belki bir çözüm bulunmuştur! Biri...

Ancak bunu yapmak için göstergenin özel bir versiyonunu yapmanız gerekir.

 

Kral

bazı göstergeler yazın: ...
int tanıtıcı;
çift göstergeBuffer[];
...
int OnInit()
{
... handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA, AppPrice );
...
}

int OnCalculate (const int oranları_toplam, // fiyat[] dizi boyutu
const int prev_hesaplanmış, // önceki çağrıda işlenen çubuklar
const int başlıyor, // anlamlı verilerin başladığı yer
const double& fiyat[]) // hesaplama için dizi
{
... bir şeyler yapmak

Soru, handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA, AppPrice) uygulamasının AppPrice'ın ne olduğunu bilmesine nasıl izin verileceğidir?
veya Uygula: kodunda kullanmak için Parametreler sekmesinden nasıl çıkarılır?

Şimdiden teşekkürler…

 
FlyAgaric :

Kral


Soru, handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA, AppPrice) uygulamasının AppPrice'ın ne olduğunu bilmesine nasıl izin verileceğidir?
veya Uygula: kodunda kullanmak için Parametreler sekmesinden nasıl çıkarılır?

Şimdiden teşekkürler…

Bkz. OnCalculate() :

Fiyat[] dizisi olarak gerekli zaman serisi veya gösterge seçimi, "Parametreler" sekmesindeki gösterge başlatılırken kullanıcı tarafından yapılır. Bunu yapmak için, "Uygula" alanının açılır listesinde istediğiniz öğeyi belirtmelisiniz.

Diğer mql5 programlarından özel gösterge değerleri almak için sonraki işlemler için gösterge tutamacını döndüren iCustom() işlevini kullanın. Bu durumda, gerekli fiyat[] dizisini veya başka bir göstergenin tutamağını da belirtebilirsiniz . Bu parametre , özel gösterge girdi değişkenleri listesinde en son iletilmelidir.
 
Rosh :

Bkz. OnCalculate() :


Teşekkürler Rosh, ama sorum tam olarak bu. Açıklamaya ne yazmalıyım
handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA, AppPrice);
AppPrice olarak mı?

Mevcut yardımı çok dikkatli bir şekilde okudum. Isı işe yaramış olabilir, ama...

 
FlyAgaric :

Teşekkürler Rosh, ama sorum tam olarak bu. Açıklamaya ne yazmalıyım
handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA, AppPrice);
AppPrice olarak mı?

Mevcut yardımı çok dikkatli bir şekilde okudum. Isı işe yaramış olabilir, ama...

Başka bir göstergenin verilerini hesaplamanız gerekiyorsa gösterge tutamağını belirtin. Veya göstergenin hesaplanacağı fiyatların türü.
 
FlyAgaric :

Teşekkürler Rosh, ama sorum tam olarak bu. Açıklamaya ne yazmalıyım
handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA, AppPrice);
AppPrice olarak mı?

Mevcut yardımı çok dikkatli bir şekilde okudum. Isı işe yaramış olabilir, ama...

Sıcaklık. AppPrice, ENUM_APPLIED_PRICE olarak ayarlanmalıdır)
 input ENUM_APPLIED_PRICE AppPrice= PRICE_CLOSE ;
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
Swan :
Sıcaklık. AppPrice, ENUM_APPLIED_PRICE olarak ayarlanmalıdır)

Kuğu, ilgin için teşekkür ederim. Ama eğer kullanırsan
ENUM_APPLIED_PRICE girin AppPrice=PRICE_CLOSE; ve ilk şekli

int OnCalculate (const int oranları_toplam, // fiyat[] dizi boyutu
const int prev_hesaplanmış, // önceki çağrıda işlenen çubuklar
const int başlıyor, // anlamlı verilerin başladığı yer
const double& fiyat[]) // hesaplama için dizi
daha sonra derlerken bir uyarı alıyoruz: İki OnCalculate işlevi tanımlandı. Fiyat verisi işlevi kullanılacaktır NameIndicator.mq5 (str sayısı)
ve price[] dizisi, üçüncü "Parametreler" sekmesindeki Apply to: ile eşleşmediği sürece AppPrice'a hiçbir şekilde bağlı kalmaz.

Aslında soru şu ki, eğer fiyat[] dizisi bir şekilde ise, iMA() türünün yerleşik tek arabellek göstergelerini ve int OnCalculate()'in ilk biçimini kullanmak mümkün müdür?
hesaplamalarda kullanılır.

 
Rosh :
Başka bir göstergenin verilerini hesaplamanız gerekiyorsa gösterge tutamağını belirtin. Veya göstergenin hesaplanacağı fiyatların türü.

Biz (ya da daha doğrusu ben) bir tür yanlış anlaşılmaya sahibiz.

Aslında soru şu ki, eğer fiyat[] dizisi bir şekilde ise, iMA() türünün yerleşik tek arabellek göstergelerini ve int OnCalculate() öğesinin ilk biçimini kullanmak mümkün müdür?
hesaplamalarda kullanılır.

 
FlyAgaric :

Biz (ya da daha doğrusu ben) bir tür yanlış anlaşılmaya sahibiz.

Aslında soru şu ki, eğer fiyat[] dizisi bir şekilde ise, iMA() türünün yerleşik tek arabellek göstergelerini ve int OnCalculate()'in ilk biçimini kullanmak mümkün müdür?
hesaplamalarda kullanılır.

AppPrice ayarınızın OnCalculate() işleviyle hiçbir ilgisi yoktur.

 int OnInit ()
{
... handleMA = iMA ( _Symbol , _Period , periodMA, shiftMA, MODE_SMA , AppPrice);
...
}

Bunu fiyat sabitlerinden birinin değerine (Seçenek 1) veya başka bir göstergenin tutamacına (Seçenek 2) ayarlayabilirsiniz. Ve sonra şunları yapabilirsiniz:

1 seçenek.

İkinci türden OnCalculate() işlevinde

 int OnCalculate ( const int rates_total,       // размер входных таймсерий
                 const int prev_calculated,   // обработано баров на предыдущем вызове
                 const datetime & time[],     // Time
                 const double & open[],       // Open
                 const double & high[],       // High
                 const double & low[],         // Low
                 const double & close[],       // Close
                 const long & tick_volume[],   // Tick Volume
                 const long & volume[],       // Real Volume
                 const int & spread[]         // Spread
   );

gerekli tüm verileri isteyin ve bir hesaplama oluşturun

Seçenek 2.

Kodun gerektirdiği şekilde OnCalculate() yöntemini kullanın ve gösterge değerlerini almak için CopyBuffer() öğesini kullanın.