Kodlama yardımı - sayfa 522

 

Herkese selam,

Bunun bir for döngüsündeki gösterge değerini hesaplamanın doğru yolu olup olmadığını bilmek istiyorum (mevcut tüm çubuklar boyunca):

int OnCalculate(...)

{

//...

ArraySetAsSeries(SignalLine,false);

//...

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

{

double ma=iMA(NULL,0,MaPeriod,0,MaMethod,MaPrice,i);

//...

SignalLine=ma;

}

//...

}

//...

dönüş oranları_toplam

}

PS Mantıksal olarak bu basit durumda, bir MA çoğaltmasını iMA nesnesi ile temsil etmek ve çizmek istiyorum. Ama döngüyü nasıl kurduğumdan emin değilim. Yerleşik MT4 ile hesaplananla karşılaştırıldığında biraz fark alıyorum. Neden olduğunu anlayamıyorum!

teşekkürler

 
har:
Herkese selam,

Bunun bir for döngüsündeki göstergenin değerini hesaplamanın doğru yolu olup olmadığını bilmek istiyorum (mevcut tüm çubuklar boyunca):

int OnCalculate(...)

{

//...

ArraySetAsSeries(SignalLine,false);

//...

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

{

double ma=iMA(NULL,0,MaPeriod,0,MaMethod,MaPrice,i);

//...

SignalLine=ma;

}

//...

}

//...

dönüş oranları_toplam

}

PS Mantıksal olarak bu basit durumda, bir MA çoğaltmasını iMA nesnesi ile temsil etmek ve çizmek istiyorum. Ama döngüyü nasıl kurduğumdan emin değilim. Yerleşik MT4 ile hesaplananla karşılaştırıldığında biraz fark alıyorum. Neden olduğunu anlayamıyorum!

teşekkürler

iMA() kullandığınızda sıranın önemi yoktur

Ancak doğru yol for(int i=Bars-1; i>=0; i--) olmalıdır - bu şekilde birçok durumda hatalardan kaçınırsınız

 

teşekkür ederim mladen. Bu nedenle, ArraySetAsSeries(SignalLine, false ) olarak ayarlarsam, şununla yinelemeliyim:

for (int i = 0; i < Çubuklar; i++)

aksine, eğer ArraySetAsSeries(SignalLine, true ) ile yinelemeliyim

for (int = Çubuklar - 1; i >= 0; i--)

Bu doğru mu?

 
har:
teşekkür ederim mladen. Bunun nedeni, ArraySetAsSeries() işlevini kullandığımız için diziyi tersten yinelemeliyiz, doğru mu? Teşekkürler!

Bu hiçbir şeyi değiştirmez - mevcut değerle 0 elemanı alacaksınız ve yeni bir akım değeri geldiğinde, SignalLine'ın o elemanı 0'ın üzerine yeni değer yazılacaktır.

SignalLine bir arabellek ise, sadece ArraySetAsSeries(SignalLine,false);

 

Merhaba mladen mr araçları ve Igorad

Paylaştığınız ve sunulan yardım için yürekten teşekkürler.

Ben de uzun bir hamilelikten sonra tekrar yardımınızı rica ediyorum, bu yüzden umarım dikkatinizi çeker, Indication T3 adaptive ma _ica.mq4'ünüz ticaret için en sevdiğim indi'dir, ancak zamanın olmaması nedeniyle manuel olarak takip etmesi görsel olarak zor, bu yüzden birisine diliyorum takip, bep ve sl,tp gibi normal EA olanaklarıyla ve lot boyutuyla sipariş almak için satın alma sinyalleri olarak bu gösterge oklarıyla bir Uzman danışmanı kodlamama yardımcı olmak için.

Mladen ve Igorad meşgul olmalı -eğer yardım edebilirlerse yetenekliyim, yardım etmek isteyen biri bana bu konuda yardımcı olabilir.İhtiyacınız olursa göstergeyi de ekleyebilirim. Bu, T3 uyarlanabilir ma göstergesinin bulunduğu sayfadır " https://c.mql5.com/forextsd/forum/167/t3_adaptive_ma_i-ca_2.01_alerts_nmc.mq4

Ayrıca t3 cci ile diğer indie'lerle de talep edebilirim, ancak her indies tek bir EA'da kullanım doğru veya yanlış seçeneğiyle ayrı çalışır.Lukas okları ve eğriler göstergesine dayalı EA ile ilgilenen herkes arasında - yine de fiyat dönüşünün gerçek eğrisini analiz etmede iyileştirmeye ihtiyacı var. , ma'ya dayandığından, fiyat analiz edilmez, ancak forex'te tamamen SINIRLI, aksi takdirde herkes seçime göre milyoner olur.

Forum arkadaşlarının yardımıyla en kısa zamanda canlı alım satım için umarım.Kodlamaya çalıştım ama bir programcı değilim, bu yüzden hepsi boşuna kaldı, bu yüzden burada yardım talebinde bulundum.Kodlama becerileri olmadan kesinlikle çok karmaşık göstergeler vermek zor. mladen'in süper beyni ile T3 uyarlamalı gibi. Acemi ve teknik olmayan biri için kodlamak zor.

Hayal büyük ama elindeki Minik.

 

Oh okkkk... Teşekkürler!

C++'da bu tür sorunlar yoktu..

 

Merhaba Mladen

Bu yardımı dikkate alacağınızı umuyoruz, lütfen bu gönderiye bir göz atın - #5118, #5220 numaralı gönderinizin üstünde sadece bir gönderi.

Seninki gibi temiz ellerle benim için en iyi hediye olurdu.

 
har:
Oh okkkk... Teşekkürler! C++'da bu tür sorunlar yoktu..

Her zaman C/C++ benzeri moddaki dizilerle çalıştığım için, bu dizilerdeki indeksleme 0'dan (en eski) Çubuk-1 (en yeni) çubuğuna gider. En yeni çubuk için dizin 0'ı kullanırsanız, her zaman 0. öğeyi yeniden yazacaktır.

C/C++ yolunu kullanmak istiyorsanız, bir dizi kullanın, boyutun Bars'a eşit olup olmadığını kontrol edin, değilse, Bars boyutuna yeniden boyutlandırın ve ardından indeks olarak Bars-i-1 kullanarak öğelere değerler atayın.

Bu bir arabellek ise, indeksleme C/C++ yöntemine kıyasla ters çevrilir ve o zaman bu döngüde hiçbir şeyi değiştirmeniz gerekmez - diziyi false olarak ayarlayan kısmı kaldırmanız yeterlidir.

 

Evet gördüm! Ben de çözdüm.. Her neyse, MQL ve C++ arasındaki küçük farklar. MQL'de gördüklerime karşılık çok fazla C var! Ama kesinlikle MQL'yi seviyorum

Göstergemi hazır olduğunda (ve eğer faydalıysa anlayabilirsem) paylaşmak ve size yardım etmek istiyorum!

 
har:
Evet gördüm! Ben de çözdüm.. Her neyse, MQL ve C++ arasındaki küçük farklar. MQL'de gördüklerime karşılık çok fazla C var! Ama kesinlikle MQL'yi seviyorum Göstergemi hazır olduğunda (ve eğer faydalıysa anlayabilirsem) paylaşmak ve size yardım etmek istiyorum!

Hatta benzer görünseler bile, çalıştırdığınızda benzer olmaktan çok uzaktırlar. ex4 bir P kodudur. Yürütme hızı , eşdeğer bir C/C++ karşılığına göre en az 100 kat daha yavaştır

Yapabiliyorsanız, önemli kısımları bir C/C++ dll'sine yazın - çok daha hızlı olacaktır.