[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 370

 
Bion >> :

Önerdiğin gibi yaptın

tarihsaat LastTime;
tarihsaatDuraklatma=3600;

int başlangıç()
{
if(TimeCurrent()<LastTime+Pause)return(0);

...

bool cl() {if (OrderSelect(0,SELECT_BY_POS)==true){ int t=OrderType();
çift l=SiparişLotları();
int tik=OrderTicket();Alert("tik=", tik);
}
if (t==OP_BUY) OrderClose(tik,l,Bid,3,Red);
if (t==OP_SEL) OrderClose(tik,l,Ask,3,Green);
LastTime=TimeCurrent();
}

Yine de test cihazına tepki vermiyor, duruma göre sırayla hepsini sırayla açıyor ama aynı zamanda zamana tepki vermiyor.

Ve test cihazında bekleyen sipariş ömrü parametresi yanıt vermiyor, yani ayrılma zamanı geldiğinde silinmiyor.

Bu böyle mi olmalı?

Testin, sipariş kapatıldıktan sonra geçen sürenin parametresini hesaba katması nasıl sağlanır?


Öncelikle şunu söylemek isterim ki, bir kapanış fonksiyonu oluşturduğunuz için ondan bir değer döndürmek güzel olurdu, eğer fonksiyon Boolean türünde bir değer döndürürse başarılı olursa, bir değere bir değer atayabilirsiniz. global değişken, tabi ki if altında değişken bildirmek de bir şekilde endişe verici, ama bu sizin işiniz .... bu arada bu böyle))) Ve kodunuzdan konuyla ilgili değil Bu fonksiyonun ne zaman çağrıldığını görebilirsiniz. ve çağrılıp çağrılmadığı. Sonuçları bir günlük dosyasına girerek hata ayıklamayı deneyin, hemen anlayacaksınız.
 

İşte kodun tamamı, tüm fonksiyonları kaldırdım, değişkenleri olması gerektiği gibi bildirdim, ancak sonuç hala aynı - test modunda bir süre tepki vermiyor, aynı çubukta ekstra siparişler oluşturuyor.

Ne istiyor?


çift q0=0;
çift q1=0;
çift q2=0;
çift q3=0;
tarihsaat LastTime;
tarihsaatDuraklatma=3600;
int tipi, tik;
çift l;

int başlangıç()
{

tarihsaat t=Saat();

eğer (t==8) {q0=0; q1=0; q2=0; q3=0;}

eğer (t>=9) {

int i0=0;
while (q0==0) { q0=iCustom(NULL,0,"MorningFlat_V3",0,15,8,45,161.8,Turkuaz,Kırmızı,Altın, Gümüş,0,i0); i0++; }

int i1=0;
while (q1==0) { q1=iCustom(NULL,0,"MorningFlat_V3",0,15,8,45,161.8,Turkuaz,Kırmızı,Altın, Gümüş,1,i1); i1++; }

int i2=0;
while (q2==0) { q2=iCustom(NULL,0,"MorningFlat_V3",0,15,8,45,161.8,Turkuaz,Kırmızı,Altın, Gümüş,2,i2); i2++; }

int i3=0;
while (q3==0) { q3=iCustom(NULL,0,"MorningFlat_V3",0,15,8,45,161.8,Turkuaz,Kırmızı,Altın, Gümüş,3,i3); i3++; }


Comment("g0=",q0, "\n","g1=",q1, "\n", "g2=",q2, "\n", "g3=",q3 ); }

double os0=iOsMA(NULL,0,5,26,9,4,0);

çift os1=iOsMA(NULL,0,5,26,9,4,1);

// buradan izle


if(TimeCurrent()<(LastTime+Pause))return(0);

if ( OrdersTotal()==0 ) { if (Bid>q0 && t>=9 && t<=20 && os1>0) OrderSend(Symbol(),OP_BUY,0.1,Ask,3,(Bid-30*Point ),0,"__",555,0,Kırmızı );

if (Ask<q1 && t>=9 && t<=20 && os1<0) OrderSend(Symbol(),OP_SELL,0.1,Bid,3,(Ask+30*Puan),0,"__",444, 0,Yeşil);}

if (OrdersTotal()==1) {OrderSelect(0,SELECT_BY_POS);
tip=SiparişTürü();
tik=SiparişTicket();
l=SiparişLotları();
if (typ==OP_BUY && os1<0) { LastTime=TimeCurrent(); SiparişKapat(tik,l,Teklif,3,Kırmızı);}
if (typ==OP_SELL && os1>0) { LastTime=TimeCurrent();OrderClose(tik,l,Ask,3,Green);}

}

dönüş(0);
}
//+------------------------------------------- --------------------+

 

