Kodlama yardımı - sayfa 466

 

Hepinize günaydın.

Bu göstergenin birçok versiyonunu gördüm ve asla görünmediğim kırmızı mumlar hatayı düzeltebilir mi ????.

Çok teşekkürler.

#özellik göstergesi_separate_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_color1 KireçYeşil

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

//---- gösterge arabellekleri

çift ind_buffer1[];

çift ind_buffer2[];

çift ind_buffer3[];

//----

çift CB = 0, değerh1 = 0, değer = 0, değerh = 0, değer = 0, fiyat = 0, yüksek = 1, lo = 1;

double resh = 0, resl = 0, deltah = 0, deltal = 0;

int CurrentBar=0;

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

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

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

int init()

{

//---- Sayma için kullanılan 1 ek tampon.

Gösterge Tamponları(3);

//---- çizim ayarları

SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2);

SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2);

IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1);

SetIndexDrawBegin(0, 34);

SetIndexDrawBegin(1, 34);

//---- 3 gösterge arabelleği eşlemesi

if(!SetIndexBuffer(0, ind_buffer1) &&

!SetIndexBuffer(1, ind_buffer2) &&

!SetIndexBuffer(2, ind_buffer3))

Print("gösterge arabellekleri ayarlanamıyor!");

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

GöstergeShortName("DeltaForce");

SetIndexLabel(0, "DF1");

SetIndexLabel(1, "DF2");

//---- başlatma tamamlandı

dönüş(0);

}

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

//| Delta Gücü |

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

int başlangıç()

{

for(CB = 0 ; CB <= Çubuklar ; CB++)

{

CurrentBar = Çubuklar - CB;

if(Close[CurrentBar] > Kapat[CurrentBar+1])

{

resl = 0;

if(resh == 0)

delta = 0;

deltah = deltah + (Kapat[CurrentBar] - Kapat[CurrentBar+1]);

// değerh = Yüksek[Mevcut Çubuk];

yeniden = 1;

}

if(resh == 0)

delta = 0;

ind_buffer1[CurrentBar] = deltah;

if(Close[CurrentBar] < Close[CurrentBar+1] )

{

yeniden = 0;

if(resl == 0)

deltal = 0;

deltal = deltal + (Kapat[CurrentBar+1] - Kapat[CurrentBar]);

//değer = Düşük[Mevcut Çubuk];

resl= 1;

}

if(resl == 0 )

deltal=0;

ind_buffer2[CurrentBar] = deltal;

}

//---- tamamlamak

dönüş(0);

}

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

 
rookiespain:
Hepinize günaydın.

Bu göstergenin birçok versiyonunu gördüm ve hiç görünmediğim kırmızı mumlar hatayı düzeltebilir mi ????.

Çok teşekkürler.

#özellik göstergesi_separate_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_color1 KireçYeşil

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

//---- gösterge tamponları

çift ind_buffer1[];

çift ind_buffer2[];

çift ind_buffer3[];

//----

çift CB = 0, değerh1 = 0, değer = 0, değerh = 0, değer = 0, fiyat = 0, yüksek = 1, lo = 1;

double resh = 0, resl = 0, deltah = 0, deltal = 0;

int CurrentBar=0;

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

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

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

int init()

{

//---- Sayma için kullanılan 1 ek tampon.

Gösterge Tamponları(3);

//---- çizim ayarları

SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2);

SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2);

IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1);

SetIndexDrawBegin(0, 34);

SetIndexDrawBegin(1, 34);

//---- 3 gösterge arabelleği eşlemesi

if(!SetIndexBuffer(0, ind_buffer1) &&

!SetIndexBuffer(1, ind_buffer2) &&

!SetIndexBuffer(2, ind_buffer3))

Print("gösterge arabellekleri ayarlanamıyor!");

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

GöstergeShortName("DeltaForce");

SetIndexLabel(0, "DF1");

SetIndexLabel(1, "DF2");

//---- başlatma tamamlandı

dönüş(0);

}

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

//| Delta Gücü |

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

int başlangıç()

