Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 646
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Hayır, sadece kontrol ettim. Gerçekten de, İnternet kapatıldığında, zamanlayıcı kapatılır.
İşte!) Ve sadece benim hatalarım olduğunu düşündüm)) Bu sorunu nasıl çözerim?
Geliştiriciler, zamanlayıcının bu davranışını bir "aptal koruması" olarak düşünmediyse, hata açıktır. Sonuçta, zamanlayıcı internette başlar ve o andan itibaren özerk olarak çalışması gerekir. Servis masasına bir talep göndermeniz gerekir.
EventSetTimer(1); maliyetler. Ve bir bağlantı olduğunda, garip bir şekilde her şey çalışıyor.OnInit ()'te boşaltma yok. Neden bilmiyorum...
MetaTrader 4 build 660. Gerçekten de, terminal başlatıldığı anda bağlantı yoksa, OnInit() gerçekleşmez.
Yarım önlemle tedavi edilmek için: uzmanı yeniden bağlayın veya zaman dilimini iki kez değiştirin.
MetaTrader 4 build 660. Gerçekten de, terminal başlatıldığı anda bağlantı yoksa, OnInit() oluşmaz.
Yarım önlemle tedavi edilmek için: uzmanı yeniden bağlayın veya zaman dilimini iki kez değiştirin.
bu problemle) Danışmanım özerk çalışma için tasarlandı (
Servis masasına bir talep yazmanız gerekiyor.
Merhaba. Arkadaşlar yeni başlayanlara yardım eder. Önceden bir .xls dosyasında düzenlenmiş tırnakların terminale nasıl yükleneceğini çözemiyorum. Bütün gün acı çekiyorum.
Teşekkür ederim!
Tekrar merhaba. Kendim sordum, kendim cevapladım: İsmi düzenlerken orijinalinden başka bir isim seçtim. - RTSI1440.csv olarak düzeltildi ve yüklendi.
Teşekkür ederim.
Güzel gün!
Amaç, ortalama anlaşmalar için bir algoritma yazmaktır.
Bir dizide açık pozisyonların fiyatlarının değerlerini doldurarak uygulamaya karar verdim. Sonuç olarak, diziyi permütasyon olmadan doldurur. Bir yerde bir şey kaçırdı...
Başlamadan önce bir diziyi sıfırlamak:
Bu arada, OrderSelect() döngünün en az bir yinelemesinde bir hata döndürdüyse, sonuçlara artık güvenemezsiniz. Yani, bazı emirler düştüyse kalan emirlerle çalışmaya devam etmeye çalışmamalısınız. Bunun yerine, hemen bir hata döndürmek daha mantıklı. Örneğin, daha yüksek seviyeli kod, bunun gibi bir hataya tepki verebilir: bu onay işareti üzerinde birkaç kez tekrar deneyin veya bu onay işaretindeki eylemleri terk edin, onları erteleyin ve bir sonraki onay işaretinde tekrar deneyin.
Usred() ve Zapis()'i birleştirmek ve filtre koşulunu şuna benzer bir şekilde birleştirmek daha mantıklıdır: "if (OrderSymbol() == Symbol() && OrderType() == type)". Her neyse, Zapis() içinde tekrarlanan OrderSelect() gerekli değildir.
Bireysel siparişler için ortalama pozisyon fiyatını hesaplamak için her şeyi bir dizide depolamak gerekli değildir. Hareket halindeyken hesaplayabilirsiniz.
S1 = order1_lots * order1_openprice + order2_lots * order2_openprice + ... orderN_lots * orderN_openprice.
S2 = order1_lots + order2_lots + ... + orderN_lots.
İstenilen pozisyon fiyatı = S1 / S2.
S1 ve S2 için iki değişken oluşturursanız, bunları sıfıra ayarlayın ve her seferinde döngüdeki değişkenlerin her birinin karşılık gelen değerini ekleyin, ardından döngüden sonra S2'yi kontrol ettikten sonra sadece S1'i S2'ye bölmek kalır. 0'a eşit değil (bu durumda bir hata , yani sonuç HESAPLANMADI, mevcut değil). Belki de ortaya çıkan değerin hala normalize edilmesi gerekiyor NormalizeDouble() - bu zaten normalleştirmenin gerekli olup olmadığı ve çağrılan veya çağrılan işlevin normalleştirdiği program için kabul edilen sözleşmelere göre algoritmaya göredir.
O zaman diziye gerek kalmayacak.
Genel pozisyonun fiyatının yanı sıra başka hesaplamalara ihtiyacınız varsa, S1 ve S2 değerlerini, değişkenleri referans olarak kendilerine ileterek çağrılan fonksiyona "döndürebilir" ve fonksiyondan hata göstergesini döndürebilirsiniz. Yani çağrılan fonksiyonun prototipi şöyle görünebilir: "bool fun(double &S1, double &S2);". Çağıran fonksiyon değişkenler yaratır, onları fun() 'a iletir ve fun() true döndürürse, geçirilen değişkenlerin (kendileri başka isimlere sahip olabilir) değerlerini S1 ve S2 olarak kullanır.