[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 236

 
solnce600 :
İkili aramanın ne anlama geldiğini tam olarak anlamıyorum. İki boyutlu bir dizide bir arama mı? Ama bende bir tane var.

Henüz yapmadıysanız, diziyi sıralamak ve init() içindeki doğru hazırlığı kontrol etmek için, içeriğini yazdırın, belki ilk 20-50 öğe dışında hepsini değil.

PS İkili ve iki boyutluluğun özdeşliğini görüyor musunuz??? Terminal, numaralarınızı "ikili" kodda görür ve ArrayBsearch() işlevinin doğru çalışması için dizinin ön sıralamasını gerektirir.

 
TarasBY :

Orada bir şey gördün mü???

ArrayBsearch() EVERYWHERE işlevinin 0 (öğenin dizini olarak) döndürdüğünü görüyorum. 1.0408 sayısı dizinizin 0. hücresindedir. Koda dönelim:

Şimdi değişkenlerin elde edilen değerlerini bu koşula değiştiriyoruz (resimde Teklif 0.8-0.9 içinde, bu aralığın maksimumunu alalım - 0.9): if (0.9000 - 1.0408 <= 0) OrderSend(). Koşul DOĞRU yerine getirilir !!! Dizinizi doldururken hataları arayın. Muhtemelen ArrayBsearch() fonksiyonunun bu noktasına dikkat etmemişsinizdir:

Not : ikili arama yalnızca sıralanmış dizileri işler. Sayısal bir diziyi sıralamak için ArraySort() işlevini kullanın.

PS Print'in bir resim olarak değil, aynı anda birkaç satırı seçerek (SHIFT kullanarak - bunu nasıl yapacağınızı bilmiyorsanız), terminal penceresinde bu baskının (10-20 satır yeterlidir) sağlanması istenir, ardından seçimi kopyalayıp gönderinize SRC düğmesini kullanarak kod olarak yapıştırın.

Sorunun ArrayBsearch() işlevinde olduğunu anladım

Ancak, bu işlevin neden değer değerine en yakın değere sahip dizinin tek bir N öğesini hemen döndürmemesi gerektiğini hala anlamıyorum.

Masif[S-1] ve masif[S+1] neden hesaplamalara dahil oluyor?

 
solnce600 :

Sorunun ArrayBsearch() işlevinde olduğunu anladım

Ancak, bu işlevin neden değer değerine en yakın değere sahip dizinin tek bir N öğesini hemen döndürmemesi gerektiğini hala anlamıyorum.

Masif[S-1] ve masif[S+1] neden hesaplamalara dahil oluyor?

Sorun ArrayBsearch() işlevinde değil, bu işleve iletilen dizinin hazırlanmasındadır!!!

Ve sonra sadece bir "fantezi uçuşu" oldu ... Hayal gücünüz ...

ArrayBsearch() işlevi YALNIZCA değeri döndürür ve kodun çarpıklığının nedenini bulmak için değerleri yazdırdım: (sırasıyla) dizi hücresinin değeri S indeksli (ArrayBsearch( tarafından döndürüldü) ) fonksiyonu), verilen dizide ( masif[]) S-1 indeksli sola en yakın değer, S+1 indeksli sağa en yakın değer, emrin açıldığı andaki fiyat.

1. sınıfa geldiniz ve mezunların sınıfına göz atmaya çalışıyorsunuz... Sınıfınıza geri dönün!!! - benzetme. :))

 
TarasBY :

Sorun ArrayBsearch() işlevinde değil, bu işleve iletilen dizinin hazırlanmasındadır!!!

Ve sonra sadece bir "fantezi uçuşu" oldu ... Hayal gücünüz ...

ArrayBsearch() işlevi YALNIZCA değeri döndürür ve kodun çarpıklığının nedenini bulmak için değerleri yazdırdım: (sırasıyla) dizi hücresinin değeri S indeksli (ArrayBsearch( tarafından döndürüldü) ) fonksiyonu), verilen dizide ( masif[]) S-1 indeksli sola en yakın değer, S+1 indeksli sağa en yakın değer, emrin açıldığı andaki fiyat.

1. sınıfa geldiniz ve mezunların sınıfına göz atmaya çalışıyorsunuz... Sınıfınıza geri dönün!!! - benzetme. :))

