Piyasada yayınlanan Expert Advisor'larda minimum stop kontrol ediliyor. - sayfa 12

 
Igor Volodin :

Böylece, SymbolInfoDouble fonksiyonunun değeri olan noktaya bölemezsiniz (symToWorkmodify, SYMBOL_POINT )   sıfır olabilir.
Bu aynı zamanda diğer piyasa işlevleri için de geçerlidir.

Örneğin, 2010 şampiyonasındaki hesaplamalarda AccountInfoInteger(ACCOUNT_LEVERAGE) kullanılması nedeniyle, bu fonksiyon OnInit'te 0 döndürdüğünde Expert Advisor'lardan bazıları Sıfır bölme hatasıyla çöktü .

Referansa bakarsanız, SymbolInfoDouble(), SymbolInfoInteger() hataları için kontrol edilmelidir.
 
Vladimir Gribachev :

O kadar kötüyse, o zaman

Bir kez daha dikkatinizi çekiyorum ki konu stoplevelin 0 olduğu duruma ayrılmış. Test sonucunu stoplevel değeri sıfırdan büyük vermişsiniz.

Andrey F. Zelinsky'nin doğru bir şekilde belirttiği gibi, her şey kötüyse,

sonra 130. hata için bir kontrol atayabilir ve duraklara +1 ekleyebilirsiniz. Ancak bu genellikle saçmalıktır.
Hata 130'u kontrol etmek, bir programdaki diğer hatalar gibi normal bir uygulamadır. Ancak duraklara 1 eklemek, öncelikle yardımcı olmaz ve ikincisi, kötü bir karar.
 
Ihor Herasko :

Bir kez daha dikkatinizi çekiyorum ki, konu durma seviyesinin 0 olduğu duruma ayrılmış. Durma seviyesi değeri sıfırdan büyük olan test sonucunu vermişsiniz.

Bana MetaQuotes-Demo sunucusu stoplevel = 0'ın neresinde olduğunu göster

durma seviyesi = 0 olsa bile, minimum durdurma kaybı seviyesi, yayılma değerine eşittir.

Eğer spread de = 0 ise, o zaman bana böyle bir komisyoncu gösterin ve oradaki ganimeti kesmeye gideceğim.

Hata 130'u kontrol etmek, programdaki diğer hatalar gibi normal bir uygulamadır. Ancak duraklara 1 eklemek, öncelikle yardımcı olmaz ve ikincisi, kötü bir karar.

iyi olduğunu kim söyledi.

Doğrulama kodunu yayınladım, doğrulama için baykuşların içine doldurdunuz, moderatörlerin kontrol ettiği sunucuda bu kontrolün çalıştığını gösterdim.

Sistemle alay etmek ve topikstarter'ın istediği çözümü aramak istemiyorsanız "Hadi beynimizi patlatalım!!!" adıyla yeni bir konu oluşturmanız gerekiyor.

not. Topicaster'ın pazardaki testi geçebilmesi için bir çözüme ihtiyacı vardı. Moderatörler, Alpler'de veya başka bir yerde değil, sunucularında test eder.

 
Vladimir Gribachev :

Eğer spread de = 0 ise, o zaman bana böyle bir komisyoncu gösterin, oradaki ganimeti kesmeye gideceğim.

gitmeyin komisyon olur
 

:-) gülümseyerek okudum


Sunucu 0 döndürürse ne yapacağımı sormadım, gururunuzu azaltın - özellikle bir kişiyle konuşuyorum, anlayacaktır. ya da anlamıyorum - ama önemli değil.

Yazıyı iletişim adına değil, ürünlerini piyasaya süren programcıların somut örnekleri adına yazdım, tek bir ürün satmamış bir kişiden neyin gerekli olduğunu ve neyin gerekli olduğunu duymak garip. Gerek yok.

KONU VE BİZ PİYASADA KONTROL EDİYORUZ.

EA'nın neyi kontrol etmesi gerektiği ve hataların nasıl ele alınacağı ile ilgili değil. - bununla her şey yolunda.

 
Vladislav Andruschenko :

Sunucu 0 döndürürse ne yapacağımı sormadım

O zaman konu başlığında kendinizi daha net ifade etmeniz gerekir:

Şimdi, brokerlerin %90'ında spread ve minstop dalgalanıyor ve 0 veriyor .

 
Ihor Herasko :

O zaman konu başlığında kendinizi daha net ifade etmeniz gerekir:

Sunucu 0 döndürürse piyasa hatasını nasıl aşacağımı sordum - ve makroyu kontrol ederken moderatör durdurma kaybı = 1 olarak ayarlar, ancak danışman 0 olduğu için minimum durağı değiştiremez - kayar.

Danışmanın 130 numaralı hatayı döndürdüğü ve zararı durdurmanın yanlış olduğunu, değişiklik yaptığını söylediği açıktır, ancak bu ilerleme piyasada çalışmaz.

mesajım şöyle oldu:

