Bir piyasa emri nasıl doğru bir şekilde açılır? - sayfa 7

 
prostotrader :

Bu arada, göstergeden Sleep()'i çağırmanız garip çünkü yasaktır:

Göstergeler bir arabirim iş parçacığında yürütüldüğünden ve onu yavaşlatmaması gerektiğinden, Sleep() işlevi özel göstergelerden çağrılamaz. İşlev, her 0,1 saniyede bir uzmanın durma bayrağının durumunu dahili olarak kontrol eder.


 
Alexey Kozitsyn :

Bu arada, göstergeden Sleep()'i çağırmanız garip çünkü yasaktır:


Sleep()'in ne olduğunu bile bilmiyorum.
 
prostotrader :

Alexey!

Oldukça sıvı alet :)

2016.12.14 22:01:41.431 Trades  'xxxxx': cancel order #49931802 sell limit 1.00 GOLD-9.17 at 1190.2 placed for execution in 64926.078 ms

Bu, araçla (likidite) ilgili değil, HERHANGİ bir araçta olabilecek gecikmeyle ilgili.

Yaklaşık 4 yıldır Expert Advisors ile aktif olarak ticaret yapıyorum.

Uzman Danışmanlarımda herhangi bir duraklama yoktur (Göstergelerde sunucudan veri yüklenmesini bekleme duraklaması hariç),

bir duraklama girerseniz - bu, danışmanınızın algoritmasını doğru bir şekilde oluşturmadığınızın GERÇEK işaretidir :(

Ayrıca oldukça uzun bir süredir ve sadece danışmanların yardımıyla ticaret yapıyorum. Gerçek çoğunlukla MT4'te. Bu noktaya kadar MT5 üzerinde sadece limit kartları yardımı ile robot olarak çalıştım ve soru gelmedi. Şahsen, Expert Advisors'da ek duraklamalara da karşıyım, özellikle bir scalper veya bir pipser ise, girişi kolayca atlayabilirsiniz.
 
prostotrader :
Sleep()'in ne olduğunu bile bilmiyorum.
O zaman şimdi duraklamalardan bahsetmemiz garip ...
 
Alexey Kozitsyn :
O zaman şimdi duraklamalardan bahsetmemiz garip ...
Sleep() 'in yaptığı anlamda değil, kodumda kullanma anlamında.
 
prostotrader :
Sleep()'in yaptığı anlamda değil, kodumda kullanma anlamında.
Göstergede nasıl bir duraklama uygularsınız?
 
Alexey Kozitsyn :
Göstergede nasıl bir duraklama uygularsınız?
//+------------------------------------------------------------------+
// Custom indicator Check timer function                             |
//+------------------------------------------------------------------+
bool CheckTimer( const uint start_value, const uint per_value)
{
   uint end_value = GetTickCount ();
  
   if (end_value < start_value)
  {
     if ((start_value - end_value) >= per_value) return ( true );
  }
   else
  {
     if ((end_value - start_value) >= per_value) return ( true );
  }
   return ( false );
}
//+------------------------------------------------------------------+
//| Custom indicator Get server data function                        |
//+------------------------------------------------------------------+
int LoadServerData( const string a_symbol, ENUM_TIMEFRAMES period)
{
   int fail_cnt = 0 ;
//---
   while ((fail_cnt < 5 ) && ! IsStopped ())
  {  
     long first_date = long ( SeriesInfoInteger (a_symbol, PERIOD_M1 , SERIES_SERVER_FIRSTDATE ));
//---
     if (first_date > 0 )
    {
       if ( SymbolIsSynchronized (a_symbol))
      {
   //      Print( "LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные..." );
         return (GetLocalData(a_symbol, period));
      }  
    }
     else
    {
       uint start_tick = GetTickCount ();
//---        
       while (!CheckTimer(start_tick, 10 ))
      {
        fail_cnt--;
        fail_cnt++;
      }
    }    
    fail_cnt++;
  }
// Print( "LoadServerData: Первой даты на сервере нет!" );
   return ( 0 );  
}

Bu eski bir örnek.

GetTickCount'un hatası oldukça büyük olduğu için (16 ms'ye kadar), şimdi GetMicrosecondCount () kullanıyorum

 
Gennady Mazur :
Prensip olarak, bunu yapıyorum, ancak Forts'ta sipariş genellikle başarıyla kabul edilir...
Burası ek bir açıklığın kayabileceği yer…. Sorunu bu şekilde kısmen çözüyorum, eğer sipariş kabul edilirse, o zaman int değişkenini arttırıyorum ve artıştan sonra açılma koşulları biraz farklı, yani yeni açılma yok ama.....sipariş kabul edilmezse değişken artmıyor ama işin püf noktası şu... Durumu doğru belirlemedim ve fazladan siparişler geldi.
Burada kendi sorunuzu cevapladınız. Sırayı takip etmelisin.
 
prostotrader :

Alexey!

Oldukça sıvı alet :)

2016.12.14 22:01:41.431 Trades  'xxxxx': cancel order #49931802 sell limit 1.00 GOLD-9.17 at 1190.2 placed for execution in 64926.078 ms

Bu, araçla (likidite) ilgili değil, HERHANGİ bir araçta olabilecek gecikmeyle ilgili.

Yaklaşık 4 yıldır Expert Advisors ile aktif olarak ticaret yapıyorum.

Uzman Danışmanlarımda herhangi bir duraklama yoktur (Göstergelerde sunucudan veri yüklenmesini bekleme duraklaması hariç),

bir duraklama girerseniz - bu, danışmanınızın algoritmasını doğru bir şekilde oluşturmadığınızın GERÇEK işaretidir :(

Peki ya sende yoksa? Belki gerekli olmayan bir algoritma vardır.
 
Gennady Mazur :
Ayrıca oldukça uzun bir süredir ve sadece danışmanların yardımıyla ticaret yapıyorum. Gerçek çoğunlukla MT4'te. Bu noktaya kadar MT5 üzerinde sadece limit kartları yardımı ile robot olarak çalıştım ve soru gelmedi. Şahsen, Expert Advisors'da ek duraklamalara da karşıyım, özellikle bir scalper veya bir pipser ise, girişi kolayca atlayabilirsiniz.
Bir molaya ihtiyacınız olduğunda durum böyle değilsiniz.