
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
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?
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!!
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;
/*[[
Merhaba Scott...
Bunu dene....
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
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