Çoklu Zaman Çerçevesi Göstergeleri - sayfa 108

 

mtf eğimi

buraya bakın alpha24seven

https://www.mql5.com/en/forum/173574

 

Teşekkürler Lodol2

Bunları kaçırdığım için üzgünüm. Onları dikkatime sunduğunuz için teşekkür ederim.

Derlemede bazı sorunlar yaşadım. Bu hatayı daha önce hiç görmemiştim. Herhangi bir fikir?

grafiğe bakın

Teşekkür ederim.

Dosyalar:
 

Dediklerinin hepsine katılıyorum ama kendimi yeterince net ifade ettiğimi düşünmüyorum.

keris formülü gerçek zamanlı olarak böyle görünmüyor (grafikleri yenilemeden!), daha çok bu sarı çizgiye benziyor; çizelgeleri yenilerseniz, evet, her şey yolunda görünüyor - ama o zaman neden daha yüksek zaman dilimine sahip ikinci bir grafik kullanmıyoruz... ve göstergenin yalnızca daha yüksek zaman diliminde hareket ettiğini teyit etmiyoruz?

Daha düşük bir zaman diliminde bir mtf göstergesi çizdiğiniz andan itibaren, o zaman diliminde (daha yüksek bir tf'de değil) bazı verilerin ortalamasını almanın başka bir yoluna sahipsiniz. asla orijinal gibi görünmeyecek - ama yaklaşık olarak tahmin edilebilir. yani soru şu ki, en yakın yaklaşıklık için en iyi formül nasıl bulunur? ve bence bu sorunuzu yanıtlıyor... değil mi?

mladen:
Kırmızı çizgi, önerdiğiniz MA'nın yaklaşıklığıdır.

Macenta, MTF MA'nın Keris yoludur

Altın çizgi, daha yüksek bir zaman çerçevesi MA'nın daha düşük bir zaman çerçevesindeki gerçek değerleridir.

Gördüğünüz gibi, bir zaman periyodunda yaklaşık bir değerin tek bir doğru değeri yoktur, oysa Keris'in formülü periyot başına en az bir doğru değer verir. Her neyse, Metatrader'daki yaklaşıklık formülü şöyle olacaktır:

MAperiod=MAperiod*ZamanÇerçevesi/Dönem()

Bu yaklaşımı hareketli ortalamadan türetilmiş göstergelere (örneğin MACD) uygulamaya çalışırsanız, sonuçta büyük ve yani BÜYÜK farklılıklar elde edersiniz (1H zaman diliminde 4H MACD'nin %7-8'lik bir farkını gördüm)

Bir karşı soru: Sence kaç kişi çoklu zaman çerçevesi göstergelerine farklı yaklaşımlar denedi?
 

Kodda Hata

Bunu anladım. Bu fazladan kod dosyada kaldı -- sonunda. Sadece silin, derleyin ve işte '.

Mükemmel gösterge BTW.

---

/*

void drawLine(çift seviye,dize adı, Colour Col )

{

ObjectDelete(isim);

ObjectCreate(ad, OBJ_HLINE , WindowFind(ad), Zaman[0], lvl,Time[0], lvl);

ObjectSet(ad, OBJPROP_STYLE, STYLE_DOT);

ObjectSet(isim, OBJPROP_COLOR, Col);

ObjectSet(isim,OBJPROP_WIDTH,1);

}

---

 

...

Sarı çizgi "gerçek MTF" hareketli ortalamasıdır .

Resimdeki göstergelerin hiçbirini "yenilemeye" gerek yoktur

Geri kalanına gelince, lütfen o yazıyı tekrar okuyun

Saygılarımızla

mladen

Scrat:
Dediklerinin hepsine katılıyorum ama kendimi yeterince net ifade ettiğimi düşünmüyorum.

keris formülü gerçek zamanlı olarak böyle görünmüyor (grafikleri yenilemeden!), daha çok bu sarı çizgiye benziyor; çizelgeleri yenilerseniz, evet, her şey yolunda görünüyor - ama o zaman neden daha yüksek zaman dilimine sahip ikinci bir grafik kullanmıyoruz... ve göstergenin yalnızca daha yüksek zaman diliminde hareket ettiğini teyit etmiyoruz?

Daha düşük bir zaman diliminde bir mtf göstergesi çizdiğiniz andan itibaren, o zaman diliminde (daha yüksek bir tf'de değil) bazı verilerin ortalamasını almanın başka bir yoluna sahipsiniz. asla orijinal gibi görünmeyecek - ama yaklaşık olarak tahmin edilebilir. yani soru şu ki, en yakın yaklaşıklık için en iyi formül nasıl bulunur? ve bence bu sorunuzu yanıtlıyor... değil mi?
 

Bu Indi İçin Mtf Gerekiyor

Herkese selam,

Grafiğimde farklı zaman dilimlerinden göstergeler çizme yeteneğine sahip olmak istiyordum.

//+------------------------------------------- -------------------+

//| Fisher_m11.mq4 |

//| Telif hakkı ฉ forexjr

//| /cam06/fisher dizini |

//+------------------------------------------- -------------------+

#özellik telif hakkı "Telif hakkı ฉ 23.07.2006 MartinG"

#özellik bağlantısı "http://home.arcor.de/cam06/fisher"

#özellik göstergesi_separate_window

//#özellik göstergesi_minimum -1

//#özellik göstergesi_maksimum 1

#özellik göstergesi_tamponları 3

#özellik göstergesi_renk2 KraliyetMavi

#özellik göstergesi_renk3 Kırmızı

#özellik göstergesi_width2 0,5

#özellik göstergesi_width3 0,5

int SolNum1=56;

int SolNum2=56;

extern int RangePeriods=35;

harici çift PriceSmoothing=0.3; // =0.67 bei Fisher_m10

harici çift IndexSmoothing=0.3; // =0.50 bei Fisher_m10

string ThisName="Fisher_kuskus";

int DrawStart;

//---- arabellekler

çift ExtMapBuffer1[];

çift ExtMapBuffer2[];

çift ExtMapBuffer3[];

çift ExtMapBuffer4[];

//+------------------------------------------- -------------------+

//| Özel gösterge başlatma işlevi |

//+------------------------------------------- -------------------+

int init()

{

//---- göstergeler

Gösterge Tamponları(4);

SetIndexLabel(0,"Yıldız");

SetIndexStyle(0,DRAW_NONE);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexStyle(2,DRAW_HISTOGRAM);

SetIndexBuffer(2,ExtMapBuffer3);

SetIndexStyle(3,DRAW_NONE);

SetIndexBuffer(3,ExtMapBuffer4);

string Metin=BuAd;

Metin=Metin+" (rPeriods "+RangePeriods;

Metin=Metin+", pSmooth "+DoubleToStr(PriceSmoothing,2);

Metin=Metin+", iSmooth "+DoubleToStr(IndexSmoothing,2);

Metin=Metin+") ";

GöstergeKısaAdı(Metin);

SetIndexLabel(1,NULL);

SetIndexLabel(2,NULL);

DrawStart=2*RangePeriods+4; // DrawStart= Soldan sağa hesaplanan BarNumber

SetIndexDrawBegin(1,DrawStart);

SetIndexDrawBegin(2,DrawStart);

if (PriceSmoothing>=1.0)

{

FiyatDüzeltme=0.9999;

Alert("Fish61: PriceSmothing faktörü 1'den küçük olmalı!");

}

if (FiyatDüzeltme<0)

{

FiyatDüzeltme=0;

Alert("Fish61: PriceSmothing faktörü negatif olmamalıdır!");

}

if (IndexSmoothing>=1.0)

{

DizinSmoothing=0.9999;

Alert("Fish61: PriceSmothing faktörü 1'den küçük olmalı!");

}

if (IndexSmoothing<0)

{

IndexSmoothing=0;

Alert("Fish61: PriceSmothing faktörü negatif olmamalıdır!");

}

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

//| Özel gösterge sıfırlama işlevi |

//+------------------------------------------- -------------------+

int tanım()

{

//----

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

//| Özel gösterge yineleme işlevi |

//+------------------------------------------- -------------------+

int başlangıç()

{

if (Çubuklar<Çizim Başlangıcı)

{

Alert("Fish84: FisherIndicator'ı RangePeriods=",RangePeriods ile hesaplamak için yeterli Çubuk yüklenmedi);

dönüş(-1);

}

//----

int counted_bars=IndicatorCounted();

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

if (counted_bars>0) counted_bars--;

//----

int Konum=Çubuklar-sayılan_barlar; // Konum = Sağdan sola hesaplanan BarPosition

int LeftNum1=Çubuklar-Konum; // daha fazla çubuk yüklendiğinde çubuğun Konumu değişir ancak LeftNum değişmez

if (LeftNum1<RangePeriods+1)Position=Bars-RangePeriods-1;

while(Konum>=0)

{

CalculateCurrentBar(Konum);

Konum--;

}

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

//| Tek Çubuk Hesaplama fonksiyonu |

//+------------------------------------------- -------------------+

int CalculateCurrentBar(int konum)

{

double LowestLow, HighestHigh, GreatestRange, MidPrice;

double PriceLocation, SmoothedLocation, FishIndex, SmoothedFish;

//----

En Düşük = Düşük[En Düşük(NULL,0,MODE_LOW,RangePeriods,kon)];

En Yüksek = Yüksek;

if (En Yüksek-En DüşükDüşük<0,1*Puan)En Yüksek=En Düşük+0,1*Nokta;

GreatestRange=En YüksekYüksek-En DüşükDüşük;

OrtaFiyat = (Yüksek[konum]+Düşük[konum])/2;

// Geçerli Aralıktaki FiyatKonumu

if (GreatestRange!=0)

{

FiyatKonum=(Orta Fiyat-En Düşük)/En BüyükAralık;

FiyatKonum= 2.0*FiyatKonum - 1.0; // -> -1 < FiyatKonum < +1

}

// PriceLocation'ın Düzeltilmesi

ExtMapBuffer4[pos]=PriceSmoothing*ExtMapBuffer4[poz+1]+(1.0-PriceSmoothing)*PriceLocation;

SmoothedLocation=ExtMapBuffer4[konum];

if (SmoothedLocation> 0.99) SmoothedLocation= 0.99; // verhindert, dass MathLog unendlich wird

if (SmoothedLocation<-0.99) SmoothedLocation=-0.99; // verhindert, dass MathLog minuns unendlich wird

// FisherIndex

if(1-SmoothedLocation!=0) FishIndex=MathLog((1+SmoothedLocation)/(1-SmoothedLocation));

else Alert("Fisher129: Unerlaubter Zustand bei Bar Nummer ",Barlar-pos);

// FisherIndex'in Düzeltilmesi

ExtMapBuffer1[pos]=IndexSmoothing*ExtMapBuffer1[poz+1]+(1.0-IndexSmoothing)*FishIndex;

if (Bars-pos<DrawStart)ExtMapBuffer1[pos]=0;

SmoothedFish=ExtMapBuffer1[konum];

if (SmoothedFish>0) // yukarı trend

{

ExtMapBuffer2[konum]=SmoothedFish;

ExtMapBuffer3[konum]=0;

}

else // else düşüş trendi

{

ExtMapBuffer2[konum]=0;

ExtMapBuffer3[konum]=SmoothedFish;

}

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

teşekkür etmek

 
mladen:
Millet ciddileşelim

ben ciddiyim maşallah...

Acemiyim ve programcı değilim, scrat'ın yolu mükemmel olmayabilir, ama belki kullanabilirim. Deneyeceğim. Faydalı olursa kullanırım. Değilse, tekrar başka bir harika yol veya başka bir gösterge arayacağım.

Codersguru'ya benzer bir şey sordum.

Ona sorum, 30M TF'de 1 EMA kullanırsam, 1M TF'de 30 EMA olmalı.

Ve böyle olmadığını söyledi. Ama ben tatmin olmadım, belki başka bir yolu vardır, o yüzden burada buluyorum. Ama işe yaramazsa, benim için sorun değil... . En azından sonucu biliyorum.

BTW, en son RSIOMA mladen için teşekkürler, çok beğendim ve bu harika gösterge için fxbs ve Kalenzo'ya da teşekkürler.

Saygılarımızla,

IIN

 

Sorun şu:

MA'larla ilgili bu fikir, muhtemelen teknik analizdeki en eski fikirdir.

TSD gibi yerlerin fikirlerin ve bilgilerin paylaşıldığı yerler olduğuna katılıyorum.

Ama lütfen kimse bunu bu şekilde yapmaya çalışmamalı:

Sadece herhangi birinizin aynı anda daha yüksek ve daha küçük bir tf üzerinde aynı gösterge arasında bir yazışma yapmayı düşünüp düşünmediğini merak ediyordum....

Hadi ama, burada ne halt etmeye çalışıyoruz?

Umarım şimdi kendimi netleştirdim

Saygılarımızla

mladen

iinzall:
ben ciddiyim maşallah...

Acemiyim ve programcı değilim, scrat'ın yolu mükemmel olmayabilir, ama belki kullanabilirim. Deneyeceğim. Faydalı olursa kullanırım. Değilse, tekrar başka bir harika yol veya başka bir gösterge arayacağım.

Codersguru'ya benzer bir şey sordum.

Ona sorum, 30M TF'de 1 EMA kullanırsam, 1M TF'de 30 EMA olmalı.

Ve böyle olmadığını söyledi. Ama ben tatmin olmadım, belki başka bir yolu vardır, o yüzden burada buluyorum. Ama işe yaramazsa, benim için sorun değil... . En azından sonucu biliyorum.

BTW, en son RSIOMA mladen için teşekkürler, çok beğendim ve bu harika gösterge için fxbs ve Kalenzo'ya da teşekkürler.

Saygılarımızla,

IIN
 

tamam, resmen aptalım ve bu başlıktaki herkesi gücendirdim. bu sefer doğru mu anladım

özür dilerim.

mladen:
Sorun şu:

MA'larla ilgili bu fikir, muhtemelen teknik analizdeki en eski fikirdir.

TSD gibi yerlerin fikirlerin ve bilgilerin paylaşıldığı yerler olduğuna katılıyorum.

Ama lütfen kimse bunu bu şekilde yapmaya çalışmamalı:

Hadi ama, burada ne halt etmeye çalışıyoruz?

Umarım şimdi kendimi netleştirdim

Saygılarımızla

mladen
 

Bu MTF indislerinin nerede olduğunu bilen var mı?

Bunların MTF versiyonlarını her yerde aradım. Gören veya tanıyan var mı?

Teşekkür ederim.

Dosyalar: