Kodlama yardımı - sayfa 96

 

Merhaba Mladen,

Kodumdaki birkaç şeyi takip etmek istiyorum ve bunlardan biri farklı sihirli sayılara ve aynı çiftten farklı yorumlara sahip açık işlemlerin sayısıdır, bu yüzden bu kodu kullanıyorum, kodun içinde bir yerde hata yapıyorum. CPU %100 olduğu için fonksiyonlarımı geliştirmeye çalışıyorum. Aşağıdaki onlardan biri, lütfen yöntemim için daha iyi bir alternatif önerebilir misiniz?

x=OrdersTotal(); xx=x; //-- Count How magic number && comment are open for the same pair for( i=0;i<x;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym /*&& OrderCloseTime()==0 */){

TemMagic= OrderMagicNumber(); TemOrdComment= OrderComment(); OrdOpenPrice= OrderOpenPrice(); OrdType= OrderType(); iSameSymTotal++; // count all oopen trades from the same Symbol for( i=0;i<xx;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym ){ if ( TemMagic!= OrderMagicNumber())CounTMagic++; if (TemOrdComment!= OrderComment())CounTComment++; }} }}
 
MiniMe:
Merhaba Mladen,

Kodumdaki birkaç şeyi takip etmek istiyorum ve bunlardan biri farklı sihirli sayılara ve aynı çiftten farklı yorumlara sahip açık işlemlerin sayısıdır, bu yüzden bu kodu kullanıyorum, kodun içinde bir yerde hata yapıyorum. CPU %100 olduğu için fonksiyonlarımı geliştirmeye çalışıyorum. Aşağıdaki onlardan biri, lütfen yöntemim için daha iyi bir alternatif önerebilir misiniz?

x=OrdersTotal(); xx=x; //-- Count How magic number && comment are open for the same pair for( i=0;i<x;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym /*&& OrderCloseTime()==0 */){

TemMagic= OrderMagicNumber(); TemOrdComment= OrderComment(); OrdOpenPrice= OrderOpenPrice(); OrdType= OrderType(); iSameSymTotal++; // count all oopen trades from the same Symbol for( i=0;i<xx;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym ){ if ( TemMagic!= OrderMagicNumber())CounTMagic++; if (TemOrdComment!= OrderComment())CounTComment++; }} }}[/PHP]

Bize bunun gibi bir kod (nelerin nerede saklandığını netleştirmek için bazı yorumlar eklendi):

[PHP] dize benzersizleri[][4]; ArrayResize(benzersizler,0);

//

//

// benzersizler[][0] -> Sembol

// benzersizler[][1] -> Sihirli sayı

// benzersizler[][2] -> Yorum

// benzersizler[][3] -> Oluşma sayısı

// StrToInt() kullanılarak int'ye dönüştürülmesi gerekiyor

//

//

for( int i=SiparişlerToplam()-1; i>=0; i--)

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES);

bool bulundu=yanlış;

for (int k=ArrayRange(uniques,0)-1; k>=0 && !found; k--)

if (OrderSymbol() == uniques[k][0] && OrderMagicNumber() == StrToInteger(uniques[k][1]) && OrderComment() == uniques[k][2]) { uniques[k][ 3] = StrToInteger(benzersiz[k][3])+1; bulunan=doğru; }

Eğer bulunursa)

{

k = ArrayRange(benzersizler,0);

ArrayResize(benzersizler,k+1);

benzersizler[k][0] = OrderSymbol();

benzersizler[k][1] = OrderMagicNumber();

uniques[k][2] = OrderComment();

benzersizler[k][3] = 1;

}

}

Not: dizinin kendisinin boyutu (ArrayRange(uniques,0)), benzersiz sembol + sihirli sayı + yorum kombinasyonlarının sayısıdır ve uniques[nn][3], o belirli kombinasyon için kaç tane oluşum olduğunu gösterir. sipariş kuyruğu

 

Çok teşekkürler Mladen,

Eğer birden fazla ticaretim olup olmadığını söylemek istersem, bu if (uniques[1][3] == 1) olur, doğru mu?

ancak bu derlenmiyor, bunun nedeni benzersizlerin[1][3] bir dize dizisi olması mı?

Olmalı mı

if (StrToInteger(uniques[1][3])==1) ?

 
MiniMe:
Çok teşekkürler Mladen,

Eğer birden fazla ticaretim olup olmadığını söylemek istersem, bu if (uniques[1][3] == 1) olur, doğru mu?

ancak bu derlenmiyor, bunun nedeni benzersizlerin[1][3] bir dize dizisi olması mı?

Olmalı mı

if (StrToInteger(uniques[1][3])==1) ?

evet, önce onu tamsayıya çevirmelisiniz. Ama o zaman koşul şöyle olurdu: if (StrToInteger(uniques[1][3])>1) ve bulunan ikinci sembol + sihirli sayı + yorum benzersiz kombinasyonu için olurdu

 

Merhaba Mladen,

Bu Demark'ın sırasına sahibim... ama geri sayım aşamasında yanlış.

Bu Jason Perl'in kitabından tam açıklama:

tD Kurulumu ve tD Sıralı geri sayım

TD Kurulumu tamamlandıktan sonra, TD Geri Sayımı, kapanıştan itibaren başlayabilir.

TD Setup'ın (dahil) dokuzuncu çubuğunun ilerisi. arasındaki ayrım

iki strateji şudur:

• TD Setup, mevcut kapanışı ilgili kapanışla karşılaştırır

dört bar daha erken,

Halbuki

• TD Countdown, mevcut kapanışı düşük iki çubukla karşılaştırır

potansiyel bir satın alma için daha erken ve mevcut kapanışı şu anki kapanışla karşılaştırır

olası bir satış için iki bar daha erken. Bu fiyat ilişkisi

TD Setup'tan önemli bir ayrım, çünkü pazarın

olası sorunları objektif olarak belirlemek için TD Countdown için trend olun

Trend dönüşü için tükenme noktası.

Bir TD Buy Countdown'ın ilk çubuğunu aramaya başlayabilirsiniz.

bir TD Satın Alma Kurulumu yapıldığında.

■ TD Satın Alma Geri Sayımını Başlatmak İçin

Sonrasında

TD Satın Alma Kurulumu tamamlandı, bir TD Satın Alma Geri Sayımının başlamasını bekleyin.

Eğer

Bir TD Satın Alma Kurulumunun dokuzuncu çubuğu ayrıca düşük iki çubuktan daha az veya ona eşit bir kapanışa sahiptir

daha erken

Sonra,

Bir TD Satın Alma Kurulumunun dokuzuncu sütunu, bir TD Satın Alma Geri Sayımının birinci çubuğu olur.

Eğer

Bu şart sağlanmadı,

Sonra

TD Satın Alma Geri Sayımı çubuğu, gerçekleşene kadar ertelenir ve TD Satın Alma Geri Sayımı

her biri şundan küçük veya eşit olan toplam on üç kapanış olana kadar devam eder:

düşük iki bar daha önce.

tD Satış geri sayımı

Bir TD Satış Kurulumu yapılır yapılmaz, ilkini aramaya başlayabiliriz.

aTD Satış Geri Sayımı çubuğu; aTD Satış Kurulumunun dokuzuncu çubuğu da çubuk olabilir

Aşağıdaki koşulları karşılıyorsa, bir TD Satış Geri Sayımından biri.

■ TD Satış Geri Sayımı Gereksinimi

TD Satış Kurulumunun dokuzuncu çubuğu yerindeyken, şu değerden daha büyük bir kapanış olmalıdır veya

önceki yüksek iki bara eşit.

Benim resmimde (geri sayım satışı için) 6. barın önceki iki bardan daha büyük bir kapanışa sahip olmadığını görebilirsiniz.... yani bu yanlış!

Lütfen geri sayım alım satım için bu hatayı düzeltir misiniz?

şimdiden teşekkürler

Dosyalar:
 

Hatayı buldum (mt4'ün 500 sürümü ex4 dosyalarını oluşturmuyor), şimdi çalışıyor. Gönderiyi silmeye çalıştım ama yapamadım

marley60:
merhaba,

Umarım bana bu konuda yardımcı olabilirsiniz. İkinci penceredeki noktaların (oklar; su&sarı) birinci pencerede (ana grafik penceresi) kapanışta (veya satın alma sinyali için yüksek/satış sinyali için düşük) noktalar (oklar) olarak gösterilmesini istiyorum. Saatlerce denedim ama asla kodlayıcı olmayacağım ;-)

 
marley60:
Hatayı buldum (mt4'ün 500 sürümü ex4 dosyalarını oluşturmuyor), şimdi çalışıyor. Gönderiyi silmeye çalıştım ama yapamadım

Önceki gönderi için endişelenme

En azından yapı 500'de bir hata daha biliyoruz

 

Hey millet!

Biraz yardım istemekle daha özlü ve etkili olmak amacıyla sorunumu açıklayan 3 dakikalık bir video hazırladım!

Video: 2013-06-13_1517 - D.Gilberto'nun kütüphanesi - bunu net bir şekilde açıklamalı!

Herhangi birinin önerilerini veya yardımını çok takdir ediyorum. Temel olarak, tüm hareketli ortalamaların kesiştiği anda, bunu takip eden bir sonraki çubuklar 21 EMA'ya dokunmak için geri geldiğinde çubuğun ne olduğunu öğrenmek istiyorum - Bu noktada siparişimin verilmesini istiyorum. bu çubuk aralıklarının yüksek/düşük değeri. 60 EMA'yı geçmek için sipariş ilk çubukta çekilmelidir...

Umarım bu çok fazla bir şey değildir ve bana el uzatan parlak bir kıvılcım için çok minnettar olurum!

Teşekkür ederim!

 

kodlayıcılar

Resimdeki RSI'ye dayalı bu basit stratejiyi beğendim (TS'den olabilir)

Güzel ve basit ve henüz etkili Daha fazla açıklamaya gerek yok, bir resim bin kelimeye bedeldir!

MT4 için bu tür göstergeleri (RSI mumları ve osilatör) kodlamak mümkün müdür? ya da zaten böyle göstergelerimiz var!

teşekkürler

Dosyalar:
 
marley60:
Hatayı buldum (mt4'ün 500 sürümü ex4 dosyalarını oluşturmuyor), şimdi çalışıyor. Gönderiyi silmeye çalıştım ama yapamadım

marley,

Metatrader Bilinen Hatalar altındaki gönderime bakın. Ben ve birkaç kişi daha aynı sorunu yaşadık

Tzuman