Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
mis
Bir an boş vaktim oldu ve anladığım gibi niyetinizi yakalamaya çalıştım.
Teşekkür ederim
teşekkürler ralph.ronnquist
bu işlevler tam olarak ihtiyacım olan şey ve aynı işlevden sonra başkalarına da faydası olacak
Yakalandım, yoksa daha önce teşekkür ederdim, özellikle çaba gerektirdiği için
Strateji test cihazında çalışacak işlevi değiştirmenin basit bir yolu var mı? Test cihazında sadece bir para birimiyle çalışmanın sonuçlarının, matematiği doğru yapmak için ihtiyacım olanı çok kabaca taklit etmesi dışında yararsız olduğunu biliyorum, herhangi bir yardım için teşekkür ederiz ve kodu asla kısa sürede çözemezdim. bir kez daha teşekkür ederim!
DT_ZZ.mq4 tabanlı EA
Bu konuda biraz zorlanıyorum.
DT_ZZ.mq4 göstergesine sahibim ve gördüğüm kadarıyla çok umut verici. Bu göstergenin yeniden çizildiğini biliyorum ve işte nasıl çalıştığını görüyorum.
Bir ok ve bölüm eşitse, çubuğun kapanmasını bekleyin, ardından buna göre al/sat.
Bu konuda yardımcı olabileceğini düşünen var mı? (Kod aşağıda yayınlanmıştır)
//| DT_ZZ.mq4 |
//+------------------------------------------- -------------------+
// Rosh tarafından optimize edildi
#özellik göstergesi_chart_window
#özellik göstergesi_tamponları 3
#özellik göstergesi_color1 Yeşil
#özellik göstergesi_color2 Mavi
#özellik göstergesi_color3 Kırmızı
//---- gösterge parametreleri
dış int DışDepth=12;
extern int hesaplaSeviye=2;
//---- gösterge tamponları
çift zzL[];
çift zzH[];
çift zz[];
//+------------------------------------------- -------------------+
//| Özel gösterge başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
// GöstergeTamponları(3);
//---- çizim ayarları
SetIndexStyle(0,DRAW_SECTION);
SetIndexStyle(1,DRAW_ARROW);
SetIndexStyle(2,DRAW_OK);
SetIndexArrow(1,159);
SetIndexArrow(2.159);
//---- gösterge arabellek eşlemesi
SetIndexBuffer(0,zz);
SetIndexBuffer(1,zzH);
SetIndexBuffer(2,zzL);
SetIndexEmptyValue(0,0.0);
SetIndexEmptyValue(1,0.0);
SetIndexEmptyValue(2,0.0);
//---- gösterge kısa adı
GöstergeShortName("DT_ZZ("+ExtDepth+")");
//---- başlatma tamamlandı
dönüş(0);
}
//+------------------------------------------- -------------------+
//| |
//+------------------------------------------- -------------------+
int başlangıç()
{
int i,shift,pos,lasthighpos,lastlowpos,curhighpos,curlowpos;
çift kıvrım, kıvrım, son, son;
çift min, maks;
int counted_bars=IndicatorCounted();
if (counted_bars==0)
{
ArrayInitialize(zz,0.0);
ArrayInitialize(zzL,0.0);
ArrayInitialize(zzH,0.0);
lasthighpos=Barlar; lastlowpos=Barlar;
lastlow=Düşük;lasthigh=Yüksek;
Print("limit=",Barlar-ExtDepth);
for(shift=Bars-ExtDepth; shift>=0; shift--)
{
curlowpos=En Düşük(NULL,0,MODE_LOW,ExtDepth,shift);
kıvrım=Düşük[kıvrık poz];
curhighpos=En Yüksek(NULL,0,MODE_HIGH,ExtDepth,shift);
curhigh=Yüksek[curhighpos];
//------------------------------------------------
if( curllow>=lastlow ) { lastlow=curlow; }
başka
{
//???? ????
if( lasthighpos>curlowpos )
{
zzL[curlowpos]=curlow;
///*
min=100000; konum=sonyüksekpos;
for(i=lasthighpos; i>=curlowpos; ben--)
{
(zzL==0.0) devam ederse;
if (zzL<min) {min=zzL; konum=i; }
zz=0.0;
}
zz[konum]=dak;
//*/
}
lastlowpos=kıvrık pozlar;
lastlow=curlow;
}
//--- yüksek
if( curhigh<=lasthigh ) { lasthigh=curhigh;}
başka
{
// ???? ?????
if( lastlowpos>curhighpos )
{
zzH[curhighpos]=curhigh;
///*
maks=-100000; poz=sonlowpos;
for(i=lastlowpos; i>=curhighpos; i--)
{
(zzH==0.0) devam ederse;
if (zzH>maks) { maks=zzH; konum=i; }
zz=0.0;
}
zz[konum]=maks;
//*/
}
lasthighpos=curhighpos;
lasthigh=curhigh;
}
zz[0]=Kapat[0];
}
//------------------------------------------------ ----------------------
}
başka
{
int konum2;
i=0;
while (pos2<hesaplaSeviye && i<Bars-1)
{
if (zz!=0 && (zzH!=0||zzL!=0)) pos2++;
ben++;
}
konum2=i-1;
(i=pos2-1;i>=0;i--) için
{
zzH=0;
zzL=0;
zz=0;
}
eğer (zzH[pos2]!=0)
{
lasthighpos=pos2;
lasthigh=Yüksek[pos2];
lastlowpos=En Düşük(NULL,0,MODE_LOW,ExtDepth,pos2);
lastlow=Düşük[lastlowpos];
}
başka
{
lastlowpos=pos2;
lastlow=Düşük[pos2];
lasthighpos=En Yüksek(NULL,0,MODE_HIGH,ExtDepth,pos2);
lasthigh=Yüksek[lasthighpos];
}
//------------------------- ????????? ??????
Print("limit=",pos2-1);
for(shift=pos2-1; shift>=0; shift--)
{
curlowpos=En Düşük(NULL,0,MODE_LOW,ExtDepth,shift);
kıvrım=Düşük[kıvrık poz];
curhighpos=En Yüksek(NULL,0,MODE_HIGH,ExtDepth,shift);
curhigh=Yüksek[curhighpos];
//------------------------------------------------
if( curllow>=lastlow ) { lastlow=curlow; }
başka
{
//???? ????
if( lasthighpos>curlowpos )
{
zzL[curlowpos]=curlow;
///*
min=100000; konum=sonyüksekpos;
for(i=lasthighpos; i>=curlowpos; ben--)
{
(zzL==0.0) devam ederse;
if (zzL<min) {min=zzL; konum=i; }
zz=0.0;
}
zz[konum]=dak;
//*/
}
lastlowpos=kıvrık pozlar;
lastlow=curlow;
}
//--- yüksek
if( curhigh<=lasthigh ) { lasthigh=curhigh;}
başka
{
// ???? ?????
if( lastlowpos>curhighpos )
{
zzH[curhighpos]=curhigh;
///*
maks=-100000; poz=sonlowpos;
for(i=lastlowpos; i>=curhighpos; i--)
{
(zzH==0.0) devam ederse;
if (zzH>maks) { maks=zzH; konum=i; }
zz=0.0;
}
zz[konum]=maks;
//*/
}
lasthighpos=curhighpos;
lasthigh=curhigh;
}
}
//------------------------- ????????? ??????
zz[0]=Kapat[0];
}
dönüş(0);
}
//+------------------------------------------- -------------------+Bu 4 strateji test cihazı değiştirilebilir mi?
ralph.ronnquist
bana cömertçe, birçok kişinin faydalanabileceği, kullanımını gerektiren harika bir işlev sağladı.
Benim sorunum şu anda programlamada çok kötü olduğum için yeterince değiştiremiyorum 4 strateji test cihazı.
Test amacıyla, farklı koşullar altında farklı para birimleriyle yapılan işlemlerin matematiğini çözmek için yalnızca bir para birimi yeterlidir.
Ralph'in çalışmasını bu ihtiyaca göre değiştirmek mümkün mü?
Teşekkür ederim
Prensipte sadece "EURCHF" dizesini "EURUSD" olarak değiştirmeniz gerekir. Yani, kısa "EURUSD" yerine uzun "EURUSD" ile çalışmak.
bunu denedim
Cevabınız için teşekkürler ama denedim olmadı. Verdiğiniz kod bana ve kız arkadaşıma programlama hakkında ne kadar az şey bildiğimiz konusunda çok şey öğretti!
Çok teşekkürler!
Hmm. Önde görebildiğim tek "kötülük", eşitlik için iki çift sayıyı karşılaştıran "v == cut" testidir. Belki de sadece tam $ miktarlarına bakmak ve böylece "euprofit", "ecprofit", "cut" ve "v"yi "int" türünde değiştirmek daha iyi sonuç verir?
Önemsiz soru: İlk defa yeni bir Kişisel Gösterge yazıyorum. Start{} yönteminde Print ("...") komutuyla oluşturduğum günlüklerimi görüntüleyemiyorum. Bunları MetaTrader 4'te nerede görebilirim?
Tamam, Comment() komutunu kullanıyorum..
Burada aptal
herkese selam
Bu benim gibi programlama hakkında hiçbir şey bilmeyen biri için harika bir konu. İçinde çok yararlı bilgiler ve kopyalayıp oynayabileceğim çok sayıda küçük kod parçası var.
Umarım birisi bana bu parça ile yardımcı olabilir. Fiyata dayalı bir EA yapmak istiyorum. Aşağıdakileri söylemek için koda ne girmeliyim:
1) EA'nın saat tablosunda 20:00'deki fiyata bakmasını ve bunun 100sma ile ilişkisinin ne olduğunu görmesini istiyorum.
2)Fiyat 100sma'nın üzerindeyse belirli seviyede 2 alış emri açmasını istiyorum.
3) Bu seviyeler 16:00 mumunun kapanış fiyatına dayanmaktadır, yani 16:00 mumu 1.2000 ise, 1.1120 ve 1.2080'de bir alış açmasını istiyorum.
Duraklar ve takip eden duraklar ve kar seviyelerim her şeyi halledip, bu zincirden alınan tüm kodlara sahibim. Bu yüzden onları yazanlara teşekkür ediyorum. İ
Biri bana burada yardım edebilirse sonsuza kadar borçlu kalacağım.
Saygılarımla
suzan
Yardım
Herkese selam
Bir EA oluşturmaya çalıştım ve aşağıdaki hata mesajını aldım:
'\end_of_program' - bitiş dirseği '}' bekleniyor C:\...\My_First_EA.mq4(96,1)
Çift tıkladım, satıra geldim, ardından açılış-bitiş parantezleriyle kontrol ettim ve hala nerede hata yaptığımı bilmiyorum.
Bu, aynı göstergeye dayalı olarak aynı hata mesajıyla denediğim ikinci EA.
Teşekkür ederim.