Herkese merhaba arkadaşlar !

marketin böyle bir özelliği var: min stop için tüm değerleri kontrol etmeniz gerekiyor.

Değişkenin değeri min stop'tan küçükse, min stop atayın, böylece hata 130 olmaz.

Şimdi, brokerlerin %90'ında spread ve minstop dalgalanıyor ve 0 veriyor.

tüm değişkenlere min stop değerleri atayan böyle bir kod yapısı vardır.

 int OnInitLevels( string symToWorkmodify)
  {
   if (lot< SymbolInfoDouble (symToWorkmodify, SYMBOL_VOLUME_MIN ))lots= SymbolInfoDouble (symToWorkmodify, SYMBOL_VOLUME_MIN ); else
   if (lot> SymbolInfoDouble (symToWorkmodify, SYMBOL_VOLUME_MAX ))lots= SymbolInfoDouble (symToWorkmodify, SYMBOL_VOLUME_MAX ); else lots=lot;
   if (StopLoss> 0 && StopLoss< SymbolInfoInteger (symToWorkmodify, SYMBOL_TRADE_STOPS_LEVEL ))StopLosss=( int ) SymbolInfoInteger (symToWorkmodify, SYMBOL_TRADE_STOPS_LEVEL ); else StopLosss=StopLoss;
   if (TakeProfit> 0 && TakeProfit< SymbolInfoInteger (symToWorkmodify, SYMBOL_TRADE_STOPS_LEVEL ))TakeProfits=( int ) SymbolInfoInteger (symToWorkmodify, SYMBOL_TRADE_STOPS_LEVEL ); else TakeProfits=TakeProfit;
   if (TrailingStop> 0 && TrailingStop< SymbolInfoInteger (symToWorkmodify, SYMBOL_TRADE_STOPS_LEVEL ))TrallingStops=( int ) SymbolInfoInteger (symToWorkmodify, SYMBOL_TRADE_STOPS_LEVEL ); else TrallingStops=TrailingStop;
   if (TakeProfitALL> 0 && TakeProfitALL< SymbolInfoInteger (symToWorkmodify, SYMBOL_TRADE_STOPS_LEVEL ))TakeProfitsAver=( int ) SymbolInfoInteger (symToWorkmodify, SYMBOL_TRADE_STOPS_LEVEL ); else TakeProfitsAver=( int )TakeProfitALL;
   if (TrailingStop> 0 && TrailingStop< SymbolInfoInteger (symToWorkmodify, SYMBOL_TRADE_STOPS_LEVEL ))TrallingStops=( int ) SymbolInfoInteger (symToWorkmodify, SYMBOL_TRADE_STOPS_LEVEL ); else TrallingStops=TrailingStop;
   return ( 0 );
  }

ama artık piyasada geçmiyor, çünkü artık her yerde min stop = 0,

bu sorunla kim uğraşıyor?

 
Vladimir Gribachev :

Bana MetaQuotes-Demo sunucusunun nerede olduğunu göster stoplevel = 0

MetaQuotes sunucusunda değil, piyasada kontrol ederken (konunun ilk gönderisine bakın):

ama artık piyasada geçmiyor, çünkü artık her yerde min stop = 0,

Vladimir Gribaçov :

durma seviyesi = 0 olsa bile, minimum durdurma kaybı seviyesi, yayılma değerine eşittir.

bir gerçek değil. Belki 2 veya 3 yayılır. Belki de bu tür durumlarla henüz karşılaşmadınız. Ama bu onların var olmadığı anlamına gelmez. Belirttiğim komisyoncuda durum tamamen aynı.

 
Ihor Herasko :

MetaQuotes sunucusunda değil, piyasada kontrol ederken (konunun ilk gönderisine bakın):

bir gerçek değil. Belki 2 veya 3 yayılır. Belki de bu tür durumlarla henüz karşılaşmadınız. Ama bu onların var olmadığı anlamına gelmez. Belirttiğim komisyoncuda durum tamamen aynı.

İşin gerçeği şu ki, yayılmanın 1-2-3'ü için sabit bir min stop ayarlamak bir bahane. bu yüzden işe yaramayacak

Yüzen durma sorununa gerçek bir çözüme ihtiyacım var.

Büyük Andrey burada zaten bir çözüm olduğunu söyledi ve bunun hakkında düşünmemiz gerektiğini söyledi - ve hangi çözümü belirtmedi, görüyorsunuz, hareket halindeyken durma dakikalarını belirlemek için bir tür süper güçleri var - ama bazıları için neden nasıl yapılacağını söylemiyor, saklıyor, biliyor ama saklıyor. ALAS. Ya da bana söylemiyor.

 

Ne de olsa soruya karar vermelisin)) Bu arada, tanıklıkta kafan karıştı:

я не спрашивал что делать если сервер возвращает 0

ve posta yoluyla:

Sunucu 0 döndürürse piyasa hatasının nasıl aşılacağını sordum.