Bu MT3'ü benim için MT4'e dönüştürün - çok kolay - sayfa 2

 

Bu MT3'ü benim için MT4'e dönüştürün - çok kolay

MT4'ten MT3'e geçmeyi düşünüyorum.

İlk uzman danışmanımı düzenlemeyi yeni bitirdim.

Sonunda stratejimi programlayabilmem için MT ve MQL4 hakkında yeterince bilgi edinmem yaklaşık 4 haftamı aldı, ancak şimdi programı MQL2'ye dönüştürebileceğimi düşünüyorum.

Bu forumda okuduklarıma göre, MT4'ün herhangi bir avantajını görmüyorum.

EA'mı geriye dönük test ederek okuduğum ve öğrendiğim şey, MT4 Strateji Test Cihazının çalışmadığıdır. Yalnızca bu nedenle, MT3 ile doğru bir geriye dönük test alabilmem için geçiş yapmak için yalnızca birkaç gün daha harcamanın mantıklı olduğunu düşünüyorum.

MT3'ü zaten indirip yükledim ve editör sözlüğüne bir göz attım. MT3'te MT4'e göre daha az özellik olduğunu görebiliyorum ama bunun büyük bir sorun olacağını düşünmüyorum.

MQL4 EA'mın büyük ölçüde güvendiğim bir özelliği, orijinal bekleyen emrin fiyatını depolamak için OrderMagicNumber idi; bu, emir doldurulduğunda kayma ile değişebilir.

MQL2 siparişlerinde OrderMagicNumber yoktur, ancak MQL2 sözlüğünde, açıklamasında işlevin bir siparişin yorumunu (VAL_COMMENT) alabileceğini söyleyen OrderValue adlı bir işlev fark ettim.

Tercih edilen fiyatı saklamak için yorumu kullanabilirsem, MT3'e geçiş yapabileceğimi düşünüyorum. Ancak sözlükte sıralama yorumunu nasıl ayarlayacağımı bulamadım. SetOrder işlev açıklaması, parametrelerinden biri olarak "yorum" listelemez.

MQL2'nin bu özelliğine aşina olan biri bana sipariş yorumunun nasıl ayarlandığını söyleyebilir mi?

 
BC Brett:

Bu forumda okuduklarıma göre, MT4'ün herhangi bir avantajını görmüyorum.

EA'mı geriye dönük test ederek okuduğum ve öğrendiğim şey, MT4 Strateji Test Cihazının çalışmadığıdır. Yalnızca bu nedenle, MT3 ile doğru bir geriye dönük test alabilmem için geçiş yapmak için yalnızca birkaç gün daha harcamanın mantıklı olduğunu düşünüyorum.

Peki, MT3 backtester'ın MT4 backtester'dan daha güvenilir olduğunu nerede okudunuz???

Bu konuda çok yanlış bilgilendirildiğini düşünüyorum!

MT4 geriye dönük testi çok güvenilir olabilir, ancak sahip olduğunuz geçmiş verilerinin kalitesine ve modelleme kalitenizin yüzdesine bağlıdır.

MT4 programlamasında olduğu gibi MQL2'de gönderilen emirlere "yorum" ekleyemeyecek veya "MagicNumbers" atayamayacaksınız. MT4 programlama, MQL2 programlamadan daha ileri düzeydedir, neden geriye gidilir?

 

MT4 geriye dönük testi hakkında buradan bilgi almak isteyebilirsiniz: http://www.strategybuilderfx.com/forums/showthread.php?t=15309&page=1&pp=8

(Sayfaya erişemiyorsanız üye olmanız gerekir - ücretsizdir)

 

Burada ve orada topladığım kadarıyla, geriye dönük test etme konusunda biraz ciddi olan insanlar, mt3 veya mt4 DEĞİL, WealthLab, Amibroker veya MetaStocks gibi yazılımlar kullanıyor.

Belki , mt4 geriye dönük testi, herhangi bir bar içi veri kullanmıyorsanız , tamam olabilir. Örneğin, günlük çubuklarla çalışıyorsanız, günlük çubukların yalnızca Aç ve Kapat değerlerini kullanmalısınız (Kayıp Durdur veya Kâr Al ayarladıysanız Yüksek ve Düşük bile değil). Başka hiçbir şey.

Bunun nedeni, "modelleme kalitesinin" ne söyleyebileceğine rağmen, GERÇEK verileri kullanan tek mt4 geriye dönük test yönteminin "Yalnızca açık fiyatlar " olmasıdır.

