[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 53

 

Expert Advisor'da bir baskı yazdığımda böyle bir nüans fark ettim, yani:

double Up = iCustom(NULL, 0, "en iyi div orijinal", "*** CCI-OnArray Ayarları ***", 12, 3, 5, 25, "*** Gösterge Ayarları ***", false, false , yanlış, 0, 1);

Yazdır ("++++++++++++++", Yukarı);

daha sonra EA aşağıdaki sonucu verir - ++++++++++++++ 2147483647. Ayrıca, hem arabellek yukarı hem de arabellek aşağı için aynı sayı. Söyle bana bu kod nedir? Ve tam olarak ok göründüğünde Ikastom'dan değer nasıl "alılır"?

 

Bilgili kişilerden biraz yardım etmelerini istiyorum: Algoritması aşağıdaki gibi olan bir Expert Advisor / Utility oluşturmak için bana doğru kodu söyleyin:

- ONE SIDE'de (0.1 ve 0.1 lotları) çifte işlem açmak, mevcut grafikte/mevcut zaman diliminde en son oluşan mumun en düşük (sat)/yüksek (al) seviyesini yüksekte bir duruşla geçtiği anda yapılır/ aynı mumun düşük alanı, kesiştiği noktada mumun bu ticareti açtığı ve aynı noktada örneğin 0.2 ve 0.1 lotlarla bir yönde bekleyen bir çift ticaret emri yerleştirme.

 

Soru:

bir kod var

int başlangıç()

if (H==TimeHour( TimeCurrent() ) && M==TimeMinute(TimeCurrent()) && S==TimeSeconds(TimeCurrent()))

{+ bazı koşullar

Sonra sipariş açılır

Ticket=SiparişGönder(Symbol(),OP_BUY,Lots,Ask,2,SL,TP);
eğer (Bilet > 0)
Alert("Sipariş açık",Bilet);

dönüş;}

Ama şu anda kene yoksa, çalışmıyor

ve ona düşünmesi için daha fazla zaman verirseniz, birkaç emir açabilir.

Ama sadece bir taneye ihtiyacım var ve bu zaten açık olan emirlere dikkat etmeyecek.

Bana ne yapacağımı söyle

 
v2812 :

Expert Advisor'da bir baskı yazdığımda böyle bir nüans fark ettim, yani:

double Up = iCustom(NULL, 0, "en iyi div orijinal", "*** CCI-OnArray Ayarları ***", 12, 3, 5, 25, "*** Gösterge Ayarları ***", false, false , yanlış, 0, 1);

Print("++++++++++++++", Yukarı);

daha sonra EA aşağıdaki sonucu verir - ++++++++++++++ 2147483647. Ayrıca, hem arabellek yukarı hem de arabellek aşağı için aynı sayı. Söyle bana bu kod nedir? Ve tam olarak ok göründüğünde Ikastom'dan değer nasıl "alılır"?


Gösterge değerlerini iCustom() aracılığıyla değil, genel terminal düzeyi değişkenleri aracılığıyla iletmeyi deneyin. Bunlar F3 tarafından görüntülenebilenlerdir. Gerçek şu ki, veri aktarmanın tek normal yolu bu olduğunda durumlar nadir değildir. Bende bunlar vardı.

Göstergenizde, bazı ok türlerinin gösterge tamponu boyunca çizilmesi, bazılarının ise nesne olarak oluşturulması oldukça olasıdır. Bu, veri penceresinde herhangi bir ok ayar fiyatları olmamasının tek nedenidir - veriler bu pencereye gösterge arabelleklerinden gönderilir.

 
palesandr :

Soru:

bir kod var

int başlangıç()

if (H==TimeHour(TimeCurrent()) && M==TimeMinute(TimeCurrent()) && S==TimeSeconds(TimeCurrent()))

{+ bazı koşullar

Sonra sipariş açılır

Ticket=SiparişGönder(Symbol(),OP_BUY,Lots,Ask,2,SL,TP);
eğer (Bilet > 0)
Alert("Sipariş açık",Bilet);

dönüş;}

Ama şu anda kene yoksa, çalışmıyor

ve ona düşünmesi için daha fazla zaman verirseniz, birkaç emir açabilir.

Ama sadece bir taneye ihtiyacım var ve bu zaten açık olan emirlere dikkat etmeyecek.

Bana ne yapacağımı söyle


Danışman kodu YALNIZCA yeni bir onay işareti geldiğinde çalışır. Birden fazla emir açılır çünkü bir sonraki tıklamada ayarlanan sinyal de doğrudur ve emir sayısı için bir kontrol yoktur. Siparişlerin sayılması gerekiyor.
 
drknn :


Gösterge değerlerini iCustom() aracılığıyla değil, genel terminal düzeyi değişkenleri aracılığıyla iletmeyi deneyin. Bunlar F3 tarafından görüntülenebilenlerdir. Gerçek şu ki, veri aktarmanın tek normal yolu bu olduğunda durumlar nadir değildir. Bende bunlar vardı.

Göstergenizde, bazı ok türlerinin gösterge tamponu boyunca çizilmesi, bazılarının ise nesne olarak oluşturulması oldukça olasıdır. Bu, veri penceresinde herhangi bir ok ayar fiyatları olmamasının tek nedenidir - veriler bu pencereye gösterge arabelleklerinden gönderilir.


Çok teşekkürler! Şimdi dediğiniz gibi yazmaya çalışacağım.
 
palesandr :
Ama şu anda kene yoksa, çalışmıyor

ve ona düşünmesi için daha fazla zaman verirseniz, birkaç emir açabilir.

Ama sadece bir taneye ihtiyacım var ve bu zaten açık olan emirlere dikkat etmeyecek.

Bana ne yapacağımı söyle


1. global tarihsaat last_dt;


2. doğru zamanı yapın

tarihsaat dt=StrToTime(H+":"+M+":"+S);


3.

if (TimeCurrent()>=dt && last_dt<dt) // doğru zaman ve ertesi gün

{

// açık sipariş

if (bilet>0) last_dt=TimeCurrent(); // açılış saatini hatırla

}

 
v2812 :

daha sonra EA aşağıdaki sonucu verir - ++++++++++++++ 2147483647. Ayrıca, hem arabellek yukarı hem de arabellek aşağı için aynı sayı.

2147483647 - - bu, EMPTY_VALUE sabitidir
 

Anladım.

Siparişlerin yeniden hesaplanması konusunda daha spesifik olmam gerekiyor. Belki bir örnek (kod biçiminde) veya bir bağlantı.

böyle denedim

eğer (Bilet > 0)
Alert("Sipariş açık",Bilet);

uyku (10000)
dönüş;}

neden işe yaramadı

drknn :

Danışman kodu YALNIZCA yeni bir onay işareti geldiğinde çalışır. Birden fazla emir açılır çünkü bir sonraki tıklamada ayarlanan sinyal de doğrudur ve emir sayısı için bir kontrol yoktur. Siparişlerin sayılması gerekiyor.
 

Programın tarihe dikkat etmemesine ihtiyacım var, sadece saat önemli

tavsiyeniz bu durumda işe yarar mı?

sergeev :


1. global tarihsaat last_dt;


2. doğru zamanı yapın

tarihsaat dt=StrToTime(H+":"+M+":"+S);


3.

if (TimeCurrent()>=dt && last_dt<dt) // doğru zaman ve ertesi gün

{

// açık sipariş

if (bilet>0) last_dt=TimeCurrent(); // açılış saatini hatırla

}

Neden: