MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 282
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
geçersiz OnTick() { int nokta = 15; int zaman = geri dönüş(dönem, 1).curtime; Print("timeis= ", TimeToStr(timeis,TIME_SECONDS)); Burada işaretçiyi yok etmeye çalışıyorum. }
Her nasılsa burada tam olarak neyin yok edilebileceği belli değil. Hafıza sızıntılarına şaşmamalı. işaretçi nedir? İşaretçi, oluşturulan dinamik değişkenin depolandığı bellek adresine bir başvurudur. Aslında, bir sınıf değişkenine bir işaretçi elde etme prosedürünü çağırırsınız, prosedürde sınıfın bir nesnesi oluşturulur, belleğe yerleştirilir, ardından işaretçi keneler elde etmek için işleve döndürülür ve .... işlev ne zaman çıkar, yok edilir. İşaretçinin yok edildiği, ancak hafızanın temizlenmediği gerçeğine dikkatinizi çekiyorum! Ve her yeni bellek tik işaretiyle birlikte, daha fazla tüketilir! Kod revizyonunuzda bunu aşmak için, önce stenografiyi kaldırmanız ve işaretçiyi başka bir değişkene koymanız gerekir: TickReturn* temptick = returntick(period, 1);// İşaretçiyi alın ve int timeis = temptick değişkenine koyun . kurtime; // Nesneden istenen değeri işaretçi ile alın ...... delete temptick; // İşaretçiyi yok et ve belleği temizle
İşaretçiyi yok etmeden önce, silme hatasından kaçınmak için doğruluğunu kontrol etmek doğru olacaktır.
Genel olarak, sorunuzda, işaretçilerle ve özellikle sınıfla uğraşmayacağım, çünkü aslında görev çok daha basit ve sınıfın kendisini kullanmaya gerek yok. Gerekli alanlar ile bir yapı oluşturun, bu yapının türü ile bir global değişken bildirin, bu yapıdaki bilgileri her tikte güncellemek için bir fonksiyon yapın ve ondan istenenleri toplayın, çünkü değişken global olacağı için, yapmazsınız. onu işlevler aracılığıyla sürmeniz gerekir ve işaretçiler gerekli olmayacaktır.
Teşekkürler, neden indirgemeye geçtiğimi hatırladım, değişken döngülerde güncellenmiyor (peki, fonksiyonun çağrılmadığı açık) ve her hapşırma için yeni bir tane yapmanız ve sonra onu öldürmeniz gerekiyor. Genel olarak, geri dönüş işaretini anahtara çevirmek daha kolaydır.
Hesap numarasıyla sunucuya bir istek sonrası gönderin
Sunucuda, CSV dosyasındaki tüm satırlarla gelen numarayı kontrol edin ve bir eşleşme varsa, terminale yanıt olarak dosyanın bu satırından bir mesaj gönderin. Terminaldeki sunucudan gelen yanıtı okumak ve grafikte görüntülemek için kalır.
Genel olarak, bu tür şeyleri MySQL'de uygulamak bir dosyadan daha kolaydır.
Cevabın için teşekkürler, Vitaly!
Üç gündür çözmeye çalışıyorum ama şu ana kadar hiçbir şey çıkmadı (hala acemiyim - yolculuğun başında) ...
Biraz daha detaylandırabilir misin? Biraz örnekle...
Cahilliğim için özür dilerim...
Ve bir soru daha..
Ray'in seviyenin sonuna kadar (23:59) (beyaz2) mevcut fiyattan gün sonuna kadar bir çizgi çekmesini istedim, ancak günün sonuna kadar (olması gerektiği gibi) zaman çiziyor. ), ancak düzeyde değil (beyaz2), ancak grafiğin sınırına kadar derinlere iner.
Ayrıca, seviyelerin herhangi birini (red1, red2, vb.) içine kaydırıyorum, ama yine de Işın ya sonsuza kadar gidiyor ya da aşağı iniyor. Ve Işın başlangıcının her zaman Yüksek [ 0 ] ile başladığını, yani . yeni bir mumda başlangıç yeni muma geçer (yani fiyatı takip eder) yoksa Işını yalnızca bir kez mi çeker? Seviyeler CSV'den elde edilir. yardım edin lütfen...
Ve bir soru daha..
Ray'in seviyenin sonuna kadar (23:59) (beyaz2) mevcut fiyattan gün sonuna kadar bir çizgi çekmesini istedim, ancak günün sonuna kadar (olması gerektiği gibi) zaman çiziyor. ), ancak düzeyde değil (beyaz2), ancak grafiğin sınırına kadar derinlerde bırakır.
Ayrıca, seviyelerin herhangi birini (red1, red2, vb.) içine kaydırıyorum, ama yine de Işın ya sonsuza kadar gidiyor ya da aşağı iniyor. Seviyeler CSV'den elde edilir. yardım edin lütfen...
Uyarı veya Yazdır'ı kullanarak beyaz2'nin değerini bulun (kontrol belirtin).
Alert yardımı ile hemen "EURUSD Error FileOpen() yazmak için" yazdığını ve mevcut günün tüm seviyeleri kaybolduğunu... dünün ve tüm geçmişlerin kaldığını... nasıl. ama günün sonunda değil. , ancak bugün, dikey olarak aşağı, dünün beyaz2 seviyesinde durduğu görsel olarak açıktır.
Dosyaya neden erişmek istiyorsunuz? white2 değerine sahipsiniz ve kullanmadan önce bunu Uyarı ("beyaz2 = ", beyaz2) ile görüntüleyin;
Dosyaya neden erişmek istiyorsunuz? White2 değerine sahipsiniz ve kullanmadan önce Alert("white2 = ", white2); ile görüntüleyin.
Açıklama için teşekkürler.... öyle diyor: white2 = 0.0
ps Ben aptalım... white2 = 0.0, diğer döviz çiftleri için yazıyor, CSV'de bunlar üzerinde seviye yok. Ve CSV'deki EURUSD için seviyeler vardır ve Uyarı onları dün için gösterir (beyaz2 1.1720) bugün için (beyaz2 1.1810)
Işın gerekli olduğu yerden başlar, ancak dünün beyaz2 seviyesine yani 1.1720'ye gider, ancak bugün 1.1810'da olması gerekir ve günün sonunda 23:59'da bırakmaz, ancak bugün görsel olarak görülebilir ki dünün beyaz2 seviyesinde durur, yani 1.1720.
chto-anlaşılmaz
işlevi açıkladı
int Aşağıdadır
//>>>>>>>>>>>>>>>>>>>>
{
Uyarı ("Below IsBelow");
Alert("NextTick=",NextTick);
//--------------------
//--------------------
Alert("NextTick=",NextTick);
Alert("Bitti Bitti");
}
//>>>>>>>>>>>>>>>>>>>>>>
işlev gövdesi noktalı virgülden önce bir mesaj aldı {
Soru şu noktalı virgül bekleniyor?
açıkla lütfen...
chto-anlaşılmaz
işlevi açıkladı
int Aşağıdadır
//>>>>>>>>>>>>>>>>>>>>
{
Alert("Below IsBelow");
Alert("NextTick=",NextTick);
//--------------------
//--------------------
Alert("NextTick=",NextTick);
Alert("Bitti Bitti");
}
//>>>>>>>>>>>>>>>>>>>>>>
işlev gövdesi noktalı virgülden önce bir mesaj aldı {
Soru şu noktalı virgül bekleniyor?
açıkla lütfen...
geçersiz IsBelow()
chto-anlaşılmaz
işlevi açıkladı
int Aşağıdadır
//>>>>>>>>>>>>>>>>>>>>
{
Alert("Below IsBelow");
Alert("NextTick=",NextTick);
//--------------------
//--------------------
Alert("NextTick=",NextTick);
Alert("Bitti Bitti");
}
//>>>>>>>>>>>>>>>>>>>>>>
işlev gövdesi noktalı virgülden önce bir mesaj aldı {
Soru, noktalı virgülün ne beklendiğidir?
açıkla lütfen...