"Her tik" ve "Kontrol Noktaları" yöntemleri güzel masallardır. Şahsen, peri masalı verilerinin geriye dönük testlerine dayanarak para ticareti yapmayacağım.

Hâlâ mt4 öğreniyorum, ancak deneyimlerime göre mt4 geriye dönük testini başka bir şekilde kullanmazdım. Önerdiğim yöntemin %100 güvenilir olduğundan bile %100 emin değilim. İyi bir geriye dönük test yapmak istersem, bir geriye dönük test yazılımı alacağım.

Canlı alım satım için mt4 ve mt3 hakkında: burada ve orada topladıklarımdan ;-) mt4'e güvenilemez. Bazen, mt4'ün yerine getirilmediğini söylediği emirler, aslında yerine getirilir!! Bu, komisyoncular tarafından bildirildi. Bu doğruysa, mt4 canlı ticaret sunan brokerler ciddi değildir. Veya platformlarında mt4 hatalarının olmamasını sağladılar, bu da mümkün.

Öte yandan, "orada burada topladım" lol, mt3 ile canlı ticaret yapmak mümkün.

 

Bu MT3'ü benim için MT4'e dönüştürün - çok kolay

Merhaba arkadaşlar, biri bunu benim için MT4 diline çevirebilirse sevinirim - brokerimiz az önce MT4'e yükseltildi.

İşte kod:

/*[[

Name := TTM Stoch

Author := Scott Black

Link := http://www.tradethemajors.com

Separate Window := yes

First Color := Cyan

First Draw Type := Line

Use Second Data := yes

second Color := Magenta

second Draw Type := Line

Minimum Chart Limits := 0.000000

Maximum Chart Limits := 100.000000

]]*/

Inputs : Slw(8),Pds(13),Slwsignal(9);

Variables : AA(0),bb(0),aa1(0),cnt1(0);

Variables : shift(0), cnt(0), loopbegin(0),loopbegin2(0),loopbegin3(0), first(True), prevbars(0);

Variables : sum(0), smconst(0),smconst1(0), prev(0),prev1(0),prev2(0),prev3(0), weight(0), linear(0);

Variables : MAValue(0),MAValue2(0),mavalue3(0), MAstring("");

Variables : MyHigh(0),MyLow(0),counter(0),Price(0),Price1(0);

SetLoopCount(0);

smconst = 2 / (1+SLW);

smconst1 = 2 / (1+slwsignal);

loopbegin = loopbegin+1;

For shift = 2000 Downto 0 Begin

prev = GetIndexValue2(shift+1);

AA =100* ((Close[shift] - Low[Lowest(MODE_LOW,shift+pds,Pds)]) / (High - low[Lowest(MODE_LOW,shift+pds,Pds)]));

MAValue2 = smconst * (aa-prev) + prev;

SetIndexValue2(shift,MAValue2);

loopbegin = loopbegin-1;

End;

loopbegin2 = loopbegin2+1;

For shift = 2000-pds downto 0 Begin

MyHigh = -999999;

MyLow = 99999999;

For counter = shift to pds + shift Begin

PRICE= GetIndexValue2(counter);

If Price > MyHigh Then

MyHigh = Price;

If pds <= 0 Then

MyHigh = Price;

If Price < MyLow Then

MyLow = Price;

If pds <= 0 Then

MyLow = Price;

end;

prev1 = GetIndexValue(shift+1);

aa1=GetIndexValue2(shift);

bb=100*(aa1-mylow)/(myhigh-mylow);

MAValue = smconst * (bb-prev1) + prev1;

SetIndexValue(shift,mavalue);

loopbegin2 = loopbegin2-1;

End;

loopbegin3 = loopbegin3+1;

For shift = 2000 downto 0 Begin

prev2=GetIndexValue2(shift+1);

prev3=GetIndexValue(shift);

MAValue3= smconst1 * (prev3-prev2) +Prev2;

SetIndexValue2(shift,mavalue3);

loopbegin3 = loopbegin3-1;

end;

/*[[

Çok teşekkürler!!

 
scott TTM:
Merhaba arkadaşlar, biri bunu benim için MT4 diline çevirebilirse sevinirim - brokerimiz az önce MT4'e yükseltildi.

İşte kod:

/*[[

Name := TTM Stoch

Author := Scott Black

Link := http://www.tradethemajors.com

Separate Window := yes

First Color := Cyan

First Draw Type := Line

Use Second Data := yes

second Color := Magenta

second Draw Type := Line

Minimum Chart Limits := 0.000000

Maximum Chart Limits := 100.000000

]]*/