Her şeyi anladım Yardımınız için çok teşekkür ederim .... Her zaman biraz acelem var ve kendimin önüne geçiyorum .... Bana öyle geliyor ki genel olarak bunun eksilerden daha fazla artıları var.

Anlamadığım tek şey...

Burada diziyi 3000 değerle başlatmam gerekiyor ve bunu EXCEL kullanarak yaptım.

Bana uzun, çok adımlı ve sıkıcı bir süreç gibi geldi.

Bu süreç için daha uygun algoritmalar var mı?

Teşekkür ederim.

 
solnce600 :

EXCEL ile yaptım.


DDE aracılığıyla mı yoksa Lodyr aracılığıyla mı?

Makro yazma, geçmişe sahipse otomatikleştirir. Makro kaydı etkinken Word'de açın, orada Excel'e dönüştürün, csv'de ve DDE aracılığıyla makro olarak kaydedin. Metatrader ve metastock veri dosyalarının formatına gelince, bu benim için değil, kendim çözecek zamanım yok. Ve eğer çift dizi[3000] sıfır ise, o zaman for, ancak yanılmıyorsam sıfırlar zaten başlatıldı.

 
solnce600 :
Her şeyi anladım Yardımınız için çok teşekkür ederim .... Her zaman biraz acelem var ve kendimin önüne geçiyorum .... Bana öyle geliyor ki genel olarak bunun eksilerden daha fazla artıları var.

Anlamadığım tek şey...

Burada diziyi 3000 değerle başlatmam gerekiyor ve bunu EXCEL kullanarak yaptım.

Bana uzun, çok adımlı ve sıkıcı bir süreç gibi geldi.

Bu işlem için daha iyi algoritmalar var mı?

Teşekkür ederim.


Başlatma değerlerini içeren dosyayı gönderin..
 
gyfto :


DDE aracılığıyla mı yoksa Lodyr aracılığıyla mı?

Makro yazma, geçmişi varsa otomatikleştirir. Makro kaydı etkinken Word'de açın, orada Excel'e dönüştürün, csv'de ve DDE aracılığıyla makro olarak kaydedin. Metatrader ve metastock'un veri dosyalarının formatı benim için değil, anlamaya zaman yok. Ve eğer sıfırlarsa, o zaman için, ama yanılmıyorsam sıfırlar zaten başlatıldı.

Teşekkürler, çalışacağım ve az önce Servise gittim - çiftin geçmişini EXCEL dosyasına kaydettim.

Tüm verileri içeren tek bir sütunu sütunlara böldüm. içinde

dosya mqh dahil.

Bilgi referansları varsa. DDE veya Lodyr hakkında - lütfen verin.

Teşekkür ederim.

 
solnce600 :

Teşekkürler, çalışacağım ve az önce Servise gittim - çiftin geçmişini EXCEL dosyasına kaydettim.

Tüm verileri içeren tek bir sütunu sütunlara böldüm. içinde

dosya mqh dahil.

Bilgi referansları varsa. DDE veya Lodyr hakkında - lütfen verin.

Teşekkür ederim.



Evet, DDE veya Loafer'a ihtiyacınız yok. Bir işleve ihtiyacınız var (10 satır kod). dosyayı terminal dizinine atın ve dizi başlatılacaktır.. Dosya yapalım.
 
Dima.A. :

Evet, DDE veya Loafer'a ihtiyacınız yok. Bir işleve ihtiyacınız var (10 satır kod). dosyayı terminal dizinine atın ve dizi başlatılacaktır.. Dosya yapalım.

2 diziyi başlatmam gerekiyor

1. çift

2.tarihsaati

İlk dizide 1120 satırdan sonraki bazı değerler, ayırıcı karakteri virgülden noktaya değiştirdikten sonra bir şekilde farklı bir formata çevrildi.(Orada virgül vardı)

Zor değilse, lütfen bana bu 10 satırlık kodu atın ...... Onları inceleyeceğim .... Gelecekte kendim nasıl yapacağımı öğrenmek istiyorum.

Yardımın için çok teşekkürler.

 
solnce600 :
Garip. Dosya 140 kilo, arşivledim ve mesaja ekledim ..... ama orada değil.


Dosyayı kes içindeki bir iki satır bana yeter..