![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
Teşekkürler poruchik. İşte değiştirilmesi gereken kod. modifiye etmeye çalışacağım.
if (ABCD && StringLen(vNamePattern)==0 && PotencialsLevels_retXD<2)
{
vBullBear = "";
vNamePattern = "";
AB=MathAbs(zz[aXABCD] - zz[aXABCD[A]]);
CD=MathAbs(zz[aXABCD[D]] - zz[aXABCD[C]]);
if (CD>AB*min_DeltaGartley && CD<AB*max_DeltaGartley)
{
vNamePattern=vABCD; // AB-CD
}
başka
{
için (int iABCD=0;iABCD<_ABCDsize;iABCD++)
{
if (CD>_ABCDtype*AB*min_DeltaGartley && CD<_ABCDtype*AB*max_DeltaGartley)
{
vNamePattern=_ABCDtypetxt+"*AB=CD";
kırmak;
}
}
}
Tamamlandı ! İşte değiştirilmiş kod. Şimdi AB=CD & (x) * AB=CD kalıpları için AC < AB * Fib(1.0)'ı kontrol ediyor
if (ABCD && StringLen(vNamePattern)==0 && PotencialsLevels_retXD<2)
{
vBullBear = "";
vNamePattern = "";
AB=MathAbs(zz[aXABCD] - zz[aXABCD[A]]);
CD=MathAbs(zz[aXABCD[D]] - zz[aXABCD[C]]);
if ( (CD>AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])
||
(CD>AB*min_DeltaGartley && CD<AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])
)
{
vNamePattern=vABCD; // AB-CD
}
başka
{
için (int iABCD=0;iABCD<_ABCDsize;iABCD++)
{
if ( (CD>_ABCDtype*AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])
||
(CD>_ABCDtype*AB*min_DeltaGartley && CD<_ABCDtype*AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[ C]] < zz[aXABCD])
)
{
vNamePattern=_ABCDtypetxt+"*AB=CD";
kırmak;
}
}
}
teşekkürler kardeşim
133'ü kodunuzla modladım
aynı hata mı?
teşekkürler kardeşim
133'ü kodunuzla modladım
aynı hata mı?hoş geldin poruchik,
ve Gerçek AB=CD için oranlar şu şekilde olmalıdır:
AB=CD Kalıbı
[.382/2.240]
[.500/2.000]
[.618/1.618]
[.707/1.414]
[.786/1.270]
[AB=CD]
Gerçek AB=CD'yi kontrol etmek için Değiştirilmiş Kod
Yeni kod artık retAC , retBD oranlarını kontrol ediyor
Yeni kodla, gösterge daha az AB=CD modeli buluyor ancak bunlar çok doğru olacak![](https://c.mql5.com/forextsd/smiles/smile.png)
if (ABCD && StringLen(vNamePattern)==0 && PotencialsLevels_retXD<2)
{
vBullBear = "";
vNamePattern = "";
AB=MathAbs(zz[aXABCD] - zz[aXABCD[A]]);
CD=MathAbs(zz[aXABCD[D]] - zz[aXABCD[C]]);
retAC = (zz[aXABCD[C]] - zz[aXABCD]) / (zz[aXABCD[A]] - zz[aXABCD] + vDelta0);
retBD = (zz[aXABCD[C]] - zz[aXABCD[D]]) / (zz[aXABCD[C]] - zz[aXABCD] + vDelta0);
Eğer(
(retAC>=0.382*min_DeltaGartley) && (retAC=2.240*min_DeltaGartley) && (retBD<=2.240*max_DeltaGartley)
||
(retAC>=0.500*min_DeltaGartley) && (retAC=2.000*min_DeltaGartley) && (retBD<=2.000*max_DeltaGartley)
||
(retAC>=0.618*min_DeltaGartley) && (retAC=1.618*min_DeltaGartley) && (retBD<=1.618*max_DeltaGartley)
||
(retAC>=0.707*min_DeltaGartley) && (retAC=1.414*min_DeltaGartley) && (retBD<=1.414*max_DeltaGartley)
||
(retAC>=0.786*min_DeltaGartley) && (retAC=1.270*min_DeltaGartley) && (retBD<=1.270*max_DeltaGartley)
)
{
if ( (CD>AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])
||
(CD>AB*min_DeltaGartley && CD<AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])
)
{
vNamePattern=vABCD; // AB-CD
}
}
başka
{
için (int iABCD=0;iABCD<_ABCDsize;iABCD++)
{
if ( (CD>_ABCDtype*AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])
||
(CD>_ABCDtype*AB*min_DeltaGartley && CD<_ABCDtype*AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[ C]] < zz[aXABCD])
)
{
vNamePattern=_ABCDtypetxt+"*AB=CD";
kırmak;
}
}
}
Gerçek AB=CD'yi kontrol etmek için Değiştirilmiş Kod
Yeni kod artık retAC , retBD oranlarını kontrol ediyor
Yeni kodla, gösterge daha az AB=CD modeli buluyor ancak bunlar çok doğru olacak![](https://c.mql5.com/forextsd/smiles/smile.png)
if (ABCD && StringLen(vNamePattern)==0 && PotencialsLevels_retXD<2)
{
vBullBear = "";
vNamePattern = "";
AB=MathAbs(zz[aXABCD] - zz[aXABCD[A]]);
CD=MathAbs(zz[aXABCD[D]] - zz[aXABCD[C]]);
retAC = (zz[aXABCD[C]] - zz[aXABCD]) / (zz[aXABCD[A]] - zz[aXABCD] + vDelta0);
retBD = (zz[aXABCD[C]] - zz[aXABCD[D]]) / (zz[aXABCD[C]] - zz[aXABCD] + vDelta0);
Eğer(
(retAC>=0.382*min_DeltaGartley) && (retAC=2.240*min_DeltaGartley) && (retBD<=2.240*max_DeltaGartley)
||
(retAC>=0.500*min_DeltaGartley) && (retAC=2.000*min_DeltaGartley) && (retBD<=2.000*max_DeltaGartley)
||
(retAC>=0.618*min_DeltaGartley) && (retAC=1.618*min_DeltaGartley) && (retBD<=1.618*max_DeltaGartley)
||
(retAC>=0.707*min_DeltaGartley) && (retAC=1.414*min_DeltaGartley) && (retBD<=1.414*max_DeltaGartley)
||
(retAC>=0.786*min_DeltaGartley) && (retAC=1.270*min_DeltaGartley) && (retBD<=1.270*max_DeltaGartley)
)
{
if ( (CD>AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])
||
(CD>AB*min_DeltaGartley && CD<AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])
)
{
vNamePattern=vABCD; // AB-CD
}
}
başka
{
için (int iABCD=0;iABCD<_ABCDsize;iABCD++)
{
if ( (CD>_ABCDtype*AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])
||
(CD>_ABCDtype*AB*min_DeltaGartley && CD<_ABCDtype*AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[ C]] < zz[aXABCD])
)
{
vNamePattern=_ABCDtypetxt+"*AB=CD";
kırmak;
}
}
}Bazı revizyonlar yapıldı (gereksiz parantezler kaldırıldı ).
Son Kod
if (ABCD && StringLen(vNamePattern)==0 && PotencialsLevels_retXD<2)
{
vBullBear = "";
vNamePattern = "";
AB=MathAbs(zz[aXABCD] - zz[aXABCD[A]]);
CD=MathAbs(zz[aXABCD[D]] - zz[aXABCD[C]]);
retAC = (zz[aXABCD[C]] - zz[aXABCD]) / (zz[aXABCD[A]] - zz[aXABCD] + vDelta0);
retBD = (zz[aXABCD[C]] - zz[aXABCD[D]]) / (zz[aXABCD[C]] - zz[aXABCD] + vDelta0);
Eğer(
(retAC>=0.382*min_DeltaGartley && retAC=2.240*min_DeltaGartley && retBD<=2.240*max_DeltaGartley)
||
(retAC>=0.500*min_DeltaGartley && retAC=2.000*min_DeltaGartley && retBD<=2.000*max_DeltaGartley)
||
(retAC>=0.618*min_DeltaGartley && retAC=1.618*min_DeltaGartley && retBD<=1.618*max_DeltaGartley)
||
(retAC>=0.707*min_DeltaGartley && retAC=1.414*min_DeltaGartley && retBD<=1.414*max_DeltaGartley)
||
(retAC>=0.786*min_DeltaGartley && retAC=1.270*min_DeltaGartley && retBD<=1.270*max_DeltaGartley)
)
{
if ( (CD>AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])
||
(CD>AB*min_DeltaGartley && CD<AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])
)
{
vNamePattern=vABCD; // AB-CD
}
}
başka
{
için (int iABCD=0;iABCD<_ABCDsize;iABCD++)
{
if ( (CD>_ABCDtype*AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])
||
(CD>_ABCDtype*AB*min_DeltaGartley && CD<_ABCDtype*AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[ C]] < zz[aXABCD])
)
{
vNamePattern=_ABCDtypetxt+"*AB=CD";
kırmak;
}
}
}
poruchik, "ExtDeltaGartley=0.09"un ne olduğunu biliyorum. Bildiğim kadarıyla bu parametre ideal fibodan maksimum sapmayı kontrol ediyor.
zup130'da ayrıca ExtDeltaStrongGartley=0.07 vardır.
Bu parametrenin ExtDeltaGartley'den farkı nedir?poruckic, biliyorum daha önce sordum ama konuyu netleştirmek için bir kez daha sorayım.
Benim anladığım şu,
ExtDeltaGartley=0.09 ; bacakların uzunluklarını kontrol eder.
Yani AB=CD kalıbında AB ayağının uzunluğu CD ayağının uzunluğuna eşit olmalıdır.
Bacak uzunluklarının limitler dahilinde olup olmadığını kontrol etmek istersek ExtDeltaGartley parametresini kullanırız.
Ancak ExtDeltaStrongGartley, düzeltme Fibonacci Oranlarını kontrol eder.
Örneğin, AB'nin AC düzeltmesi 0.3820 ise, BC'nin fib BD düzeltmesi 2.240 olmalıdır.
ExtDeltaStrongGartley burada lif oranlarını ExtDeltaGartley değil limitler dahilinde kontrol eder.
haklı mıyım?
.886-1.13 ekliyorum
.382-2.618 (2.24 değil)
ExtDeltaStrongGartley - güçlü modeller için (kesin modeller), it=0,07 (%7)
varStrongPatterns - kesin kalıpları arama algoritması seçenekleri |
// | = 0 algoritmada tam beş noktalı desen araması, |
// | 122 versiyona kadar mevcut. Desen kabul edildi |
// | XD-XB-AC-BD'nin geri çekilmesinin sınırlara ulaşıp ulaşmadığı bulundu |
// | kabul. |
// | |
// | = 1 örüntüleri arayarak kabul limitleri dahilinde |
// | yalnızca XB-AC-BD geri çekilmesini elde etmek için. |
// | Bu durumda XD'nin geri çekilmesi spravochno olarak kabul edilir, |
// | sadece D modelinin bir noktasının gelişim sınırının hesaplanmasına katılır
ExtDeltaStrongGartley - güçlü modeller için (kesin modeller), it=0,07 (%7)
varStrongPatterns - kesin kalıpları arama algoritması seçenekleri |
// | = 0 algoritmada tam beş noktalı desen araması, |
// | 122 versiyona kadar mevcut. Desen kabul edildi |
// | XD-XB-AC-BD'nin geri çekilmesinin sınırlara ulaşıp ulaşmadığı bulundu |
// | kabul. |
// | |
// | = 1 örüntüleri arayarak kabul limitleri dahilinde |
// | yalnızca XB-AC-BD geri çekilmesini elde etmek için. |
// | Bu durumda XD'nin geri çekilmesi spravochno olarak kabul edilir, |
// | sadece D modelinin bir noktasının gelişim sınırının hesaplanmasına katılırO zaman ExtDeltaStrongGartley Bat, Gartley, ButterFly ve Crab gibi 5 nokta deseni içindir.
ve ExtDeltaGartley diğerleri içindir.(AB=CD , Alternatif AB=CD, vb.)
Doğru?