Hatalar, hatalar, sorular - sayfa 2218

 
fellow :

tırnak içindeki bu sayılar ne?

muhtemelen alanın değeri

 
Georgiy Merts :

Aynen öyle.

Bence, programların tüm yapısal bölümlerini yapın - platformdan bağımsız bloklara dönüştürülmelidir (burada, sanal arayüzler, bence, oh, bunun için ne kadar uygun), böylece platformlardaki değişiklikler küçük izole bölümlerini etkiler. kod. Ayrıca, yeni platformlara bağlanabilme yeteneği de bir bonus.

Yeni i-Functions'a gelince, sadece bir tanesine bakıyorum - belirli bir zamanda bir bar arıyorum. Belki de bu fonksiyon benimkinden daha hızlı çalışacak. Gerisi eminim benimkine göre hız artışı sağlamayacaktır, yani iyiden iyiyi aramıyorlar.

Kitaplığımı uzun zaman önce barlar için yazdım ve yenilikleri kullanmam pek olası değil

 
Alexey Volchanskiy :

Kitaplığımı uzun zaman önce barlar için yazdım ve yenilikleri kullanmam pek olası değil

Zamana göre yerel çubuk araması - gerçekten daha hızlı olabilir.

Şimdi bunu, ilk, son ve gerekli zamana göre istenen çubuk indeksinin hesaplanması ve ardından ayarlama ile organize ettim.

Daha önce, ikili aramayı da kullandım, ancak ayarlama ile doğrudan hesaplamanın daha hızlı olduğu ortaya çıktı.

Geliştiriciler, istenen çubuğu bu iki seçenekten çok daha hızlı bulan bir dizine sahip olabilir.

 
fellow :

tırnak içindeki bu sayılar ne?

string türünde bir dize , bir uchar dizisidir

tırnak karakterinde, tırnak karakter kodunun solunda.


daha kesin:

 void OnStart ()
  {
   string s;
   uchar u[ 1 ];
   for ( int i= 32 ; i<= 255 ; i++)
     {
      u[ 0 ]=( uchar )i;
       if (i% 16 == 0 ) s= "" ;
      s+= IntegerToString (u[ 0 ], 3 )+ "-" + CharArrayToString (u)+ "  " ;
       if (i== 152 ) s+= " " ;
       if (i% 16 == 15 )   Print (s);
     }
  }
 

1860'a kim güncellendi, test ederken birkaç kullanıcı tarafından daha önce bahsedilen sorunu onaylıyor musunuz?

aksi takdirde Otkritie komisyoncusu bu güncellemeyi ikinci kez gönderdi))

 
Vitaly Muzichenko :

Özgür yazılım kullanıyorsanız - haberlerini ve güncellemelerini takip edin ve gelecekte reklam varsa, bu da oldukça normaldir (özgür yazılım). Kimse sana bir şey borçlu değil.

Yazılım ücretsiz değil - komisyoncuya çok pahalıya mal oluyor. Ve ben, bir tüccar olarak, komisyoncuya, yaratıcılara maaşın ödendiği bir komisyon ödüyorum. Bu nedenle, yeterli bir ilişki istiyorum.

İşlevlere atıfta bulunmaz (onlarla birlikte incir - yeniden yazılmıştır), ancak güncellemeden sonra test cihazının çılgınca başarısız olmaya ve her 2-3 lansmanda bir uçmaya başlaması gerçeği, kararlı bir sürüm yüklemek mümkün oldu

 
En azından 10 yıldır yazılıma düşüşü doğru bir şekilde hesaplamanın öğretilmediği gerçeğini kabul edin. Her şeyi kendim yazmak zorunda kaldım.
 
// Воспроизведение ситуации, когда OrderSend успешно выполнилась, но ордера нет ни среди живых, ни среди мертвых.

#define Bid SymbolInfoDouble ( _Symbol , SYMBOL_BID )
#define PRINT(A) Print ( #A + " = " + ( string )(A))

void OnStart ()
{
/*
  // Посылаем поочередно ордера на открытие/закрытие позиций
  while (!IsStopped() &&
         (OrderSend(_Symbol, OP_SELL, 1, Bid, 0, 0, 0) != -1) &&
         OrderSelect(0, SELECT_BY_POS) && OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0))
    ;
*/

   MqlTradeResult Result;
   MqlTradeRequest Request = { 0 };

  Request.action = TRADE_ACTION_DEAL ;
  Request.symbol = _Symbol ;
  
   do
  {
    Request.position = PositionSelect (Request.symbol) ? PositionGetInteger ( POSITION_TICKET ) : 0 ;  
    Request.type = Request.position ? ( ENUM_ORDER_TYPE )( 1 - PositionGetInteger ( POSITION_TYPE )) : ORDER_TYPE_SELL ;
    Request.price = Request.position ? PositionGetDouble ( POSITION_PRICE_CURRENT ) : Bid ;
    Request.volume = Request.position ? PositionGetDouble ( POSITION_VOLUME ) : 1 ;
          
  } // Посылаем поочередно ордера на открытие/закрытие позиций
   while (! IsStopped () && ( OrderSend (Request, Result) ? OrderSelect (Result.order) || HistoryOrderSelect (Result.order) : true ));
  
  PRINT(Result.order);
  PRINT( OrderSelect (Result.order));
  PRINT( HistoryOrderSelect (Result.order));
}


ForexTimeFXTM-Demo01 ile ilgili sonuç

Result.order = 2210942086
OrderSelect (Result.order) = false
HistoryOrderSelect (Result.order) = false


Senaryo, ne mevcut olanlar arasında ne de tarihte bir "hayalet düzen" bulana kadar pozisyonları açar ve kapatır. Bunu bir hata mı yoksa platformun bir özelliği olarak mı değerlendiriyorsunuz?


Not: Senaryo, bu nüans nedeniyle birkaç pozisyon açılabilecek şekilde yazılmıştır. Ancak bu, "hayali bir siparişin" alınmasını engellemez.

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2018.02.08
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
DC, danışmanıyla bir şeyi değiştirdikten sonra, bir yıl önce BCS forex'te aynıydı.
 

Merhaba. Bugün 1860 sürümüne yükselttim ve EA'yı optimize ederken aşağıdaki sorunla karşılaştım:

Optimize ederken gecikme

geçişler arasındaki gecikme 1 dakikadır! Lütfen söyle bana, sorun ne olabilir?

ps güncellemeden önce, her şey bir saat gibi çalıştı.