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
Tüm Uzman Danışmanlar için yalnızca bir ticaret dizisi vardır. doğru çözüm, global değişkenler üzerinde kendi semafor sisteminizi oluşturmak olacaktır.
4 dakikada 4 Expert Advisor'ı başlattım. 10 dakikalık çalışma için 7 kez hata 139
Tüm Uzman Danışmanlar için yalnızca bir ticaret dizisi vardır. doğru çözüm, global değişkenler üzerinde kendi semafor sisteminizi oluşturmak olacaktır.
4 dakikada 4 Expert Advisor'ı başlattım. 10 dakikalık çalışma için 7 kez hata 139
En azından genel hatlarıyla bize bu semafor sisteminin nasıl olması gerektiğini anlatır mısınız?
1. Özellikle başkalarını rahatsız etmemek için bir işlemin nasıl yapılması gerektiği.
2. Uyur, kontroller, zaman aşımları (çok iş parçacıklı MT'de söz verilmedi, ama neyse)
Ve sonunda. Bunu bir sitem olarak algılamayın. Ders kitabınız var mı? Bir uzman içerir. Bana oradaki semaforları göster.
İşte benim uzmanım. Yirmi ruble için külot kadar basit. Her saat pozisyonu çevirin. Tüccarların ve komisyoncuların gelirini gerçekten önemsiyorsanız (kimin umurunda bilmiyorum ama önce istikrarlı çalışan bir Uzman Danışman almak ve ardından demodan gerçeğe geçmek istiyorum), o zaman lütfen bu Uzman Danışman örneğini kullanarak benimki, nasıl doğru yapılacağını göster.
Samimi olarak,
kuark
not Bazen ortaya çıkan 2, 6, 138 ve 4109 hatalarının kaynağı sorusu açık kalmaktadır.
bugün İngilizce forumda benzer bir sorunu tartıştık "Ticaret Dispatcher: tüm ticaret bağlamı meşgul"
İngilizce konuyu okudum. E-evet... Bu adamların acilen Rusça öğrenmesi gerekiyor.
Benzer değil, aynı sorun. Doğru, henüz 2, 6, 138 ve 4109 hatalarını almadılar. Sadece 139 civarındaydı.
Dürüst olmak gerekirse, IsTradeAllowed'daki noktayı göremiyorum. Slava, on Uzman Danışmanın bu işlevden nasıl devam ettiğini, ardından birlikte ticaret yapmak için acele ettiklerini ve ilki hariç hepsinin başarısız olduğunu açıkladı.
Birikecekleri, bir süre yaşayacakları ve ya yürütülecekleri ya da silinecekleri bir istek kuyruğu yapmak çok daha iyi olurdu. Ama bunların hepsi hayal.
Bunun yerine, örneğin global bir nTrading değişkeni oluşturmanız ve buna şu anda işlem yapan Uzman Danışmanın numarasını yazmanız gerekecektir. Mantıklı bir soru - uzmanların geri kalanı ne yapmalı? Bekleyen siparişleriyle tekrar MT3'e geri mi dönüyorsunuz...ya da başka bir fikriniz var mı?
Bu arada, global bir değişken olmadan da mümkündür, bunun gibi bir şey
Burada Buy() ve Sell(), başarısızlık durumunda OP_BUY / OP_SELL ve başarı durumunda -1 döndürür.
Dezavantajlar açıktır - komisyoncu bir yerine on açılış (kapanış) emri alacaktır. Otomatikse, her şey yolunda. Eğer bir kişi - rahatsız olacak. Makine ve kişi farklı bir mantığa göre hareket ederse daha kötüdür. Örneğin, bir otomatın kuyruğu yoktur (Slava'nın bize açıkladığı gibi, bir akışı vardır ve sıraya girmek yerine siparişler rekabet eder), ancak bir kişi vardır. Ardından, gerçek hayatta ticarete başladıktan sonra, tüccar tükenecek ve nedenini bile anlamayacak, çünkü (ben - Alpari'deki bir sunum seminerinde) demo ile gerçek arasında hiçbir fark olmadığından emin oldu.
İkinci seçenek - her uzmana ve para birimine kendi numarası atanır, böylece uzman + para birimi kombinasyonu benzersiz olur. Sonra kodu öyle bir şekilde yazarız ki, çarpan 1 ile uzman birinci saniyede, çarpan 7 ile - yedincide işlem yapar, vb. bar açıldıktan sonra Bu, sisteme ticaret için bir saniye verecektir.
Slava'ya soru - sorunu önlemek için bir saniye yeterli mi?
Dezavantajları bariz, kafa derisi - pipers size onlardan bahsedecek :)
Sevgili geliştiriciler (ve hepsi-hepsi). Açıklama için teşekkürler. Bu ve önceki gönderilerde cevaplanmamış sorular var. Bir cevap beklemek.
kuark
global bir değişkenin değerini ayarlama işlevini yaparsanız, bu değişkende belirli bir değer olması şartıyla, inşaat olmaması için
o zaman yüzde 100 güvenilirlik olacak
gibi bir şey
hayır. duraklar sunucuda işlenir. ve bizim durumumuzda, müşterinin uzman ticaret akışı için rekabet var
Kuyruğa gelince, içinde kayıtlı emirleri yürüten bir Uzman Danışman yapma fikrim vardı. Ve diğer tüm uzmanlar sadece bu dosyaya emir yazarlar.
Ama benim için çok kolay değil (yetkin uygulama anlamında) ... Ama deneyebilirsiniz. birlikte =))
Bu pasajı anlamadım:
global bir değişkenin değerini ayarlama işlevini yaparsanız, bu değişkende belirli bir değer olması şartıyla, herhangi bir inşaat olmaması için
if(GlobalVariableGet(SemaforAdı)==0.0)
{
GlobalVariableSet(SemaforAdı,1.0);
bSemaforlu=doğru;
kırmak;
}
Şimdi bu davanın mantığı hakkında. Merak ettiğim için kusura bakmayın ama...
Doğru anladıysam, semaforu ayarlayana kadar while döngüsünde oturuyoruz. Böyle? Sonra bizden başka kimsenin ticaret yapmadığını bilerek ticaret yapıyoruz. Sonra semaforu orijinal durumuna döndürürüz.
Soru: while(!IsStopped()) nasıl çalışır? Yardımdan tam olarak net değil, Canlı Ticarete İzin Ver için bir çek olduğunu düşündüm.
Soru: Bu süre ve Uyku sistemi yavaşlatmaz mı?
Soru: Uyku ve semafor, test modunda doğru şekilde işlenecek mi?
Daha mantıklı. Bir semafor ayarlamak ve kaldırmak arasında, siparişlerle çalışmak için iki (maksimum) fırsatımız var. Önce Buy() veya Sell() ve ardından aşağıda, CloseOrder(). Bu iki "faaliyet", bir uzman içinde bile, aynı zamanda iki uzman varmış gibi birbirleriyle rekabet etmeyecek mi? Yoksa işlemin lineer olması garanti mi ve Buy() dönene kadar CloseOrder() oraya ulaşmayacak mı?
Şimdiden teşekkürler.
kuark
hayır. duraklar sunucuda işlenir. ve bizim durumumuzda, müşterinin uzman ticaret akışı için rekabet var
Kendimi yanlış ifade ettim. OrderSend (OP_BUYSTOP... ayrıca semaforları ayarlayan ve kaldıran bir kodla çevrelenmeli mi? Aptalca bir soru. Elbette olmalı.
Ticaret fonksiyonlarını yeniden düzenledim (kütüphanemi bağladım) ve başka bir euro - m15'e astım. Büyü, es-hayır, değişti.
Yarın neler olduğunu anlatırım ;)