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
Dijital Filtreler EA bilgisi
Mladen, MrTools,
#1987 ile #1989 arasında gösterilen Dijital Filtreler çok etkileyici.
Bunları kullanarak bir EA denemek istiyorum - değerleri çıkarmak için iCustom'u nasıl kuracağınızı heceleyebilir misiniz?
Grafik Düzeltilmiş - Mod 1 (SATL) ve Mod 0 (FATL) üzerindeki Dijital Filtreler iyi bir seçim olabilir.
EA mantığı basit olabilir - FATL > SATL ve her ikisinin eğimi pozitif olduğunda satın alın; satmak için ters; FATL eğimi = 0 olduğunda kapanır.
Burada eğimin en iyi nasıl hesaplanacağına dair herhangi bir öneriniz var mı?
Teşekkürler!
Rex
Rex
Düzleştirilmemiş versiyondaki eğimleri bulmak için bunun gibi bir şey kullanabilirsiniz.
int filterType;
filterType = 0;
double fatlCurrent = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,0);
double fatlPrevious = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,1);
filterType = 1;
double satlCurrent = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,0);
double satlPrevious = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,1);
filterType = 2;
double rftlCurrent = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,0);
double rftlPrevious = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,1);
filterType = 3;
double rstlCurrent = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,0);
double rstlPrevious = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,1);
//
//
// slope of any of the values, fatl in this case
//
//
bool slopeUp = false;
bool slopeDown = false;
if (fatlCurrent>fatlPrevious) slopeUp = true;
if (fatlCurrent<fatlPrevious) slopeUp = true;
[/php]to find it out in the smoothed version use something like this (additional parameters needed in iCustom() call)
int phase = 0
int price = PRICE_CLOSE;
int filterType;
filterType = 0;
double fatlCurrent = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,0);
double fatlPrevious = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,1);
filterType = 1;
double satlCurrent = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,0);
double satlPrevious = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,1);
filterType = 2;
double rftlCurrent = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,0);
double rftlPrevious = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,1);
filterType = 3;
double rstlCurrent = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,0);
double rstlPrevious = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,1);
//
//
// slope of any of the values, fatl in this case
//
//
bool slopeUp = false;
bool slopeDown = false;
if (fatlCurrent>fatlPrevious) slopeUp = true;
if (fatlCurrent<fatlPrevious) slopeUp = true;
[/php]Both examples are using current (open) bar value. To avoid it change the last parameter from 0 and 1 to 1 and 2. Also, included even unnecessary values calculations (as you can see all the digital filters types are calculated) in order to show how to retreive every value
To compare values of different filters simply compare (for example) if (fatlCurrent>rftlCurrent) or if (fatlCurrent<rftlCurrent) but that just shows their relative values. It does not show if they just crossed one above/bellow the other
______________________
To find crossings of a different filters, it gets a bit more complicated and the best way is to write a new indicator. It is more complicated because it depends how do you treat eventual equal values of two indicators. I prefer to treat them as a trend continuation and not as a possible trend reversal. Attaching an indicator that will show you "trends" (a simple "bigger"/ "smaller" relation) of 2 digital filters. To use it all you need is to check the value that is even not going to be displayed anywhere on chart, like this
[php] int price = PRICE_CLOSE;
int filterType1 = 0; // fatl
int filterType2 = 2; // rftl
int filtersTrendCurrent = iCustom(NULL,0,"Digital filters - on chart trend","",filterType1,FilterType2,price,5,0); // retrieve value from trend buffer
int filtersTrendPrevious = iCustom(NULL,0,"Digital filters - on chart trend","",filterType1,FilterType2,price,5,1); //
if (filterTrendCurrent!= filterTrendPrevious) // trend just changed
{
if (filtersTrendCurrent== 1) ....// trend changed to up
if (filtersTrendCurrent==-1) ....// trend changed to down
}
[php] if (filterTrendCurrent!= filterTrendPrevious) // trend just changed
{
if ( fatlCurrent>fatlPrevious && rftlCurrent>rftlPrevious && filtersTrendCurrent== 1) Buy...
if ( fatlCurrent<fatlPrevious && eftlCurrent<rftlPrevious && filtersTrendCurrent==-1) Sell....
}
//
// the danger is that the slope and the crosses are not going to change in the same
// moment and buying or selling on every bar when slopes are equal would cause an
// EA to "overtrade"
//
Ancak bence sadece çarpıları kontrol etmek ve filtreleme için tamamen başka bir eğim kullanmak yeterlidir (bu örneklerde hızlı dijital filtre kullanılır, daha sonra yavaş dijital filtreler (satl veya rstl) "eğim" filtreleme olarak kullanılabilir)
______________________
Not: EA söz konusu olduğunda, herhangi bir değer göstermeyen bir gösterge yazmayı bile düşünebilirsiniz (bu durumda bu geçmiş sürümde 2 arabellek tasarrufu sağlar) ancak bu durumda ne yaptığınızdan %101 emin olmalısınız. kodla ("görsel kontrol" yok)
Saygılarımızla
MladenRex,
Sadece Mladen'in bu dijital göstergelerinin Ea için çok iyi bir seçim olduğunu söylemek istiyorum, hepsi diğer eski sürümlere kıyasla Cpu'da ne kadar hafif olduklarını fark ettiler. Eski dijital sürümlerle, özellikle bilgisayarın acı çektiği birden fazla zaman diliminde STLM eğimi kullanarak bir dizi Ea;s yaptık, bunlar aynı derecede iyi veya daha iyi ama çok daha hafif görünüyor.
Saygılarımızla
aletler
Mladen, Mrtools,
İşte tam da bunu umuyordum!
Bu büyük bir yardım.
Tekrar teşekkürler.
Rex
Rex
Düzleştirilmemiş versiyondaki eğimleri bulmak için bunun gibi bir şey kullanabilirsiniz.
int filterType;
filterType = 0;
double fatlCurrent = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,0);
double fatlPrevious = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,1);
filterType = 1;
double satlCurrent = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,0);
double satlPrevious = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,1);
filterType = 2;
double rftlCurrent = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,0);
double rftlPrevious = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,1);
filterType = 3;
double rstlCurrent = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,0);
double rstlPrevious = iCustom(NULL,0,"Digital filters - on chart","",filterType,price,0,1);
//
//
// slope of any of the values, fatl in this case
//
//
bool slopeUp = false;
bool slopeDown = false;
if (fatlCurrent>fatlPrevious) slopeUp = true;
if (fatlCurrent<fatlPrevious) slopeUp = true;
[/php]to find it out in the smoothed version use something like this (additional parameters needed in iCustom() call)
int phase = 0
int price = PRICE_CLOSE;
int filterType;
filterType = 0;
double fatlCurrent = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,0);
double fatlPrevious = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,1);
filterType = 1;
double satlCurrent = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,0);
double satlPrevious = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,1);
filterType = 2;
double rftlCurrent = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,0);
double rftlPrevious = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,1);
filterType = 3;
double rstlCurrent = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,0);
double rstlPrevious = iCustom(NULL,0,"Digital filters smoothed - on chart","",filterType,price,length,phase,0,1);
//
//
// slope of any of the values, fatl in this case
//
//
bool slopeUp = false;
bool slopeDown = false;
if (fatlCurrent>fatlPrevious) slopeUp = true;
if (fatlCurrent<fatlPrevious) slopeUp = true;
[/php]Both examples are using current (open) bar value. To avoid it change the last parameter from 0 and 1 to 1 and 2. Also, included even unnecessary values calculations (as you can see all the digital filters types are calculated) in order to show how to retreive every value
To compare values of different filters simply compare (for example) if (fatlCurrent>rftlCurrent) or if (fatlCurrent<rftlCurrent) but that just shows their relative values. It does not show if they just crossed one above/bellow the other
______________________
To find crossings of a different filters, it gets a bit more complicated and the best way is to write a new indicator. It is more complicated because it depends how do you treat eventual equal values of two indicators. I prefer to treat them as a trend continuation and not as a possible trend reversal. Attaching an indicator that will show you "trends" (a simple "bigger"/ "smaller" relation) of 2 digital filters. To use it all you need is to check the value that is even not going to be displayed anywhere on chart, like this
[php] int price = PRICE_CLOSE;
int filterType1 = 0; // fatl
int filterType2 = 2; // rftl
int filtersTrendCurrent = iCustom(NULL,0,"Digital filters - on chart trend","",filterType1,FilterType2,price,5,0); // retrieve value from trend buffer
int filtersTrendPrevious = iCustom(NULL,0,"Digital filters - on chart trend","",filterType1,FilterType2,price,5,1); //
if (filterTrendCurrent!= filterTrendPrevious) // trend just changed
{
if (filtersTrendCurrent== 1) ....// trend changed to up
if (filtersTrendCurrent==-1) ....// trend changed to down
}
[php] if (filterTrendCurrent!= filterTrendPrevious) // trend just changed
{
if ( fatlCurrent>fatlPrevious && rftlCurrent>rftlPrevious && filtersTrendCurrent== 1) Buy...
if ( fatlCurrent<fatlPrevious && eftlCurrent<rftlPrevious && filtersTrendCurrent==-1) Sell....
}
//
// the danger is that the slope and the crosses are not going to change in the same
// moment and buying or selling on every bar when slopes are equal would cause an
// EA to "overtrade"
//
Ama bence sadece çarpıları kontrol etmek ve filtreleme için tamamen başka bir eğim kullanmak yeterlidir (bu örneklerde hızlı dijital filtre kullanılır, daha sonra yavaş dijital filtreler (satl veya rstl) "eğim" filtreleme olarak kullanılabilir)
______________________
Not: EA söz konusu olduğunda, herhangi bir değer göstermeyen bir gösterge yazmayı bile düşünebilirsiniz (bu durumda bu geçmiş sürümde 2 arabellek tasarrufu sağlar) ancak bu durumda ne yaptığınızdan %101 emin olmalısınız. kodla ("görsel kontrol" yok)
______________________
PPS: bu gönderide doğru "dijital filtreler - grafik trendleri" göstergesi bulunur https://www.mql5.com/en/forum/general
Saygılarımızla
Mladen
Mladen, MrTools,
#1987 ile #1989 arasında gösterilen Dijital Filtreler çok etkileyici.
Bunları kullanarak bir EA denemek istiyorum - değerleri çıkarmak için iCustom'u nasıl kuracağınızı heceleyebilir misiniz?
Grafik Düzeltilmiş - Mod 1 (SATL) ve Mod 0 (FATL) üzerindeki Dijital Filtreler iyi bir seçim olabilir.
EA mantığı basit olabilir - FATL > SATL ve her ikisinin eğimi pozitif olduğunda satın alın; satmak için ters; FATL eğimi = 0 olduğunda kapanır.
Burada eğimin en iyi nasıl hesaplanacağına dair herhangi bir öneriniz var mı?
Teşekkürler!
RexOrijinal olarak şu gönderide yayınlanan "dijital filtreler - grafik trendleri"nde: https://www.mql5.com/en/forum/general bir hata vardı. Bu düzeltilmiş olan, bu yüzden lütfen bunu kullanın
Saygılarımızla
Mladen
Mladen,
Bu göstergeye yeniden boyamayan renklendirme ve mtf seçeneği ekleyebilir misiniz? Teşekkürler.
bilgisayar koparma
Mladen,
Sanal bir özel sunucuda bir EA kullanıyorum. Fareyi bilet numarasının üzerine koyduğumda bazen "PC-Breakout" mesajı alıyorum.
Bu ne anlama geliyor ? Bağlantı kaybı mı yoksa sunucunun yeniden başlatılması olabilir mi?
Teşekkürler
Saygılarımızla,
merhaba mladen
Lütfen mevcut grafiğe sıfır çizgi çapraz okları ekleyin.
teşekkürlerMerhaba Mladen
1997 sonrası
teşekkürler
Tradefx1
Tahminimce, EA'nızın sipariş üzerine yerleştirdiği yorumdur (sipariş listesine sağ tıkladığınızda "yorumları" kontrol etmeyi deneyin ve ardından yorumun aldığınız açılır metne karşılık gelip gelmediğine bakın)
Saygılarımızla
Mladen
Mladen,
Sanal bir özel sunucuda EA kullanıyorum. Fareyi bilet numarasının üzerine koyduğumda bazen "PC-Breakout" mesajı alıyorum.
Bu ne anlama geliyor ? Bağlantı kaybı mı yoksa sunucunun yeniden başlatılması olabilir mi?
Teşekkürler
Saygılarımızla,ikiyüzlü
Hadi bakalım Not: "mtf" kısmını gözden kaçırdım. Bir mtf sürümü de eklendiSaygılarımızla
Mladen
Mladen, Bu göstergeye yeniden boyamayan renklendirme ve mtf seçeneği ekleyebilir misiniz?Teşekkürler.