Kodlama yardımı - sayfa 110

 

Merhaba,

iki göstergeye ihtiyacım var, biri wpr ( Williams' Yüzde Aralığı) ve onun ma'sı (ma ile wpr), diğeri cmo (chande momentum osc.)

ve onun ma'sı (ma ile cmo),

yardım eden var mı?

teşekkürler

 
anonimm:
Merhaba,

iki göstergeye ihtiyacım var, biri wpr ( Williams' Yüzde Aralığı) ve onun ma'sı (ma ile wpr), diğeri cmo (chande momentum osc.)

ve onun ma'sı (ma ile cmo),

yardım eden var mı?

teşekkürler

anonimm

İşte ortalama (ma) olan bir WPR

Dosyalar:
wpr_ma.mq4  2 kb
 
mladen:
anonimm İşte ortalama (ma) olan bir WPR

Teşekkürler Mladen,

cmo'nun ma'sını deniyorum ama hata aldım (iCMO işlevi tanımlanmadı)..yardımcı olabilir misiniz..? cmo eklendi

//---- gösterge ayarları

#özellik göstergesi_separate_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_color1 Gümüş

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

#özellik göstergesi_width1 2

#özellik göstergesi_width2 2

//---- gösterge parametreleri

harici int CMO_Period=21;

harici int MA_Period=14;

extern string m = "--Hareketli Ortalama Türleri--";

harici dizi m0 = " 0 = SMA";

harici dizi m1 = " 1 = EMA";

harici dizi m2 = " 2 = SMMA";

harici dizi m3 = " 3 = LWMA";

harici int MA_Type=1;

//---- gösterge arabellekleri

çift CMO_Buffer[];

çift MA_Buffer[];

çift iCMO[];

int MA_Mode;

string strMAType;

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

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

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

int init()

{

//---- çizim ayarları

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexDrawBegin(1,CMO_Period);

GöstergeDigits(Rakam+1);

//---- gösterge arabellek eşlemesi

SetIndexBuffer(0,CMO_Buffer);

SetIndexBuffer(1,MA_Buffer);

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

geçiş (MA_Type)

{

durum 1: strMAType="EMA"; MA_Mode=MODE_EMA; kırmak;

durum 2: strMAType="SMMA"; MA_Mode=MODE_SMMA; kırmak;

durum 3: strMAType="LWMA"; MA_Mode=MODE_LWMA; kırmak;

varsayılan: strMAType="SMA"; MA_Mode=MODE_SMA; kırmak;

}

GöstergeShortName( "CMO" + " (" + CMO_Period + ") " + " : " + strMAType+ " (" +MA_Period + ") ");

SetIndexLabel(0,"CMO" + " (" +CMO_Period + ") ");

SetIndexLabel(1,strMAType+ " (" + MA_Period + ") ");

//---- başlatma tamamlandı

dönüş(0);

}

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

//| Hareketli Ortalamalar Yakınsama/Iraksaklık |

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

int başlangıç()

{

int limiti;

int counted_bars=IndicatorCounted();

//---- son sayılan çubuk yeniden sayılacak

if(counted_bars>0) counted_bars--;

limit=Barlar-sayılan_barlar;

//---- 1. arabellekte sayılan CMO

for(int i=0; i<limit; i++)

CMO_Buffer=iCMO(NULL,0,CMO_Period,i);

//---- 2. tamponda sayılan MA satırı

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

MA_Buffer=iMAOnArray(CMO_Buffer,Barlar,MA_Period,0,MA_Mode,i);

//---- tamamlamak

dönüş(0);

}

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

Dosyalar:
cmo.mq4  6 kb
 

Mladen, hataları bulmama yardım eder misin?

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color2 Red

//----

double UpperBuf[];

double UpperBuf1[];

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

//| |

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

void init()

{

SetIndexStyle(0, DRAW_NONE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(0, N);

//----

SetIndexBuffer(0, UpperBuf);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(1, N);

//----

SetIndexBuffer(1, UpperBuf1);

}

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

//| |

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

void deinit()

{

//----

}

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

//| |

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

void start()

{

int counted = IndicatorCounted();

//----

if(counted < 0)

return (-1);

//----

if(counted > 0)

counted--;

int limit = Bars - counted;

//----

for(int i = 0; i < limit; i++)

{

UpperBuf= ((High/Close)-34)*Volume;

UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);

}

}

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

 
anonimm:
Teşekkürler Mladen,

cmo'nun ma'sını deniyorum ama hata aldım (iCMO işlevi tanımlanmadı)..yardımcı olabilir misiniz..? cmo eklendi

//---- gösterge ayarları

#özellik göstergesi_separate_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_color1 Gümüş

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

#özellik göstergesi_width1 2

#özellik göstergesi_width2 2

//---- gösterge parametreleri

harici int CMO_Period=21;

harici int MA_Period=14;

extern string m = "--Hareketli Ortalama Türleri--";

harici dizi m0 = " 0 = SMA";

harici dizi m1 = " 1 = EMA";

harici dizi m2 = " 2 = SMMA";

harici dizi m3 = " 3 = LWMA";

harici int MA_Type=1;

//---- gösterge arabellekleri

çift CMO_Buffer[];

çift MA_Buffer[];

çift iCMO[];

int MA_Mode;

string strMAType;

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

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

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

int init()

{

//---- çizim ayarları

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexDrawBegin(1,CMO_Period);

GöstergeDigits(Rakam+1);

//---- gösterge arabellek eşlemesi

SetIndexBuffer(0,CMO_Buffer);

SetIndexBuffer(1,MA_Buffer);

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

geçiş (MA_Type)

{

durum 1: strMAType="EMA"; MA_Mode=MODE_EMA; kırmak;

durum 2: strMAType="SMMA"; MA_Mode=MODE_SMMA; kırmak;

durum 3: strMAType="LWMA"; MA_Mode=MODE_LWMA; kırmak;

varsayılan: strMAType="SMA"; MA_Mode=MODE_SMA; kırmak;

}

GöstergeShortName( "CMO" + " (" + CMO_Period + ") " + " : " + strMAType+ " (" +MA_Period + ") ");

SetIndexLabel(0,"CMO" + " (" +CMO_Period + ") ");

SetIndexLabel(1,strMAType+ " (" + MA_Period + ") ");

//---- başlatma tamamlandı

dönüş(0);

}

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

//| Hareketli Ortalamalar Yakınsama/Iraksaklık |

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

int başlangıç()

{

int limiti;

int counted_bars=IndicatorCounted();

//---- son sayılan çubuk yeniden sayılacak

if(counted_bars>0) counted_bars--;

limit=Barlar-sayılan_barlar;

//---- 1. arabellekte sayılan CMO

for(int i=0; i<limit; i++)

CMO_Buffer=iCMO(NULL,0,CMO_Period,i);

//---- 2. tamponda sayılan MA satırı

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

MA_Buffer=iMAOnArray(CMO_Buffer,Barlar,MA_Period,0,MA_Mode,i);

//---- tamamlamak

dönüş(0);

}

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

Hadi bakalım Not: bağımsız bir sürümdür, cmo'ya gerek yoktur

Dosyalar:
cmo_ma.mq4  2 kb
 
k3rn3l:
Mladen, hataları bulmama yardım eder misin?

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color2 Red

//----

double UpperBuf[];

double UpperBuf1[];

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

//| |

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

void init()

{

SetIndexStyle(0, DRAW_NONE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(0, N);

//----

SetIndexBuffer(0, UpperBuf);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(1, N);

//----

SetIndexBuffer(1, UpperBuf1);

}

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

//| |

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

void deinit()

{

//----

}

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

//| |

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

void start()

{

int counted = IndicatorCounted();

//----

if(counted < 0)

return (-1);

//----

if(counted > 0)

counted--;

int limit = Bars - counted;

//----

for(int i = 0; i < limit; i++)

{

UpperBuf= ((High/Close)-34)*Volume;

UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);

}

}

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

k3rn3l

Şu şekilde deneyin:

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 Red

double UpperBuf[];

double UpperBuf1[];

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

//| |

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

void init()

{

IndicatorBuffers(2);

SetIndexBuffer(0, UpperBuf1);

SetIndexBuffer(1, UpperBuf);

}

void deinit() {}

void start()

{

int counted = IndicatorCounted();

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

if(counted > 0) counted--;

int limit = Bars - counted;

for(int i = 0; i < limit; i++)

if (Close!=0)

UpperBuf= ((High/Close)-34)*Volume;

else UpperBuf= 0;

for( i = 0; i < limit; i++) UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);

}
 

Sevgili Mladen;

wpr ma ve cmo ma göstergeleri için tekrar teşekkür ederiz. İlk gösterge için wpr'yi a'ya, ma per'i b'ye ve ikinci gösterge cmo aralığını c'ye ve ma per'i d'ye ayarladığını varsayalım. wpr ma'sını geçtiğinde (wpr>seviye x) ve cmo ma'sını geçtiğinde (cmo>seviye y) AYNI DAKİKA/BAR'da satın almak istiyorum. (burada önemli , iki koşulun aynı anda gerçekleşmesi gerekiyor) ve ters koşullar sat.

Mümkün mü?

 
anonimm:
Sevgili Mladen;

wpr ma ve cmo ma göstergeleri için tekrar teşekkür ederiz. İlk gösterge için wpr'yi a'ya, ma per'i b'ye ve ikinci gösterge cmo aralığını c'ye ve ma per'i d'ye ayarladığını varsayalım. wpr ma'sını geçtiğinde (wpr>seviye x) ve cmo ma'sını geçtiğinde (cmo>seviye y) AYNI DAKİKA/BAR'da satın almak istiyorum. (burada önemli, iki koşulun aynı anda gerçekleşmesi gerekiyor) ve ters koşullar sat.

Mümkün mü?

Evet

bu mümkün

Aradığınız koşulları kontrol etmek için iCustom() 'u kullanın ve kullandığınız sayıda özel göstergeden gelen koşulları tek bir sinyalde birleştirebilirsiniz.

 

950'den fazla sayım çubuğu için bu göstergeyi düzeltmeme yardımcı olabilecek var mı?

Dosyalar:
 
YSCWL:
950'den fazla sayım çubuğu için bu göstergeyi düzeltmeme yardımcı olabilecek var mı?

Denemek

Dosyalar: