Hatalar, hatalar, sorular - sayfa 444

 
Interesting :
Alım satım ve kotasyon oturumları sorunu çözmeye yardımcı olmayacak mı?

Ne yazık ki hayır. Sözleşme şartnamesine uygun olarak teklif seansı Pazartesi günü 00:00:00'da başlar.
Aslında burada Rosh , bir alıntı oturumunun başlamasının, içinde alıntıların varlığını garanti etmediği cevabını verir. Hangi, prensip olarak, anlaşılabilir.

Şimdilik, aşağıdaki kontrol şeklinde bir "koltuk değneği" kullanıyorum:

 input int TTL = 10 ; // Время "жизни" котировки
...
void Trade() {
  ...
   if ( TimeCurrent () - SymbolInfoInteger (Instrumet, SYMBOL_TIME ) > TTL) return ;
  ...
   // Далее отправка торгового приказа на сервер.
}

Birisi daha zarif bir çözümü paylaşabilirse minnettar olurum (tüm birden çok para birimi tüccarları bununla uğraşmak zorunda kaldı).

not
Konstantin Gruzdev tarafından MetaTrader 5'te Çoklu Para Birimi Modunu Uygulamak adlı makalesinde zarif bir değişken önerildi.
Ancak şampiyonada bu seçenek gereksinimlere göre geçmeyecek.

 
voix_kas :

Yyy ... bir sinire dokundu. :)) Bir forum gönderisindeki manuel kuralların son satırı, bu yüzden affedilebilir. =)
Bu arada, kodunuz da derlenmiyor (son satırdaki kapanış parantezini unuttum). :-R
Ayrıca 2-3 kat daha yavaş çalışıyor (şimdi senaryoda ölçtüm) ve kontrolün kalitesi aynı. :-R

Genel olarak, anlamlı en az anlamlı basamağı belirlemek için yetkili bir kod olmamasına rağmen, Composter'ın tavsiyesini kullanacağım: hacmi 8. ondalık basamağa normalleştirin.
Umarım tuzaklar yoktur.

:)
 
voix_kas :
OrderCheck yardımcı olmuyor mu?


 

Yardım:

Функцию Sleep() нельзя вызывать из пользовательских индикаторов , так как индикаторы выполняются в интерфейсном потоке и не должны его тормозить.

Yine de, kesinlikle, kesinlikle imkansız, ya da gerçekten istiyorsan, yapabilirsin, ama dikkatlice? :)


Göstergeden başka bir sembolün verilerine erişme sorunu.

kene yoksa)

 
Swan :
OrderCheck yardımcı olmuyor mu?

Hayır. Ticaretten önce satırı yazıyorum:

 if (! OrderCheck (TradeRequest, TradeCheckResult) || (TradeCheckResult.retcode != TRADE_RETCODE_DONE )) return ;

Günlüklerde hala bir hata var. :(

 

Partinin normalleşmesinin peşinde

Beyler, neden teori?

Parti adımının minimum partiden büyük olduğu durum saçmadır. Düşünün: min = 0.1, adım = 1.0. Ve ne, sadece 1.1, 2.1, 3.1, ... lotlarına izin veriliyor mu? Bu çok saçma.

Aritmetik ve programlama pratiği yaparsanız seçenekleriniz kazanacaktır. Ama uygulamalı (ticaret anlamında) programlamadan bahsediyorsak, o zaman lot_step > lot_min ile programı kritik bir hata ile tamamlamanız ve brokeri acilen değiştirmeniz gerekir çünkü. düzgün bir şekilde sunucu kurabilecek bir kişiye ödeme yapacak kadar parası bile yok ;)

Her şey ölçülü olmalı. Benim versiyonum, farklı brokerler, hesap türleri, enstrümanlar ile 5 yıldan fazla bir süredir gerçek para üzerinde çalışıyor - hiçbir zaman bir hata olmadı.
Документация по MQL5: Программы MQL5 / Ошибки выполнения
Документация по MQL5: Программы MQL5 / Ошибки выполнения
  • www.mql5.com
Программы MQL5 / Ошибки выполнения - Документация по MQL5
 

organik gübre
Neden saçma? Basit bir örnek alalım: minimum lot = 1.0, minimum adım = 0.3. Gereksinimler, "saçmalık" ilkesini karşılar (min_lot >= lot_step). :)
Normalleştirme işlevine 1,3 lotluk bir hacim iletiyorsunuz. Ondan, 1.2 lot size iade edilir.
Yükseltilmiş sürüm 1.3 döndürür. İçinde, adımlar "doğru" gider: minimum lottan, sıfırdan değil.

Diğer bir konu ise " 1 .0, 0.1 , 0.0 1 vb " dışındaki adımların "yaşamda" varlığıdır.
Burada, bana öyle geliyor ki, sorunun fiyatı (performans kaybı), olası bir varsayımsal hatanın çözümüyle karşılaştırıldığında ihmal edilebilir. BENİM NACİZANE FİKRİME GÖRE.
Sonunda, saymak daha doğru: sıfırdan değil, minimum lottan adımlar.

 
Bir yerde, şans eseri, belirli bir miktar para için mevcut sembol ve fiyat için mümkün olan maksimum lot sayısını satın alacak hazır bir kod yoktur (örneğin, tek giriş parametresi 1234.56 dolar). İçeride, maksimum, minimum hacimler , normalleşme, kaldıraç muhasebesi, fonların yeterliliği vb. için her türlü kontrol olmalıdır. vb. Ana şey, kodun bir satın alma yapması ve para olmaması (alabildiğiniz kadar satın alın), bir tür çekin geçmemesi (geçirmesi), siparişin verildiği gerçeğiyle beni yormaması. yerleştirildi, ancak satın alma olmadı (öl, ancak satın almadan iade etmeyin) vb. CTrade gibi sınıflarda bir yerde olduğunu anlıyorum. Ama aniden oradan bir şey kopyalamak o kadar kolay değil. MQL5 dili değil, kendi algoritmam üzerinde çalışmak istiyorum.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
voix_kas :

Hayır. Ticaretten önce satırı yazıyorum:

Günlüklerde hala bir hata var. :(

Baktım, şampiyonluk hesaplarında tüm enstrümanlar aynı anda işlem görüyor. Kayıt olmak)


TradeCheckResult.retcode != TRADE_RETCODE_DONE

nedense bu durumun doğruluğundan emin değilim..


şunları da deneyebilirsiniz:

if( cari fiyat == 0.0) getiri;

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
voix_kas :

organik gübre
Neden saçma? Basit bir örnek alalım: minimum lot = 1.0, minimum adım = 0.3. Gereksinimler "saçmalık" ilkesini karşılar (min_lot >= lot_step). :)
Normalleştirme işlevine 1,3 lotluk bir hacim iletiyorsunuz. Ondan, 1.2 lot size iade edilir.
Yükseltilmiş sürüm 1.3 döndürür. İçinde, adımlar "doğru" gider: minimum lottan, sıfırdan değil.

Diğer bir konu ise " 1 .0, 0.1 , 0.0 1 vb " dışındaki adımların "yaşamda" varlığıdır.
Burada, bana öyle geliyor ki, sorunun fiyatı (performans kaybı), olası bir varsayımsal hatanın çözümüne kıyasla ihmal edilebilir. BENİM NACİZANE FİKRİME GÖRE.
Sonunda, saymak daha doğru: sıfırdan değil, minimum lottan adımlar.

"minimum lot = 1.0, minimum adım = 0.3" - bu da saçma. Adım, min'in katı olmalıdır. çok güzelsin.

Fikrimi zaten ifade ettim - matematikçiler ve programcıların rekabetinde min_lot çıkarma seçeneği kazanacak, gerçek ticaret için gerekli değil.

Daha fazla tartışılacak bir konu göremiyorum, herkes kendi haline kalmış;)

Neden: