[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 71
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Sana bir ipucu vereceğim:
NormalizeDouble(Düşük[i]-Düşük[i+1],Rakamlar)<=3*Nokta --- bitişik çubuklar arasındaki fark. Eğer koşul karşılanmıyorsa -> Return(False); (Yalanları geri getirin)
Tüm döngüden geçtikten sonra, true değerini döndürün
Farklı şekilde yapabilirsiniz:
NormalizeDouble(Low[i]-Low[i+1],Digits)<=3*Point koşulu doğruysa, bitişik çubukların sayacını (başlangıçta sıfıra eşittir) 1 artırın,
bu koşul yanlışsa, bitişik çubukların sayacının değerini döndürürüz.
İşlev tarafından döndürülen sayı ne kadar büyük olursa, kurulumun gücü o kadar fazla olur. Sıfır döndürüldüğünde, kurulum yoktur.
Bence fiyatı normalleştirmeye gerek yok çünkü her şeyi bir tamsayı ile karşılaştırmamız gerekiyor. Burada MathAbs (çift değer) işlevini kullanmak daha iyidir, böylece fiyatlardan biri diğerinden daha yüksekse, çıkıştaki işaret her zaman pozitif olur.
Böyle bir an daha. Görünüşe göre bir döngüye hiç ihtiyacımız yok!
Bir işlevi almak ve orada bir sayaç başlatmak daha kolaydır. 2 komşu çubuğu sürekli olarak ekstremumlar için kontrol ediyoruz, eğer aynılarsa, sayaç 1 arttı (başlangıçta elbette 0'a eşit olacak). Ardından, bir sonraki yeni çubukta benzer bir kontrol yapıyoruz. Ekstremler aynıysa, sayaca bir tane ekleyin, vb. Kursta bir döngüye gerek yok, değil mi?
Sonuçta, aynı ekstremum değere sahip kaç tane bara sahip olacağımızı bilmiyoruz ve bu nedenle, shift parametresini geçmişte ayarlamak bir anlam ifade etmiyor.
Yüksek frekanslı ticaret hakkında çok fazla konuşma var. HFT'nin herkesi kazandığını söylüyorlar. Bize göre başlıca avantajı nedir? Kısa bir pingin kendi başına iyi olduğu gerçeği anlaşılabilir, ancak bir işlem bir milisaniyeden fazla sürüyor :) HFT hangi yeni kalitede ortaya çıkıyor ve algoritmalar temelde nasıl farklı?
Teşekkür ederim.
"Zaporozhets" ve "bunlar"dasınız - "Ferrari" de. Geçebilir misin? (Bu algoritmalarla ilgili değil)
"Zaporozhets" ve "bunlar"dasınız - "Ferrari" de. Geçebilir misin? (Bu algoritmalarla ilgili değil)
"Zaporozhets" ve "bunlar"dasınız - "Ferrari" de. Geçebilir misin? (Bu algoritmalarla ilgili değil)
Yine de temel bir fark var.
En azından risk/getiri alın. HFT puan olarak kâr ederse, o zaman açıkça stop etmez ve pozisyonu diğer kriterlere göre kapatması gerekir. Anlamak istediğim şey bu. Poz ve çıkışa karşı herhangi bir kene olması mümkündür :) Peki, o zaman kâr nereden geliyor?
SMA'nın hangi taraftan fiyatları geçtiği nasıl belirlenir?
Bence fiyatı normalleştirmeye gerek yok çünkü her şeyi bir tamsayı ile karşılaştırmamız gerekiyor. Burada MathAbs (çift değer) işlevini kullanmak daha iyidir, böylece fiyatlardan biri diğerinden daha yüksekse, çıkıştaki işaret her zaman pozitif olur.
Böyle bir an daha. Görünüşe göre bir döngüye hiç ihtiyacımız yok!
Bir işlevi almak ve orada bir sayaç başlatmak daha kolaydır. 2 komşu çubuğu sürekli olarak ekstremumlar için kontrol ediyoruz, eğer aynılarsa, sayaç 1 arttı (başlangıçta elbette 0'a eşit olacak). Ardından, bir sonraki yeni çubukta benzer bir kontrol yaparız. Ekstrem aynıysa, sayaca bir tane ekleyin, vb. Kursta bir döngüye gerek yok, değil mi?
Sonuçta, aynı ekstremum değere sahip kaç tane bara sahip olacağımızı bilmiyoruz ve bu nedenle, shift parametresini geçmişte ayarlamak bir anlam ifade etmiyor.
MathAbs () doğal olarak orada gerekli - direksiyon başında otururken önceden yazdım - özellikle bir ipucu verdiği için fazla yazmayacaksınız. Fiyatları normalleştiriyorum, çünkü gerçek sayıların karşılaştırılması normalleştirmeyi gerektiriyor ve bir tamsayı ile karşılaştırma yapmıyoruz (sonuçta 3* Nokta , int* double - int'yi double'a dönüştürüyor). Yine de her kene üzerindeki çubukları karşılaştıracak bir işlev yapardım - hemen düşünmeye alışığım. Expert Advisor'ın gerçek hayatta herhangi bir nedenle bağlantısı kesilirse, Expert Advisor yeniden başlatıldığında sayaç değerini saklayan değişken sıfırlanır - bu bir bağırsak değil... bu bir veri kaybıdır. Tek tek arama (veya daha iyisi, hız optimizasyonu için tek tek arama) durumunda, EA'yı yeniden başlatmak bu durumda o kadar da kötü değil - her şeyi yeniden hesaplayacaktır. Bu nedenle, her yeni çubukta, belirtilen bitişik çubuk sayısını eşitlik için karşılaştıran (peki, nasılsın) ve belirtilen kritere göre birbirinin aynı olan ardışık çubukların sayısını döndüren ayrı bir işlev yapmak daha iyidir. bir fonksiyona aktarılan çubuk sayısı ile ilk ve derinden tarihin derinliklerine (on adet - gözler için ...).
Genel olarak... böyle bir şey...
Yine yardım için.
SMA'nın hangi taraftan fiyatları geçtiği nasıl belirlenir?
Eğer bir (
iMA(Symbol(), Period() , 1 , 0, MODE_SMA, PRICE_CLOSE, 2 ) <= SMA(blah, falan, falan, 2 )
ve
iMA(Symbol(), Period(), 1 , 0, MODE_SMA, PRICE_CLOSE, 1 ) > SMA(blah, falan, falan, 1 )
) o zamanlar
{fiyat, ilk çubukta SMA'nızı aşağıdan yukarıya geçti}
Teşekkürler, hatayı buldum.
Tünaydın! Bana yardım et lütfen. VininI_HMA göstergesini indirdim ve EA şablonuna eklemeye çalıştım, ancak ticaret EA açılmıyor. Derleme iyi gitti.
SATIŞ koşulları (sigg1==BOŞ_DEĞER)&& (sigg2!=BOŞ_DEĞER)&& (sigg1!=BOŞ_DEĞER)&& (sigg2!=BOŞ_DEĞER)
Satın Alma Koşulları (sigj1==BOŞ_DEĞER)&& (sigj2!=BOŞ_DEĞER)&& (sigz1!=BOŞ_VALUE)&& (sigz2!=BOŞ_VALUE)
double sigj1 = iCustom(NULL,0,"VininI_HMA_sound&Alert", nokta ,yöntem,fiyat,sdvig,0,1);
double sigj2 = iCustom(NULL,0,"VininI_HMA_sound&Alert",dönem,yöntem,fiyat,sdvig,0,2);
double sigs1 = iCustom(NULL,0,"VininI_HMA_sound&Alert",dönem,yöntem,fiyat,sdvig,1,1);
double sigs2 = iCustom(NULL,0,"VininI_HMA_sound&Alert",dönem,yöntem,fiyat,sdvig,1,2);
double sig1 = iCustom(NULL,0,"VininI_HMA_sound&Alert",dönem,yöntem,fiyat,sdvig,2,1);
double sigc2 = iCustom(NULL,0,"VininI_HMA_sound&Alert",dönem,yöntem,fiyat,sdvig,2,2);
Lütfen söyle bana, neyi yanlış yaptım?