Kodlama yardımı - sayfa 173

 

merhaba kodlayıcılar,

Son çubuk sma10'un üstünde veya altında olduğunda bir uyarı gösteren çok basit bir gösterge oluşturdum. başka bir şey yok. ama 3 farklı zaman diliminde kontrol etmek istiyorum. mtf göstergeleriyle hiç çalışmadım ve bu yüzden onunla bazı sorunlarım var. bu sürüm m1, m5 ve m15 tablosunu kontrol eder. iyi çalışıyor ancak uyarının, koşulların karşılandığı zaman diliminde yalnızca bir kez değil, her işarette görüntülenmesi sorunu var.

bu konuda bana yardımcı olan olursa sevinirim. sadece bir sözdizimi sorunu olabileceğini düşünüyorum ..

teşekkür ederim!

Dosyalar:
test.mq4  3 kb
 

Merhaba,

Bir hata bulamadığım için tekrar sormak zorundayım ama sadece yanlış değerler alıyorum :-(

Belki de başarısızlığımı gören var mı?!

Bu, göstergeden gelen kod

#property indicator_chart_window

#property indicator_buffers 5

double WidestChannel_high[];

double InsideChannel_high[];

double StandardDeviation[];

double InsideChannel_low[];

double WidestChannel_low[];

extern int STD.Rgres.period=0; /*default 0 means the channel will use the open

time from "x" bars back on which ever time period

the indicator is attached to. one can change to 1,5,

15,30,60...etc to "lock" the start time to a specific

period, and then view the "locked" channels on a different time period...*/

extern int STD.Rgres.length=56; // bars back regression begins

extern double STD.Rgres.width=1.618;// widest channel

extern double STD.width=0.618; // inside channel

int init()

{

SetIndexBuffer(0,WidestChannel_high);

SetIndexLabel(0,"WidestChannel_high");

SetIndexBuffer(1,InsideChannel_high);

SetIndexLabel(1,"InsideChannel_high");

SetIndexBuffer(2,StandardDeviation);

SetIndexLabel(2,"StandardDeviation");

SetIndexBuffer(3,InsideChannel_low);

SetIndexLabel(3,"InsideChannel_low");

SetIndexBuffer(4,WidestChannel_low);

SetIndexLabel(4,"WidestChannel_low");

return(0);

}

int deinit() {

ObjectDelete("regression channel");ObjectDelete("std channel");return(0);

}

int start() {

int counted_bars=IndicatorCounted(),limit, iTF;

//---- last counted bar will be recounted

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

//to refresh properly delete old objects...

ObjectDelete("regression channel");ObjectDelete("std channel");

//widest channel

ObjectCreate("regression channel",OBJ_STDDEVCHANNEL,0,iTime(Symbol(),STD.Rgres.period,STD.Rgres.length),

Close[STD.Rgres.length],Time[0],Close[0]);

ObjectSet("regression channel",OBJPROP_DEVIATION,STD.Rgres.width);

ObjectSet("regression channel",OBJPROP_COLOR,Orange);

ObjectSet("regression channel",OBJPROP_RAY,true);

//inside channel

ObjectCreate("std channel",OBJ_STDDEVCHANNEL,0,iTime(Symbol(),STD.Rgres.period,STD.Rgres.length),

Close[STD.Rgres.length],Time[0],Close[0]);

ObjectSet("std channel",OBJPROP_DEVIATION,STD.width);

ObjectSet("std channel",OBJPROP_COLOR,Olive);

ObjectSet("std channel",OBJPROP_RAY,true);

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

{

double dev = iStdDev(NULL,STD.Rgres.period,STD.Rgres.length,0,MODE_SMA,PRICE_CLOSE,i);

double innerWidth = STD.width*dev;

double outerWidth = STD.Rgres.width*dev;

double price = ObjectGetValueByShift("std channel", i);

WidestChannel_high= price + outerWidth/2;

InsideChannel_high= price + innerWidth/2;

StandardDeviation= price;

InsideChannel_low= price - innerWidth/2;

WidestChannel_low= price - outerWidth/2;

}

return(0);}
 
sunshineh:
Merhaba,

Bir hata bulamadığım için tekrar sormak zorundayım ama sadece yanlış değerler alıyorum :-(

Belki de başarısızlığımı gören var mı?!

Bu, göstergeden gelen kod

#property indicator_chart_window

#property indicator_buffers 5

double WidestChannel_high[];

double InsideChannel_high[];

double StandardDeviation[];

double InsideChannel_low[];

double WidestChannel_low[];

extern int STD.Rgres.period=0; /*default 0 means the channel will use the open

time from "x" bars back on which ever time period

the indicator is attached to. one can change to 1,5,

15,30,60...etc to "lock" the start time to a specific

period, and then view the "locked" channels on a different time period...*/

extern int STD.Rgres.length=56; // bars back regression begins

extern double STD.Rgres.width=1.618;// widest channel

extern double STD.width=0.618; // inside channel

int init()

{

SetIndexBuffer(0,WidestChannel_high);

SetIndexLabel(0,"WidestChannel_high");

SetIndexBuffer(1,InsideChannel_high);

SetIndexLabel(1,"InsideChannel_high");

SetIndexBuffer(2,StandardDeviation);

SetIndexLabel(2,"StandardDeviation");

SetIndexBuffer(3,InsideChannel_low);

SetIndexLabel(3,"InsideChannel_low");

SetIndexBuffer(4,WidestChannel_low);

SetIndexLabel(4,"WidestChannel_low");

return(0);

}

int deinit() {

ObjectDelete("regression channel");ObjectDelete("std channel");return(0);

}

int start() {

int counted_bars=IndicatorCounted(),limit, iTF;

//---- last counted bar will be recounted

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

//to refresh properly delete old objects...

ObjectDelete("regression channel");ObjectDelete("std channel");

//widest channel

ObjectCreate("regression channel",OBJ_STDDEVCHANNEL,0,iTime(Symbol(),STD.Rgres.period,STD.Rgres.length),

Close[STD.Rgres.length],Time[0],Close[0]);

ObjectSet("regression channel",OBJPROP_DEVIATION,STD.Rgres.width);

ObjectSet("regression channel",OBJPROP_COLOR,Orange);

ObjectSet("regression channel",OBJPROP_RAY,true);

//inside channel

ObjectCreate("std channel",OBJ_STDDEVCHANNEL,0,iTime(Symbol(),STD.Rgres.period,STD.Rgres.length),

Close[STD.Rgres.length],Time[0],Close[0]);

ObjectSet("std channel",OBJPROP_DEVIATION,STD.width);

ObjectSet("std channel",OBJPROP_COLOR,Olive);

ObjectSet("std channel",OBJPROP_RAY,true);

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

{

double dev = iStdDev(NULL,STD.Rgres.period,STD.Rgres.length,0,MODE_SMA,PRICE_CLOSE,i);

double innerWidth = STD.width*dev;

double outerWidth = STD.Rgres.width*dev;

double price = ObjectGetValueByShift("std channel", i);

WidestChannel_high= price + outerWidth/2;

InsideChannel_high= price + innerWidth/2;

StandardDeviation= price;

InsideChannel_low= price - innerWidth/2;

WidestChannel_low= price - outerWidth/2;

}

return(0);}

güneş ışığı,

Yüksek ve düşük olanı elde etmek için sapmayı 2'ye bölmeniz gerekmez - "/2" kısmını kaldırın ve orta fiyatın uygun olması koşuluyla sorun olmaz. Kanalın genişliği her zaman sabittir: ile için geçerli standart revizyon kullanılmalıdır, başka bir değer değil. Ve sonuncusu, gördüğüm kadarıyla, ObjectGetValueByShift("std channel", i); trend çizgileri üzerinde çalıştığı için standart sapma kanalında çalışmaz. Hangi değeri geri getiriyor bilmiyorum (ekli göstergeye bakın ve neden bu fiyatın ne olduğunu bilmiyorum dediğimi göreceksiniz)

Dosyalar:
_test_4.mq4  3 kb
 

merhaba mladen,

Dahili önceden ayarlanmış sembolleri kullanarak örnek bir gösterge ekliyorum, içeride anlamam oldukça zor, bu göstergeden göstergelerime ve/& sizin göstergelerinize uyum sağlamak için bazı ipuçları almak mümkün mü? bir tür sy nergy yapmak? Aradığınız için teşekkürler.

 
kenwa:
Merhaba mladen, dahili ön ayar sembollerini kullanarak örnek bir gösterge ekliyorum, içeride anlamam oldukça zor, bu göstergeden göstergelerime ve/& sizin göstergelerinize uyum sağlamak için yeniden boyama veya yenileme hattı sorununu önlemek için bazı ipuçları almak mümkün mü? sorunları işaretlemek mi yoksa bir tür sy nergy mi yapmak? Aradığınız için teşekkürler.

kenva

Geri derlenmiş şeyler üzerinde çalışmıyorum. Afedersiniz

 
mladen:
kenwa Geri derlenmiş şeyler üzerinde çalışmıyorum. Afedersiniz

tamam, o zaman kaldırıyorum , ama ilginç bir şekilde neden kimse onu görmüyor ama bunun karmaşık bir şey olduğunu biliyorsun

 
kenwa:
tamam, o zaman kaldırıyorum, ama ilginç bir şekilde neden kimse onu görmüyor ama bunun karmaşık bir şey olduğunu biliyorsun

Kodlama hakkında biraz bilgisi olan herkes bunun derlenmiş bir kod olduğunu bilir.

Ve herhangi bir kodlama hakkında hiçbir şey bilmiyor olsanız bile, şöyle bir şeye sahip olduğunuzda:

/*

EX4-TO-MQ4 kod çözücü FREEWARE V4.0.451.1 tarafından oluşturulmuştur [-]

Web sitesi: MetaTrader 5 İşlem Platformu / MetaQuotes Software Corp.

E-posta : support@metaquotes.net

*/

Gönderdiğiniz göstergenin ilk birkaç satırında yazılı, herkesin bunun derlenmiş bir kod olduğunu görebileceği oldukça açık görünüyor, bu yüzden lütfen ...

Herşey gönlünce olsun

 

mladen, kodum çözülmedi. belki ona kısa bir göz atmak istersin?

 
Marbo:
mladen, kodum çözülmedi. belki ona kısa bir göz atmak istersin?

marbo

Ekteki gibi bir şey yapabilirsiniz. Hedef zaman çerçevesi çubuğu başına veya durum (uyarı türü) değiştiğinde sizi bir kez uyaracaktır. Yazıyı yok saymak istiyorsanız, doAlert prosedüründeki tip kontrolünü atlayın. Zaman kontrolünü atlamak istiyorsanız (bu durumda sadece tip kontrol edilecektir), o zaman doAlert prosedüründeki zaman kontrolünü atlayın.

Dosyalar:
test_4.mq4  3 kb
 

merhaba mladen,

Geçen hafta bir MA çapraz EA ile ilgili yardım istediğimi muhtemelen hatırlayacaksınız. ve elbette Elit bölümüne uygunsuz bir şekilde atıfta bulunulmuştur. Bunu nereden sormamı önerirsiniz lütfen. Baktım ve bariz bir cevap bulamadım. Hafızanızı yenilemek için teknik özellik şuydu:

1.SMA EMA çapraz

2. mumun kapanışında

3.OCO ile yeni yönde yeni sipariş verin

4.Kaymayı ayarlama yeteneği

5. Sesli çapraz sinyal

6. Çapraz, ayarlanabilir bir pip boşluğu olmayan gerçek bir çapraz değildir

7.Mümkünse mum içi izleme, yani eğer bir mum ATR'nin (sayılacak ayarlanabilir sayı) X katından fazlaysa, bu mum yönünde bir alarm ile bir emir verilir ve aynı şekilde bir emri kapatmak ancak daha sonra başlamamak için bir emir verilir. yenisi

8. tercihen alarm çalmak için 7'deki gibi bir sipariş verilirse

9. Çapraz güvenirlik her şeyden önemlidir. Grafiklerimde - FXCM, Vantage, FX Choice - Universal Cross dahil bazı EA'lar işlem yapmıyor veya çok geç

10. Ayarlanabilir SL, ancak gerekmedikçe dışarıda bırakılabilir

11. İzleyen Durdurma

12.SL, X pip kârdan sonra otomatik olarak başabaşa gider

13. Maksimum açık işlem sayısı

14. sihirli sayı

Saygılarımızla

Jeff

Neden: