Kodlama yardımı - sayfa 689

 

Merhaba Mladen,

Forex verilerinde biraz benzerlik analizi yapmak istiyorum.

Yani 20.000 bar(OHLC) geçmişinde 1 saatlik bar (OHLC'de aynı veya en benzer değer) bar ile SON 1 saatlik bar(OHLC) arasındaki en korelasyonu bulmak istiyorum.

Pearson korelasyon katsayısıdır. 20.000 bar geçmişindeki son bar değerinin benzerliğini bulmak için yeterli mi?Bu analizi metatrader ile bir script(veya EA) ile yapmak mümkün mü?Teşekkürler.

 

sevgili mlade:

ilk MTF göstergemi yapıyorum

ama renk siyah

nasıl düzeltilir?

çok teşekkürler

Dosyalar:
MTF xb4d.mq4  4 kb
xb4d.mq4  4 kb
 
bilbao :

sevgili mlade:

ilk MTF göstergemi yapıyorum

ama renk siyah

nasıl düzeltilir?

çok teşekkürler

#özellik göstergesi_renk1'i istediğiniz renge ayarlayın (şimdi Siyah olarak ayarlanmıştır)
 
nevar :

Merhaba Mladen,

Forex verilerinde biraz benzerlik analizi yapmak istiyorum.

Yani 20.000 bar(OHLC) geçmişinde 1 saatlik bar (OHLC'de aynı veya en benzer değer) bar ile SON 1 saatlik bar(OHLC) arasındaki en korelasyonu bulmak istiyorum.

Pearson korelasyon katsayısıdır. 20.000 bar geçmişindeki son bar değerinin benzerliğini bulmak için yeterli mi?Bu analizi metatrader ile bir script(veya EA) ile yapmak mümkün mü?Teşekkürler.

Mladen,

Bununla ilgili herhangi bir yorum var mı?

 
nevar :

Mladen,

Bununla ilgili herhangi bir yorum var mı?

Bunu Pearson ile yapabilir ve maksimum Pearson değerine sahip çubuğu kolayca bulabilirsiniz - Pearson CPU ağır olmadığı için bunu herhangi bir zaman dilimi ve herhangi bir sayıda çubuk için yapabilirsiniz. Bunu bir göstergeden yapmak en iyisi (bazı dizi işlemlerinden kaçınmak için)
 
mladen :
#özellik göstergesi_renk1'i istediğiniz renge ayarlayın (şimdi Siyah olarak ayarlanmıştır)

bay mladen:

yapıyorum ama tek rengi var

boğa ve ayı piyasası için iki renge ihtiyacım var

 
bilbao :

bay mladen:

yapıyorum ama tek rengi var

boğa ve ayı piyasası için iki renge ihtiyacım var

O zaman farklı şekilde kodlamanız gerekir (iki renkli histogram için sadece bir tane değil iki tampon kullanmanız gerekir)
 
mladen :
O zaman onu farklı şekilde kodlamanız gerekir (iki renkli histogram için sadece bir tane değil iki tampon kullanmanız gerekir)

doğru mu hocam

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

//| MTF_xb4d.mq4 |

//|------------------------------------------- -------------------+


#özellik göstergesi_separate_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_color1 KireçYeşil

#özellik göstergesi_width1 2

#özellik göstergesi_color2 SolukVioletKırmızı

#özellik göstergesi_width2 2

//---- giriş parametreleri

/******************************************************** **************************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

PERIOD_W1 10080

PERIOD_MN1 43200

Kullanmak istediğiniz zaman diliminin sayısal değerini kullanmalısınız.

Gösterge girişleriyle TimeFrame' değerini ayarladığınızda.

------------------------------------------*/

harici int Zaman Çerçevesi=0;

dış int nokta = 10;

harici int AppliedPrice=0;

extern bool SoundAlerts=false;

çift ExtMapBuffer1[];

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

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

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

int init()

{

//---- gösterge çizgisi

SetIndexStyle(0, DRAW_HISTOGRAM);

SetIndexStyle(1, DRAW_HISTOGRAM);

SetIndexBuffer(0, ExtMapBuffer1);

SetIndexBuffer(1, ExtMapBuffer1);

//---- DataWindow ve gösterge alt pencere etiketi için isim

geçiş (Zaman Çerçevesi)

{

durum 1: string TimeFrameStr="Period_M1"; kırmak;

durum 5 : TimeFrameStr="Period_M5"; kırmak;

durum 15 : TimeFrameStr="Period_M15"; kırmak;

durum 30 : TimeFrameStr="Period_M30"; kırmak;

durum 60 : TimeFrameStr="Period_H1"; kırmak;

durum 240 : TimeFrameStr="Period_H4"; kırmak;

durum 1440 : TimeFrameStr="Period_D1"; kırmak;

case 10080 : TimeFrameStr="Period_W1"; kırmak;

durum 43200 : TimeFrameStr="Period_MN1"; kırmak;

varsayılan : TimeFrameStr=" Geçerli Zaman Çerçevesi ";

}

GöstergeShortName(" MTF_xb4d ("+TimeFrameStr+" ) ");

dönüş(0);

}

//----

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

//| |

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

int başlangıç()

{

tarihsaat TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Tanımlı zaman çerçevesini geçerli zaman çerçevesine çiz

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limit= Çubuk-1;

for(i=0,y=0;i<limit;i++)

{

if (Zaman[i]<ZamanArray[y]) y++;

/******************************************************** **********

Ana gösterge döngünüzü aşağıya ekleyin. Mevcut bir referans verebilirsiniz

iName veya iCustom ile gösterge.

Kural 1: Gerekli tüm değerler için yukarıdaki harici girdileri ekleyin

Kural 2: Gösterge zaman çerçevesi için 'Zaman Çerçevesi'ni kullanın

Kural 3: Göstergenizin kaydırma değeri için 'y' kullanın

******************************************************* ********/

ExtMapBuffer1[i]=iCustom(Symbol(),TimeFrame,"xb4d",period,0,y);//iRSI(Symbol(),TimeFrame,period,AppliedPrice,y);

}

if(GlobalVariableGet(Symbol()+"previndicator")<0 && ExtMapBuffer1[0]>=0)

if(SoundAlerts){Alert("Uyarı Satın Al " + Symbol() + " [" + Period() + "] ");PlaySound("alert.wav");}

if(GlobalVariableGet(Symbol()+"previndicator")>=0 && ExtMapBuffer1[0]<0)

if(SoundAlerts){Alert("Satış Uyarısı " + Symbol() + " [" + Period() + "] ");PlaySound("alert.wav");}

GlobalVariableSet(Symbol()+"previndicator",ExtMapBuffer1[0]);

dönüş(0);

}

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

 
bilbao :

doğru mu hocam

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

//| MTF_xb4d.mq4 |

//|------------------------------------------- -------------------+


#özellik göstergesi_separate_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_color1 KireçYeşil

#özellik göstergesi_width1 2

#özellik göstergesi_color2 SolukVioletKırmızı

#özellik göstergesi_width2 2

//---- giriş parametreleri

/******************************************************** **************************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

PERIOD_W1 10080

PERIOD_MN1 43200

Kullanmak istediğiniz zaman diliminin sayısal değerini kullanmalısınız.

Gösterge girişleriyle TimeFrame' değerini ayarladığınızda.

------------------------------------------*/

harici int Zaman Çerçevesi=0;

dış int nokta = 10;

harici int AppliedPrice=0;

extern bool SoundAlerts=false;

çift ExtMapBuffer1[];

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

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

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

int init()

{

//---- gösterge çizgisi

SetIndexStyle(0, DRAW_HISTOGRAM);

SetIndexStyle(1, DRAW_HISTOGRAM);

SetIndexBuffer(0, ExtMapBuffer1);

SetIndexBuffer(1, ExtMapBuffer1);

//---- DataWindow ve gösterge alt pencere etiketi için isim

geçiş (Zaman Çerçevesi)

{

durum 1: string TimeFrameStr="Period_M1"; kırmak;

durum 5 : TimeFrameStr="Period_M5"; kırmak;

durum 15 : TimeFrameStr="Period_M15"; kırmak;

durum 30 : TimeFrameStr="Period_M30"; kırmak;

durum 60 : TimeFrameStr="Period_H1"; kırmak;

durum 240 : TimeFrameStr="Period_H4"; kırmak;

durum 1440 : TimeFrameStr="Period_D1"; kırmak;

case 10080 : TimeFrameStr="Period_W1"; kırmak;

durum 43200 : TimeFrameStr="Period_MN1"; kırmak;

varsayılan : TimeFrameStr="Geçerli Zaman Çerçevesi";

}

GöstergeShortName(" MTF_xb4d ("+TimeFrameStr+" ) ");

dönüş(0);

}

//----

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

//| |

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

int başlangıç()

{

tarihsaat TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Tanımlı zaman çerçevesini geçerli zaman çerçevesine çiz

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limit= Çubuk-1;

for(i=0,y=0;i<limit;i++)

{

if (Zaman[i]<ZamanArray[y]) y++;

/******************************************************** **********

Ana gösterge döngünüzü aşağıya ekleyin. Mevcut bir referans verebilirsiniz

iName veya iCustom ile gösterge.

Kural 1: Gerekli tüm değerler için yukarıdaki harici girdileri ekleyin

Kural 2: Gösterge zaman çerçevesi için 'Zaman Çerçevesi'ni kullanın

Kural 3: Göstergenizin kaydırma değeri için 'y' kullanın

******************************************************* ********/

ExtMapBuffer1[i]=iCustom(Symbol(),TimeFrame,"xb4d",period,0,y);//iRSI(Symbol(),TimeFrame,period,AppliedPrice,y);

}

if(GlobalVariableGet(Symbol()+"previndicator")<0 && ExtMapBuffer1[0]>=0)

if(SoundAlerts){Alert("Uyarı Satın Al " + Symbol() + " [" + Period() + "] ");PlaySound("alert.wav");}

if(GlobalVariableGet(Symbol()+"previndicator")>=0 && ExtMapBuffer1[0]<0)

if(SoundAlerts){Alert("Satış Uyarısı " + Symbol() + " [" + Period() + "] ");PlaySound("alert.wav");}

GlobalVariableSet(Symbol()+"previndicator",ExtMapBuffer1[0]);

dönüş(0);

}

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

Renkleri istediğiniz gibi mi gösteriyor?
 
mladen :
Renkleri istediğiniz gibi mi gösteriyor?

sevgili mladen:

mtf'sini https://www.forex-tsd.com/forum/debates-discussions/1131-multi-timeframe-indicators/page762#comment_1831838 adresinde buluyorum

tüm üyelere yardımlarınız için çok teşekkürler

Tanrı hayatını korusun