Hareketli ortalama - sayfa 105

 
person77:
Fantastik – mladen çok iyi çalışıyor! Çok teşekkür ederim.

Zahmet olmazsa birkaç ricam:

1. 4 MA senkronize haldeyken, fiyat geri çekilir ve belirlenmiş bir MA'ya dokunur

(bu durumda 2. en kısa MA, kırmızı 15 EMA ) Bir ok ve uyarı üretilmesini istiyorum.

Daha sonra orada kısa sinyal aramak için daha küçük 1M zaman dilimine geçerdim.

Daha küçük 1 M zaman dilimi geriye dönük testinde nereye bakılacağını (A noktası) kolayca görebilmek için yatay ve dikey çizgiler ekliyorum

2. Histogram çubuğunu göstermek için 4 ma synch indy'den yalnızca iki veya üç ma'nın senkronize olmasını aramasını isteyebilir miyim? (lütfen burada yapmaya çalıştığım şey için 1m koşulları ekine bakın)

kişi77

Korkarım ki bu gösterge fiyat dokunuşlarını göstermek için tasarlanmamıştır veya öngörülmemiştir. Ayrıca, tam olarak bu tür bir işi yapan iyi göstergelerin olduğundan da oldukça eminim.

2 ve 3 mas sürümünden itibaren: "if (ma1<ma2 && ma2<3" ... ve benzeri, "=" ile devam eden karşılaştırmayı gördüğünüz koddaki "" yi değiştirin ve ardından 2 mas ayarlayın 3 farklı mas veya 2 çift mas için aynı değerlere aynı değerlere indikatör tarafından 2 mas gösterilecek

 

mladen

Önerin için teşekkürler.

Kodlamam işe yaramaz!

> ve < öğelerini = olarak değiştirdim ancak derleme sırasında bazı hatalar aldım.

Farklı olarak ne yapmam gerekiyor?

//------------------------------------------------ ------------------

#özellik telif hakkı "www.forex-tsd.com"

#özellik bağlantısı "www.forex-tsd.com"

//------------------------------------------------ ------------------

#özellik göstergesi_separate_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_color1 KireçYeşil

#özellik göstergesi_renk2 KoyuTuruncu

#özellik göstergesi_width1 2

#özellik göstergesi_width2 2

#özellik göstergesi_minimum 0

#özellik göstergesi_maksimum 1

extern int Ma1Period = 5;

extern int Ma1Price = PRICE_CLOSE;

extern int Ma1Method = MODE_EMA;

harici int Ma1Shift = 0;

harici int Ma2Period = 15;

extern int Ma2Price = PRICE_CLOSE;

extern int Ma2Method = MODE_EMA;

harici int Ma2Shift = 0;

harici int Ma3Period = 28;

harici int Ma3Price = PRICE_CLOSE;

extern int Ma3Method = MODE_EMA;

harici int Ma3Shift = 0;

harici int Ma4Period = 45;

harici int Ma4Price = PRICE_CLOSE;

extern int Ma4Method = MODE_EMA;

harici int Ma4Shift = 0;

//

//

//

//

//

çift histu[];

çift histd[];

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

int init()

{

SetIndexBuffer(0,histu); SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexBuffer(1,histd); SetIndexStyle(1,DRAW_HISTOGRAM);

dönüş(0);

}

int deinit() { dönüş (0); }

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

int başlangıç()

{

int counted_bars = IndicatorCounted();

if (counted_bars < 0) return(-1);

if (counted_bars > 0) counted_bars--;

int limit = MathMin(Barlar-sayılan_barlar,Barlar-1);

//

//

//

//

//

for(int i = limit; i >=0; i--)

{

double ma1 = iMA(NULL,0,Ma1Period,Ma1Shift,Ma1Method,Ma1Price,i);

double ma2 = iMA(NULL,0,Ma2Period,Ma2Shift,Ma2Method,Ma2Price,i);

double ma3 = iMA(NULL,0,Ma3Period,Ma3Shift,Ma3Method,Ma3Price,i);

double ma4 = iMA(NULL,0,Ma4Period,Ma4Shift,Ma4Method,Ma4Price,i);

histu = BOŞ_DEĞER ;

histd = BOŞ_DEĞER;

if ( ma1=ma2 && ma2=ma3 && ma3>ma4) histu = 1;

if ( ma1=ma2 && ma2=ma3 && ma3<ma4) histd = 1;

}

dönüş(0);

}

 

merhaba

MA kullanarak renko grafiği 2min ne olacak?

şimdiden teşekkürler

 
person77:
mladen

Önerin için teşekkürler.

Kodlamam işe yaramaz!

> ve < öğelerini = olarak değiştirdim ancak derleme sırasında bazı hatalar aldım.

Farklı olarak ne yapmam gerekiyor?

//------------------------------------------------ ------------------

#özellik telif hakkı "www.forex-tsd.com"

#özellik bağlantısı "www.forex-tsd.com"

//------------------------------------------------ ------------------

#özellik göstergesi_separate_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_color1 KireçYeşil

#özellik göstergesi_renk2 KoyuTuruncu

#özellik göstergesi_width1 2

#özellik göstergesi_width2 2

#özellik göstergesi_minimum 0

#özellik göstergesi_maksimum 1

extern int Ma1Period = 5;

extern int Ma1Price = PRICE_CLOSE;

extern int Ma1Method = MODE_EMA;

harici int Ma1Shift = 0;

harici int Ma2Period = 15;

extern int Ma2Price = PRICE_CLOSE;

extern int Ma2Method = MODE_EMA;

harici int Ma2Shift = 0;

harici int Ma3Period = 28;

harici int Ma3Price = PRICE_CLOSE;

extern int Ma3Method = MODE_EMA;

harici int Ma3Shift = 0;

harici int Ma4Period = 45;

harici int Ma4Price = PRICE_CLOSE;

extern int Ma4Method = MODE_EMA;

harici int Ma4Shift = 0;

//

//

//

//

//

çift histu[];

çift histd[];

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

int init()

{

SetIndexBuffer(0,histu); SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexBuffer(1,histd); SetIndexStyle(1,DRAW_HISTOGRAM);

dönüş(0);

}

int deinit() { dönüş (0); }

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

int başlangıç()

{

int counted_bars = IndicatorCounted();

if (counted_bars < 0) return(-1);

if (counted_bars > 0) counted_bars--;

int limit = MathMin(Barlar-sayılan_barlar,Barlar-1);

//

//

//

//

//

for(int i = limit; i >=0; i--)

{

double ma1 = iMA(NULL,0,Ma1Period,Ma1Shift,Ma1Method,Ma1Price,i);

double ma2 = iMA(NULL,0,Ma2Period,Ma2Shift,Ma2Method,Ma2Price,i);

double ma3 = iMA(NULL,0,Ma3Period,Ma3Shift,Ma3Method,Ma3Price,i);

double ma4 = iMA(NULL,0,Ma4Period,Ma4Shift,Ma4Method,Ma4Price,i);

histu = BOŞ_DEĞER;

histd = BOŞ_DEĞER;

if ( ma1=ma2 && ma2=ma3 && ma3>ma4) histu = 1;

if ( ma1=ma2 && ma2=ma3 && ma3<ma4) histd = 1;

}

dönüş(0);

}

kişi77

"<" ifadesini "" ile ">=" ile değiştirmiş olmalısınız (yalnızca "=" değil)

______________________

Not: 2 MA'nın her zaman senkronize olduğunu söylemeyi unuttum

 

Bu mükemmel çalışıyor!

Teşekkürler mladen.

 

Kaufman Uyarlanabilir hareketli ortalama

Kaufman Uyarlanabilir hareketli ortalama (Alexander Geter tarafından)

Kaufman Uyarlanabilir Hareketli Ortalama (KAMA), Perry Kaufman tarafından oluşturuldu ve ilk olarak Smarter Trading (1995) adlı kitabında sunuldu.

Formulas:

KAMA = KAMA+sc*(Fiyat-KAMA), burada

sc = (er*0.6015+0.0645)*(er*0.6015+0.0645),

er = Abs(Fiyat-Fiyat)/Toplam1,

Toplam1 = Toplam(Mutlak(Fiyat-Fiyat)) (i-Uzunluk+1)'den i'ye.

Dosyalar:
kama.mq4  2 kb
 

Doğrusal regresyonun iki versiyonu (aynı yazardan)

 

Kaufman AMA önceden filtrelenmiş

Kaufman AMA'yı (uyarlanabilir hareketli ortalama) diğer bazı şeyler için hazırlamak ve işte çok basitleştirilmiş bir kullanım şekline sahip bir versiyon (ama hesaplaması artık bir fonksiyon haline getirildi). Filtreleme başına fiyat da olabilir (ham fiyat kullanmak yerine filtrelenmiş fiyat kullanılabilir (filtrelemeyi çevirmek için PriceFilter'ı 1'e ayarlayın)

Dosyalar:
 

MA28 (Alexander Getiren tarafından)

Dosyalar:
ma28.mq4  4 kb
ma28.png  83 kb
 

Lütfen, göstergeyi çoklu zaman çerçevesi yapmak mümkün olur mu? teşekkür etmek

mladen:
Kaufman AMA'yı (uyarlanabilir hareketli ortalama) diğer bazı şeyler için hazırlamak ve işte çok basitleştirilmiş bir kullanım şekline sahip bir versiyon (ama hesaplaması artık bir fonksiyon haline getirildi). Filtreleme başına fiyat da olabilir (ham fiyat kullanmak yerine filtrelenmiş fiyat kullanılabilir (filtrelemeyi çevirmek için PriceFilter'ı 1'e ayarlayın)