Nasıl kodlanır? - sayfa 39

 

mis

Bir an boş vaktim oldu ve anladığım gibi niyetinizi yakalamaya çalıştım.

Dosyalar:
advicerr.txt  2 kb
 

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

Dosyalar:
ralph.txt  2 kb
 

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?

 
NTrader:
Ö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.