KimIV'ten faydalı özellikler - sayfa 126

 
khorosh :
Onun pozisyonuna geç. Anavatandan uzak yabancı bir ülkede yaşam iz bırakmadan geçmez. Bir zamanlar onarılamaz bir hata yaparak misafir işçi olduğu için kendine sinirlilik, öfke var.)
Hata denetimi iyi çalışıyor, ancak normal çalışmayı engellemeye yönelik birçok girişime rağmen şu ana kadar herhangi bir hata yok. Olası tüm olası durumlara karşı yeterli korumaya sahibim. Yine, gelecek söyleyecek!
 
artmedia70 :

Ayrı bir blok olarak if(OrderSelect(i,SELECT_BY_POS)) özel olarak seçtim. Hata ayıklama sırasında bir hata değeri döndürmek için. else {// seçim hatasını istediğiniz gibi yazın ve geri dönün, örneğin BOŞ}.

Ve piyasada seçilmiş bir emir varsa, seçiminde bir hatanın meydana geleceği bir durum düşünelim. Hadi tartışalım. hiç karşılaşmadım.

Anlaşıldı :

Ve doğru şekilde oluşturulmuş bir sipariş döngüsünün "yanlış" döndürebilmesinin en az bir nedenini belirtin.

Ah, Artem'in zaten sorduğunu fark etmedim, ayyy. Ama hala.

Fark ne?

Genel olarak geri dönebilir. Peki ya bazı koşullar altında, hatta bir dizi farklı koşul altında yapılan gözlemler, bunun false döndürmediğini gösterdiyse?

Bu işlevin uygulanmasının ayrıntılarını bilmiyoruz ve belgeler bununla ilgili herhangi bir "varsayım" vermiyor. Bir sonraki aracı için bir sonraki koşul kümesiyle, işlev aniden false döndürmeye başlarsa ne olur?

Nedeni/durumla ilgili sorulan soruya yine de cevap vereceğim, çünkü kolay: Sebebi, MT'nin bir sonraki sürümü yayınlandığında geliştirme ekibi tarafından yapılan bu işlevin uygulanmasındaki bir hata olabilir. Umarım bu ciddiye alınacak kadar olası bir olaydır?

Bu varsayımsal hata nedeniyle, işlevin rastgele başladığını, ancak ortalama olarak yalnızca her 5. istek için false döndürdüğünü varsayalım.

Genellikle bilmediğiniz bir şey bulamazsınız. Bu nedenle, neden olabileceğini sormak pek mantıklı değil. Bu olduğunda, nedenini açıklamak kolay olacaktır.

Ancak gelecekte neler olabileceğini bilmemek, kendinizi ona karşı savunmaktan alıkoymaz. Alınan yanlış değer nedeniyle bazı üst düzey algoritmaların çok fazla yakacak odun kıracağı ortaya çıkabilir. Değerin yanlış olduğunu bilmeyecekler.

Değer olmadığını bilirlerse ve varsa doğrudur, o zaman kendi hatalarının yokluğunda odun kırmazlar. Ve bu nedenle, değerin hesaplanmasının imkansızlığı hakkında bilgi sadece hata ayıklama modunda değil, aynı zamanda savaş modunda da verilmelidir.

 

örneğin bir metin dosyasından göstergeye harici veri yüklemek mümkün müdür?

Örneğin, günlük bir fiyat var ve bunun üzerine herhangi bir çizelgede, zaman diliminde bir çizgi çizmeniz mi gerekiyor?

TARİH Fiyat

04.12.2014 100.00

03.12.2014 101.12

02.12.2014 102.45

12/01/2014 103.23

28.11.2014 102.43

27.11.2014 101.90

 
İyi işlevler, iş için Igor'a teşekkürler.
 
KimIV :

OpenPosition() işlevini kullanma örnekleri.

1. Mevcut enstrümandan 0.1 lot satın alın

2. 0.2 lot EURUSD sat

3. 20 pip stop ile 0.12 lot USDCAD sat

4. 40 puan alarak 0.15 lot USDJPY satın alın

5. Stop 23 ile 0.1 lot GBPJPY sat ve 44 pip al

Fragmanda OpenPosition() işlevini test etmek için bir komut dosyası var. İlk 4 örnek yorumlanmıştır.
Bana cevap verip vermeyeceğinizi bilmiyorum. Oturuyorum ve aptalım, Expert Advisor'ı nasıl çoklu para birimi yapacağımı bilmiyorum!
 
logut :
Bana cevap verip vermeyeceğinizi bilmiyorum. Oturuyorum ve aptalım, Expert Advisor'ı nasıl çoklu para birimi yapacağımı bilmiyorum!
Dmitry, genellikle tüm mantığı bir kağıda yazarım. Ne ve ne zaman ve ne yapmalı
 
Roger :

Ve doğru şekilde oluşturulmuş bir sipariş döngüsünün "yanlış" döndürebilmesinin en az bir nedenini belirtin.

Ah, Artem'in zaten sorduğunu fark etmedim, ayyy. Ama hala.

Evet Kolay!

Bir sonraki güncellemeden sonra, terminal yeniden başlatıldı ve yalnızca son gün için siparişleri göstermeye başladı. Siparişlerin geçmişi görünmüyor. İşlev bir şey döndürmelidir - hiçbir tür tarih yoktur.

Komisyoncu bazı siparişleri kaldırdı.

Ameliyathanede bir delik. Hafızanız düştü ve işlev bir çöp hafıza hücresi alır. Bu durumda, monitörde lumbago görünebilir. Veya görünmeyebilirler. Başka donanım sorunları da olabilir.

terminal yeniden başlatıldı ve sunucuyla bağlantı "kayboldu". Bir keresinde bir proxy sunucusunun arkasında AT Mt3'te oturdum. İnternet çevirmeli ağdı ve zaman ve hız açısından kesinlikle sınırlıydı ve internetin kalitesi korkunçtu. Tiklerin geldiğini görüyorum, grafik hareket ediyor. Bir sipariş açmaya çalışırken, terminal "sunucuyla bağlantı yok" gibi bir şey yazdı.

MT4'te bir sorunla karşılaştım ve hala var: Bir onay işareti geliyor ve siyah (boş) bir grafik ekranı. Sovtenik sıfıra bölme hatası veriyor ve robot çöküyor. Grafiği fare ile sürüklerseniz veya yeni bir onay işareti gelirse, her şey yolunda demektir. Bu nedenle bölme yaparken önce neye böleceğimizi kontrol ediyorum ve eğer sıfıra eşit değilse devam ediyoruz!

 

Sevgili KimIV, belirli bir kâra ulaşıldığında tüm pozisyonları kapatmak için fonksiyonlarınızı kullanıyorum ve bekleyen bir emrin tetiklenmesi nedeniyle kapanma sürecinde, kapalı kalmayan başka bir pozisyon göründüğünde bir durumla karşılaştım. Şimdi böyle bir durum için ek bir kontrol ve işlevinize ikinci bir çağrı ekledim. Ana kapanış döngüsünün bitiminden sonra işlevin içine böyle bir iyileştirme getirmeye değer mi sizce?

Bunlar ClosePosBySortLots() ve ClosePositions() işlevleridir;

 

Bekleyen siparişleri silmek , ayrıca çevrimiçi ve geçmiş testleri için fonksiyon kodları vardır - https://forum.mql4.com/en/38949#434195

testler ve çevrimiçi arasındaki farkın ne olduğunu açıklayabilir misiniz?

 
isCloseLastPosByStop() ve isCloseLastPosByTake() işlevleri her zaman doğru çalışmaz, çünkü emrin kapanış fiyatı ve zararı durdur (kar al) her zaman eşleşmez. benimkini yeniden yaptım Bu değerlerin eşitlik koşulu, şu koşulla değiştirildi: Bu değerler arasındaki farkın mutlak değeri (5 haneli tırnak ile) 5*Puan'dan küçük olmalıdır.