{

for(CB = 0 ; CB <= Çubuklar ; CB++)

{

CurrentBar = Çubuklar - CB;

if(Close[CurrentBar] > Kapat[CurrentBar+1])

{

resl = 0;

if(resh == 0)

delta = 0;

deltah = deltah + (Kapat[CurrentBar] - Kapat[CurrentBar+1]);

// değerh = Yüksek[Mevcut Çubuk];

yeniden = 1;

}

if(resh == 0)

delta = 0;

ind_buffer1[CurrentBar] = deltah;

if(Close[CurrentBar] < Close[CurrentBar+1] )

{

yeniden = 0;

if(resl == 0)

deltal = 0;

deltal = deltal + (Kapat[CurrentBar+1] - Kapat[CurrentBar]);

//değer = Düşük[Mevcut Çubuk];

resl= 1;

}

if(resl == 0 )

deltal=0;

ind_buffer2[CurrentBar] = deltal;

}

//---- tamamlamak

dönüş(0);

}

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

Şimdi deneyin: _test.mq4

Dosyalar:
_test.mq4  3 kb
test.gif  68 kb
 
Big Be:
Stanwell,

Tüm bunların yardımcı olacağını gösteren birkaç resim.

büyük olmak

Merhaba Big Be,

İyi nokta, yarın birkaç grafik yayınlayacağım.

şerefe,

Stan

 

İşte manuel olarak işaretlediğim AUD grafiği. Kırmızı kutular üst üste binen çubuklardır. Solda, içinde sadece üç çubuğu gösteren, tanıma uymayan bir kare var. Bununla birlikte, bu bacak önemliyse, diyelim ki 6 X ATR'den büyükse, onları da bir salınım olarak sayardım (sadece üç çubukla ticaret yapmak zor), ancak bu gereksinimin kodlamayı karmaşıklaştıracağını düşündüm, böylece onu dışarıda bırakabiliriz. an.

Teşekkür.

Stan

Dosyalar:
 

Merhaba Mladen ve Mrtools!

Tekrar yardımınıza ihtiyacım var, bu göstergeye görsel/akustik uyarı ekleyebilir misiniz lütfen?

Şimdiden teşekkürler, şerefe!

Dosyalar:
 

MLADEN, günaydın.

Çok teşekkürler, _testlerini denedim ve doğru çıktı.

Burada sahip olduğum herhangi bir yardım, baskınlığı benimkinden çok daha fazla olmasına rağmen, ProRealTime / VISUALCHART'ta evet daha fazla yardımcı olabilirim.

Saygılarımla.

 

Merhaba,

bir göstergem var ve çubuk hesaplamasını sınırlamak istiyorum.

Orijinal kod şuydu:

int start()

{

int counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]

i changed it with this:

[CODE]int start()

{

int counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

int limit = MathMin(NBars-counted_bars,NBars-1);

Doğru mu? Gösterge iyi çalışıyor gibi görünüyor, ancak çubuk hesaplamasını gerçekten sınırlandırıp sınırlandırmadığımdan şüpheliyim.

 
thefxpros:
Merhaba,

bir göstergem var ve çubuk hesaplamasını sınırlamak istiyorum.

Orijinal kod şuydu:

int start()

{

int counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]

i changed it with this:

[CODE]int start()

{

int counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

int limit = MathMin(NBars-counted_bars,NBars-1);
Doğru mu? Gösterge iyi çalışıyor gibi görünüyor, ancak çubuk hesaplamasını gerçekten sınırlandırıp sınırlandırmadığımdan şüpheliyim.

thefxpros

Hayır. Bunu şu şekilde yapın:

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

Ancak bu durumda, NBar'ların her zaman > 0 olduğundan emin olmalısınız.

 

merhaba mladen

Bana yardım edebilirsen X ve Y eksenlerini ekle, sonra köşeye koyabilirim.

ve yazı tipi boyutunu ayarlayabilir, İngilizcem için üzgünüm.

!X2014-PIPSv2

çok teşekkürler.

Dosyalar:
 
blueface:
merhaba mladen

Bana yardım edebilirsen X ve Y eksenlerini ekle, sonra köşeye koyabilirim.

ve yazı tipi boyutunu ayarlayabilir, İngilizcem için üzgünüm.

!X2014-PIPSv2

çok teşekkürler.

mavi yüz

Bunlara zaten sahipsiniz: kodda posX ve posY değişkenleri