Inputs : Slw(8),Pds(13),Slwsignal(9);

Variables : AA(0),bb(0),aa1(0),cnt1(0);

Variables : shift(0), cnt(0), loopbegin(0),loopbegin2(0),loopbegin3(0), first(True), prevbars(0);

Variables : sum(0), smconst(0),smconst1(0), prev(0),prev1(0),prev2(0),prev3(0), weight(0), linear(0);

Variables : MAValue(0),MAValue2(0),mavalue3(0), MAstring("");

Variables : MyHigh(0),MyLow(0),counter(0),Price(0),Price1(0);

SetLoopCount(0);

smconst = 2 / (1+SLW);

smconst1 = 2 / (1+slwsignal);

loopbegin = loopbegin+1;

For shift = 2000 Downto 0 Begin

prev = GetIndexValue2(shift+1);

AA =100* ((Close[shift] - Low[Lowest(MODE_LOW,shift+pds,Pds)]) / (High - low[Lowest(MODE_LOW,shift+pds,Pds)]));

MAValue2 = smconst * (aa-prev) + prev;

SetIndexValue2(shift,MAValue2);

loopbegin = loopbegin-1;

End;

loopbegin2 = loopbegin2+1;

For shift = 2000-pds downto 0 Begin

MyHigh = -999999;

MyLow = 99999999;

For counter = shift to pds + shift Begin

PRICE= GetIndexValue2(counter);

If Price > MyHigh Then

MyHigh = Price;

If pds <= 0 Then

MyHigh = Price;

If Price < MyLow Then

MyLow = Price;

If pds <= 0 Then

MyLow = Price;

end;

prev1 = GetIndexValue(shift+1);

aa1=GetIndexValue2(shift);

bb=100*(aa1-mylow)/(myhigh-mylow);

MAValue = smconst * (bb-prev1) + prev1;

SetIndexValue(shift,mavalue);

loopbegin2 = loopbegin2-1;

End;

loopbegin3 = loopbegin3+1;

For shift = 2000 downto 0 Begin

prev2=GetIndexValue2(shift+1);

prev3=GetIndexValue(shift);

MAValue3= smconst1 * (prev3-prev2) +Prev2;

SetIndexValue2(shift,mavalue3);

loopbegin3 = loopbegin3-1;

end;

/*[[

Çok teşekkürler!!

Merhaba Scott...

Bunu dene....

Dosyalar:
ttm_stoch.mq4  5 kb
 

cehennem,

Korkarım bu pek işe yaramadı. MT3 tablosunda nasıl görünmesi gerektiğini görmek için www.compoundfx.com/mt3stoch.jpg adresine gidin - bunu yüklemeye çalıştım ama işe yaramadı.

çabalarınız için teşekkürler, belki bu yardımcı olur?

MT4'te çizdiğimde, girişin orada olduğunu görmeme rağmen, camgöbeği değil, yalnızca macenta bir çizgi görüyorum.

scott

 

Merhaba,

İlk cehennem Mql göstergesini aracım Mql2Mq4 ile dönüştürdükten sonra dosya başlığımı korumanızı takdir edeceğim !!!

O zaman dönüştürülmüş olanın düzgün çalışmaması normaldir, Uzman mesaj günlüğü TabSheet'te (Panel) Metatrade 4'e bakarsanız bu resimdeki gibi "Sıfır Ayrım istisnası" göreceksiniz. Gösterge komut dosyasında bölme operatörünü kullanırsınız, bazı zamanlar NULL :-( bu hatanın nedeni budur ve tekrar ediyorum, Metatrade 3'te bunun için oluşturulan hiçbir istisna yoktu, yine de Metatrade 4'te.

Dönüştürülmüş olanı MT 3'teki gibi çalışır duruma getirdim ve ne tür bir değişiklik yaptığımı görebilirsiniz.

Güle güle

Dosyalar:
exception.jpg  52 kb
ttmstoch.mq4  5 kb
 

sensky,

Çok teşekkürler, mükemmel görünüyor! Bunu takdir ediyorum.

-SB

 

sensky,

Tamam, daha fazla incelemeden sonra, henüz tam olarak orada değil. Hala bana MT4'te yanlış okumalar veriyor, yani çizgiler olması gereken yerden geçmiyor. Buraya koyduğunuz kodu kullandım. Herhangi bir fikir?

SB

Neden: