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

 
Vladislav Andruschenko :

EA'm minimum hareketi yakalıyor, bu yüzden sunucuyu etkiliyor, ancak 1 stop loss noktası ile değil, normal bir minimum seviye + spread ile, ancak spread yüzüyor. Bu nedenle danışman, sunucuyu normale dönene kadar çekiçler. Genişletilmiş yayılma değil.

başka bir deyişle, açılış anında min stopu kontrol eder - değerlerini yeniden oluşturur - ardından sunucuyu çekiçler. Ancak 10 stop noktası koymanız gerekiyorsa, min yayılmasını beklemeniz ve sunucuyu çekiçlemeniz gerekir.

Sunucuyu öldürmek iyi bir fikir değil. Otomatik ticaret yasağıyla karşılaşabilirsiniz. (DDOS saldırılarına sahip bir iş adamına danışmanı olarak sunucuya kim ihtiyaç duyar?)

İlk olarak, bir talep göndermeden önce, bir spread almanız, seviyeyi durdurmanız, stopları ayarlamanız ve durdurma boyutu ticaret için kabul edilebilirse, bir istek göndermeniz gerekir. Durdurmanın boyutu kabul edilemezse, kimsenin çekiçlemesine gerek yoktur. Sunucum bu kadar aptalca dövülmüş olsaydı, öldürürdüm...

Ancak, isteği kabul edilebilir durdurma boyutlarıyla gönderdikten sonra tekrar 130 hatası alırsak (isteğin gönderildiği süre boyunca durdurma düzeyi koşulları değişti), o zaman yine de durdurma boyutunu ayarlayabilir ve isteği gönderebilirsiniz (kabul edilebilir boyutlarda yeni hesaplanan durak). Bu tür isteklerin sayısı sınırlı olmalıdır, aksi takdirde - yine aptalca swotting.

Şimdi sizi neden pazara sokmadıkları açık.

 

burada biraz farklı bir durum var.

Vurmak istemedim, sürekli swotting.

Doğal olarak, bir hatadan sonra bir hata için kontroller vardır - Slip. ama test cihazında çalışmıyor.

Buradaki nokta yüzen yayılma

yukarıda yazdığım gibi - isteği göndermeden önce - durma seviyeleri ayarlanıp sunucuya gönderilir, - sunucu 130 hatası verir - EA seviyeyi tekrar düzeltir ve tekrar sunucuya gönderir.

vb.

Test cihazında slip çalışmaz, bu nedenle gecikme olmaz.

şu an sorunu şu şekilde çözdüm: stop server üzerinde yüz levelden az olmamalı + spread + 1

Ancak!!! Durdurma düzeyi sunucu tarafından = 0 olarak döndürülürse ne yapılmalı? yani yüzen? durağın boyutu nasıl belirlenir?

Seçenek - yanlışlıkla düzelt 130 - bir seçenek değil - moderatör bu yöntemi kaçırmaz.

Daha önce önerildiği gibi = hata 130 - sunucu anlaşmayı kaçırana kadar 1 ve benzeri artış. - bir seçenek değil.

 

Arkadaşlar sorunun çözümüne yardımcı olduğunuz için teşekkür ederim. şu ana kadar kesin bir cevap bulamadım. Ama bu soruna rasyonel bir çözüm arayacağım.

Katıldığınız için hepinize teşekkür ederim.

 
Vladislav Andruschenko :

burada biraz farklı bir durum var.

Vurmak istemedim, sürekli swotting.

Doğal olarak, bir hatadan sonra bir hata için kontroller vardır - Slip. ama test cihazında çalışmıyor.

Buradaki nokta yüzen yayılma

yukarıda yazdığım gibi - isteği göndermeden önce - durma seviyeleri ayarlanıp sunucuya gönderilir, - sunucu 130 hatası verir - EA seviyeyi tekrar düzeltir ve tekrar sunucuya gönderir.

vb.

Test cihazında slip çalışmaz, bu nedenle gecikme olmaz.

şu an sorunu şu şekilde çözdüm: stop server + spread+1 den az olmamalı

Ancak!!! Durdurma düzeyi sunucu tarafından = 0 olarak döndürülürse ne yapılmalı? yani yüzen? durağın boyutu nasıl belirlenir?

Seçenek - yanlışlıkla düzelt 130 - bir seçenek değil - moderatör bu yöntemi kaçırmaz.

Daha önce önerildiği gibi = hata 130 - sunucu anlaşmayı kaçırana kadar 1 ve benzeri artış. - bir seçenek değil.

 

Arkadaşlar sorunun çözümüne yardımcı olduğunuz için teşekkür ederim. şu ana kadar kesin bir cevap bulamadım. Ama bu soruna rasyonel bir çözüm arayacağım.

Katıldığınız için hepinize teşekkür ederim.

Prensipte stoplevel=0 ise, kullanıcıyı yayılı çarpma faktörünü manuel olarak girmeye zorlayabilirsiniz. Yani, başlatırken (zaman çerçevesini değiştirmeden), durma seviyesini kontrol edin ve sıfır ise, katsayı girmek için bir talep görüntüleyin. Kullanıcı girmeyi reddederse, katsayıyı kullanın. 2 (yayılma * 2) ve ardından 130'luk bir hatayla, katsayının kendisini veya durağın boyutunu artırın. Kullanıcı durma seviyesinin nasıl hesaplandığını biliyorsa (örneğin, işlem bölümündeki teknik desteğe sormak için çok tembel değildi), o zaman girdiği katsayıyı kullanın, 130. hataya boyutunu artırarak cevap vermeyi unutma. durdurma (aniden belirir). Ancak genellikle (birkaç kez karşılaştım ve ampirik olarak çıkardım), stop=stoplevel*coective+1 kullanırsanız, hata görünmez. 1 puan eklemezseniz, hatalar görünür.