Merhaba.

Uzmanlara soru -

Durum şudur: Expert Advisor demo hesabında takılır, Fiyatlar geçer, fiyatlar değişir, ancak Expert Advisor bir süre ticareti durdurur, logda bir hata oluşur:


2009.12.30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:08 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:12 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:13 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok

Çift - USDCAD


Hata çıkışı 2009.12.30'da başlıyor 16:46:06 y'de duruyor

2009.12.30 17:29:58 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 128. İşlem zaman aşımı süresi doldu

Katılıyorum, 43 dakika önemlidir, daha da kötüsü - uzmanın çalışmasının algoritmasını bozar.

Daha da ilginç olanı, OP_BUYSTOP :-0 siparişini göndermeye çalışırken oluşan bir hatadır (bekleme için teklifler neler olabilir?)


136 FİYAT YOK = İNDİRİMLİ TEKLİFLER:


Ekranda sürekli değişiyorsa neden fiyatlar yok?


Sorun burada https://www.mql5.com/en/forum/105903/page2 saygın bir goldtrader tarafından gündeme getirildi, ancak hiçbir zaman resmi olarak çözülmedi (umarım bu konu, önünde tartışmak istemeyen bir TABOO değildir. herkesin)


"Neden öyle" ve "Bu tür hataları nasıl önleyebilirim veya nasıl çözebilirim" bilmek istiyorum


Cevabınız için şimdiden teşekkür ederiz.

 
AndBar >> :

Merhaba.

Uzmanlara soru -

Durum şudur: Expert Advisor demo hesabında takılır, Fiyatlar geçer, fiyatlar değişir, ancak Expert Advisor bir süre ticareti durdurur, logda bir hata oluşur:


2009.12.30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:08 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:12 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok
2009.12.30 16:46:13 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 136. Fiyat yok

Çift - USDCAD


Hata çıkışı 2009.12.30'da başlıyor 16:46:06 y'de duruyor

2009.12.30 17:29:58 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Hata kodu = 128. İşlem zaman aşımı süresi doldu

Katılıyorum, 43 dakika önemlidir, daha da kötüsü - uzmanın çalışmasının algoritmasını bozar.

Daha da ilginç olanı, OP_BUYSTOP :-0 siparişini göndermeye çalışırken oluşan bir hatadır (bekleme için teklifler neler olabilir?)


136 FİYAT YOK = İNDİRİMLİ TEKLİFLER:


Ekranda sürekli değişiyorsa neden fiyatlar yok?


Sorun burada https://www.mql5.com/ru/forum/105903/page2 saygın bir goldtrader tarafından gündeme getirildi, ancak hiçbir zaman resmi olarak çözülmedi (umarım bu konu, önünde tartışmak istemeyen bir TABOO değildir. herkesin)


"Neden böyle" ve "Bu tür hataları nasıl önleyebilirim veya nasıl çözebilirim" bilmek istiyorum.

ve hangi platform revizyonu?

Burada farklı veri akışları hakkında bir kereden fazla tartışıldı. Akış otomatik ticaret için kapatıldı. Görünüşe göre.

 
AndBar писал(а) >>

136 FİYAT YOK = İNDİRİMLİ TEKLİFLER:

Bu genellikle haber bültenlerinden önce olur. Önceden sipariş vermek ve mümkünken fiyattan sonra çekmek dışında hiçbir şey yapılamaz. 43 dakika çok uzun.

 
Bion писал(а) >>

İşte kodun tamamı, tüm fonksiyonları kaldırdım, değişkenleri olması gerektiği gibi bildirdim, ancak sonuç hala aynı - test modunda bir süre tepki vermiyor, aynı çubukta ekstra siparişler oluşturuyor.

Soru kapandıktan sonra bir duraklama hakkındaydı. Kapattıktan sonra bir duraklama olacaktır.

-

Bir çubukta birkaç açıklık. Açıldıktan sonra barın saatini hatırlamanız gerekir ve açmadan önce barın saatinin son açılış saatine eşit olmadığını kontrol edin. Bu zamanı hatırlamak için GlobalVariable kullanmak daha iyidir.

-

Tüm while (q0==0 && i<Bars ) öğesine bir süre denetimi eklemekten zarar gelmez.

-

LastTime=TimeCurrent(); - bunu siparişin gerçekten kapandığını kontrol ettikten sonra yapmak daha iyidir: if(OrderClose(...))LastTime=TimeCurrent();

 
Integer писал(а) >>

Soru kapandıktan sonra bir duraklama hakkındaydı. Kapattıktan sonra bir duraklama olacaktır.

-

Bir çubukta birkaç açıklık. Açıldıktan sonra barın saatini hatırlamanız gerekir ve açmadan önce barın saatinin son açılış saatine eşit olmadığını kontrol edin. Bu zamanı hatırlamak için GlobalVariable kullanmak daha iyidir.

-

Tüm while (q0==0 && i<Bars ) öğesine bir süre denetimi eklemekten zarar gelmez.

-

LastTime=TimeCurrent(); - bunu siparişin gerçekten kapandığını kontrol ettikten sonra yapmak daha iyidir: if(OrderClose(...))LastTime=TimeCurrent();

Ders kitabından - GV değişkeni yalnızca double tipine sahip olabilir - oraya saniye sayısı nasıl yazılır

Siparişin kapanışını kontrol ettim ama hala çalışmıyor, hala bir hata var.


if(Zaman[0]<(Son Zaman+Duraklat))dönüş(0);

if ( OrdersTotal()==0) { if (Bid>q0 && t>=9 && t<=20 && os1>0) OrderSend(Symbol(),OP_BUY,0.1,Ask,3,(Bid-30*Point) ),0,"__",555,0,Kırmızı );

if (Ask<q1 && t>=9 && t<=20 && os1<0) OrderSend(Symbol(),OP_SELL,0.1,Bid,3,(Ask+30*Puan),0,"__",444, 0,Yeşil);}

if (OrdersTotal()==1) {OrderSelect(0,SELECT_BY_POS);
tip=SiparişTürü();
tik=SiparişTicket();
l=SiparişLotları();
if (typ==OP_BUY && os1<0) if (OrderClose(tik,l,Bid,3,Red)) LastTime=Zaman[0];
if (typ==OP_SELL && os1>0) if (OrderClose(tik,l,Ask,3,Green)) LastTime=Time[0];
}

Bir sonraki siparişin açılmasını bir önceki siparişin başarılı bir şekilde uygulanmasından sonra bir saat geciktirme görevinin nerede olduğu bir örnek verebilir veya bir bağlantı verebilir misiniz;

 
Bion писал(а) >>

Ders kitabından - GV değişkeni yalnızca double türüne sahip olabilir - oraya saniye sayısı nasıl yazılır

AAA, o zaman, her şeyi unutun ve eğlenceli bir yeni yılla tanışın!

Hepsi geliyor!

 
Bir göstergeyle çalıştım, her şey yolundaydı, sonra zaman çerçevesini değiştirirken terminal donmaya başladı, Windows'u yeniden yükledi, hala donuyor. Niye ya(((((((((((((
 
Fosfalugel писал(а) >>
Bir göstergeyle çalıştım, her şey yolundaydı, sonra zaman çerçevesini değiştirirken terminal donmaya başladı, Windows'u yeniden yükledi, hala donuyor. Niye ya(((((((((((((

Gösterge muhtemelen kaldırılmalıdır. Veya Noel Baba'ya sorun. Yılbaşı bugün.

Neden: