Hatalar, hatalar, sorular - sayfa 1521
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
IsStopped işlevinin yardımı, mql programının yürütülmesini sonlandırmak için bir komut alındığında, programın 3 saniye sonra zorla sonlandırıldığını söylerken.
Ayrıca while(true) yerine while(!IsStopped()) getirilirse, gösterge grafikten kaldırıldığında işini başarıyla tamamlar.
Temiz. Her zamanki kaldırma için bir hoşgörü yaptılar.
Terminali kapattığınızda her şey zor olacak. 3 saniyeden fazla değil.
Ve bunu belgelere yazacağımızdan emin değilim, 1. Bu kadar çılgın göstergeler yazmakla uğraşmamak (kontrol etmek için mi yazdınız?) 2. Hem zayıfladı hem de sıkılaştı.
Dahili Derleyici Hatasının komik nedeni (göstergede kullanılan işlev):
...Tedavi açıktır, ancak katılıyorum - çok komik bir aksaklık. :)))
Sana özel mesaj yazdım.
Dmitri Custurov :
Здравствуйте. Не получается написать код, который открывал бы позицию через n- количество баров после открытия предыдущей позиции. Пробовал использовать Time[i], iBarShift, iTime. Все безуспешно. В программировании новичок. Поиск ничего не дал.
İşte kod:
if (( OrderSelect (0,SELECT_BY_POS,MODE_TRADES)==Yanlış)&&(Sinyal==1))Zamanlayıcı=Zaman[0];}
TimerNull=iBarShift(NULL,0,Zamanlayıcı,yanlış);
if ((TimerNull>=n)&&(z==1))
{int send2=OrderSend(Symbol(), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red);
z=2;}
Ayrıca şöyle denedim:
Zamanlayıcı=Zaman[0];}
TimerNull=Zaman[0];
if ((TimerNull>=(Timer+2700))&&(z==1)) //Örnek olarak burada n yerine 2700 saniye koydum, bu test sırasında 3 15 dakikalık mum anlamına geliyordu) {int send2= OrderSend(Symbol( ), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red);
z=2;}
Ve ayrıca şöyle:
Zamanlayıcı=Zaman[0];}
TimerNull=Zaman[0];
if ((CurrentTime()>=(Timer+2700))&&(z==1))
{int send2=OrderSend(Symbol(), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red); //Bu durumda, 2700'ü kaldırdığımda, aynı çubukta ilkinden hemen sonra ikinci anlaşma açıldı ve bu mantıklı. Ve 2700 yerine 600'e kadar herhangi bir sayı koyduğumda bile aynı barda ikinci anlaşma da açıldı. Değer 600'den büyükse, ikinci ticaret hiç açılmadı. Sorunun ne olduğunu anlayamıyorum. Yardımın için çok minnettar olacağım.
Timer ve TimerNull parametreleri tarih saat biçimindedir.
Örneğinizde, örneğin pozisyonlar için numaralandırma yok
if (( OrderSelect (0,SELECT_BY_POS,MODE_TRADES)==Yanlış)&&(Sinyal==1))
bu yüzden her zaman 0 konumunu seçer.
Temiz. Her zamanki kaldırma için bir hoşgörü yaptılar.
Terminali kapattığınızda her şey zor olacak. 3 saniyeden fazla değil.
Ve bunu belgelere yazacağımızdan emin değilim, 1. Bu kadar çılgın göstergeler yazmakla uğraşmamak (kontrol etmek için mi yazdınız?) 2. Hem zayıfladı hem de sıkılaştı.
Peki, şimdiden sıkın veya sertifikayı düzeltin. Kendini şımartmamak, şımartmamak ciddi bir konuşma değildir. Programcılar sizden "vesayet" değil, anlaşılır, iyi belgelenmiş yazılımlar bekler.
Tabii ki, bu kodun sizin istediğiniz gösteriden başka bir amacı yoktur. Ve bu oldukça zararsızdır, Uyku'yu kaldırırsanız ve Yorumu Yazdır ile Değiştirirseniz çılgına döner. Dördünde veya beşinde günlüğe yazılan gigabaytlarca istenmeyen postaya karşı koruma yoktur.
İşte kod:
if ((OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==Yanlış)&&(Sinyal==1))Zamanlayıcı=Zaman[0];}
TimerNull=iBarShift(NULL,0,Zamanlayıcı,yanlış);
if ((TimerNull>=n)&&(z==1))
{int send2=OrderSend(Symbol(), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red);
z=2;}
Ayrıca şöyle denedim:
Zamanlayıcı=Zaman[0];}
TimerNull=Zaman[0];
if ((TimerNull>=(Timer+2700))&&(z==1)) //Örnek olarak burada n yerine 2700 saniye koydum, bu test sırasında 3 15 dakikalık mum anlamına geliyordu) {int send2= OrderSend(Symbol( ), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red);
z=2;}
Ve ayrıca şöyle:
Zamanlayıcı=Zaman[0];}
TimerNull=Zaman[0];
if ((CurrentTime()>=(Timer+2700))&&(z==1))
{int send2=OrderSend(Symbol(), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red); //Bu durumda, 2700'ü kaldırdığımda, aynı çubukta ilkinden hemen sonra ikinci anlaşma açıldı ve bu mantıklı. Ve 2700 yerine 600'e kadar herhangi bir sayı koyduğumda bile aynı barda ikinci anlaşma da açıldı. Değer 600'den büyükse, ikinci ticaret hiç açılmadı. Sorunun ne olduğunu anlayamıyorum. Yardımın için çok minnettar olacağım.
Timer ve TimerNull parametreleri tarih saat biçimindedir.
İşte olası bir uygulama. bu EA, belirtilen çubuk sayısından sonra bir sipariş açmalıdır. Ve mesaj panelindeki SRC düğmesi olan danışman kodunun nasıl doğru şekilde ekleneceğini öğreniyoruz.
111
Muhtemelen, Freelance hizmetinin site geliştiricilerine veya yöneticilerine soru
---
Önce: 568 iş tamamlandı, %75 kişisel
13 eser eklendi (tümü kişisel) ve şu hale geldi: 581 tamamlandı, %75 kişisel
---
Bu nedenle soru şu: deşifre plz, %75 ne anlama geliyor?