Buna göre, MK sunucusunda durma seviyesini nasıl hesapladıklarını kontrol edin ve danışmana gerekli katsayıyı girin. Moderatör katsayıyı manuel olarak girmeyi reddetse bile, katsayı otomatik olarak girilecektir.

 

Teşekkürler, varsayılan olarak 2 +1 puanlık bir katsayı yaptım.

Ve bu düşünceyi sormakla ilgili. Ben bir form oluşturacağım, kendisi girsin.

 

Bazen bir komisyoncu, duraklama olmadan yaklaşık 20 komut gönderirseniz, otomatik alım satımı birkaç dakikalığına yasaklar.
Yani, siparişler arasında en az 300-500 ms'lik bir duraklama ile bir sipariş paketini değiştirmek/kapatmak gerekir. (ama orada hata artık 130 değil)

 
MqlTick MS_MqlTick;

enum EnumStopLevel
  {
   a0 = 0, // Real StopLevel
   a1 = 1, // StopLevel correction spread
   a2 = 2, // StopLevel correction 2*spread
   a3 = 3, // StopLevel correction 3*spread
   a4 = 4, // StopLevel correction 4*spread      
   a5 = 5, // StopLevel correction 5*spread         
  };
input EnumStopLevel Mode_StopLevel = 0;


//========================================== StopLevFun
double StopLevFun(int Mode_StopLevelF)
{
   double StopLL = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL) * _Point;
 
   if(MQLInfoInteger(MQL_TESTER) && Mode_StopLevelF < 3) Mode_StopLevelF = 3; ///////////////////////// Это для тестера при модерации
 
   switch(Mode_StopLevelF)
   {
      case 0: break;
      case 1: While_SymbolInfoTick(_Symbol); StopLL = MathMax(MS_MqlTick.ask - MS_MqlTick.bid, StopLL); break;
      case 2: While_SymbolInfoTick(_Symbol); StopLL = MathMax((MS_MqlTick.ask - MS_MqlTick.bid) * 2, StopLL); break;
      case 3: While_SymbolInfoTick(_Symbol); StopLL = MathMax((MS_MqlTick.ask - MS_MqlTick.bid) * 3, StopLL); break;
      case 4: While_SymbolInfoTick(_Symbol); StopLL = MathMax((MS_MqlTick.ask - MS_MqlTick.bid) * 4, StopLL); break;
      case 5: While_SymbolInfoTick(_Symbol); StopLL = MathMax((MS_MqlTick.ask - MS_MqlTick.bid) * 5, StopLL); break;
   }
 
   return(NormalizeDouble(StopLL, _Digits) );   
}


//=========================================== While SymbolinfoTick
bool While_SymbolInfoTick(string Fsymbol)
{
   int WhTi = 0;
   
   while(!SymbolInfoTick(Fsymbol, MS_MqlTick) ) 
   {
      if(WhTi % 10 == 0) Print(Fsymbol, " >> SymbolInfoTick(Fsymbol, MS_MqlTick)= false     Try= ", WhTi);
      
      WhTi++;
      
      if(WhTi > 100) return(false);
      
      Sleep(10);
   }
   
   return(true);
}
А если вот такой вариант.
Если реал или демо, то по умолчанию выбирается вариант 0 Mode_StopLevelF, и в этом случае возвращается реальный стоплевел.
Но можно выбрать и коррекцию стоплевела спредом, с разным коэффициентом. При этом если стоплевел будет больше чем спред, то будет учитываться стоплевел.
А для тестера, при модерации, выбирается всегда режим не ниже 3 Mode_StopLevelF, в этом случае стоплевел будет больше спреда в 3 раза и больше.
П.С. Как пишет разработчик SymbolInfoTick  предпочтительнее чем SymbolInfoDouble для Ask и Bid.
https://www.mql5.com/ru/docs/marketinformation/symbolinfodouble
 
Vladislav Andruschenko :

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.

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

bu sorunla kim uğraşıyor?

Merhaba Vladislav, benim de karşılaştığım sorunu okudum ve kayan durma seviyesinin 0 değerini döndürüp döndürmediğine veya sıfıra yakın olup olmadığına karar verdim, ardından kapatmak için ters sinyalleri kullanın.

Sizce bu çözüm uygun mu?

 
merhaba, ve sanal duraklar anlamında kapatmak için ters sinyal?
 
Evet, ama daha iyi bir akım buldum, o yüzden yapacağım. Örneğin, ATR tarafından otomatik durdurma seviyelerinin hesaplanması, ortalama spread değerinden daha düşük olan sıfıra veya sıfıra yakınsa, bir sonraki emrin açılmasıyla yeni veriler görünene kadar önceki verileri kullanırız. Geri sinyallerden daha iyidir.
 
bu, bir sistem yaparsanız - o zaman her şey yolunda, ancak soru tam olarak piyasada kontrol etmekle ilgiliydi, ne yazık ki 130 hatası ürünün daha ileri gitmesine izin vermiyor