Hatalar, hatalar, sorular - sayfa 1116

 

Test etmeye başladığımda, sürekli olarak şunu gözlemliyorum:

2014.03.28 17:12:28 çekirdek 1 127.0.0.1:3000'e bağlanıyor
2014.03.28 17:12:38 çekirdek 1 test aracısı yetkilendirme hatası
2014.03.28 17:12:38 çekirdek 1 bağlantı kapandı

İstisna olarak daha ziyade test etme imkanı sağlanmaktadır. Uzak aracılar devre dışı bırakıldı, antivirüs yok.
Nasıl tedavi edilir?

 
cDan :

Test etmeye başladığımda, sürekli olarak şunu gözlemliyorum:

2014.03.28 17:12:28 çekirdek 1 127.0.0.1:3000'e bağlanıyor
2014.03.28 17:12:38 çekirdek 1 test aracısı yetkilendirme hatası
2014.03.28 17:12:38 çekirdek 1 bağlantı kapandı

İstisna olarak daha ziyade test etme imkanı sağlanmaktadır. Uzak aracılar devre dışı bırakıldı, antivirüs yok.
Nasıl tedavi edilir?

Antivirüs değil mi?
 
antivirüs yok
 

Perepsot, ama belki burada daha hızlı cevap verirler:

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Yeni Başlayanlardan Sorular

C-4 , 2014.03.28 13:23

Birisi bana yukarıdaki kodun neden gerçek zamanlı olarak çalıştığı halde test cihazında çalışmadığını açıklayabilir mi !!? HistoryOrderGetInteger... özelliklerinin neden HistorySelect(0, TimeCurrent()) 'dan sonra test cihazında mevcut olmadığıyla özellikle ilgileniyorum.

 #include <Trade\Trade.mqh>

CTrade trade;

int OnInit ()
{
   trade.LogLevel(LOG_LEVEL_NO);
   return INIT_SUCCEEDED ;
}
void OnTick ()
{
   if (!DetectNewBar()) return ;
   trade.Sell( 0.1 );
   HistorySelect ( 0 , TimeCurrent ());
   for (; dealsCount < HistoryDealsTotal (); dealsCount++)
   {
       ulong ticket = HistoryDealGetTicket (dealsCount);
      RecalcDeal(ticket);
   }
}

bool DetectNewBar( void )
{
   MqlRates bars[ 1 ];
   CopyRates ( Symbol (), PERIOD_M1 , 0 , 1 , bars);
   if (bars[ 0 ].time != timeLastBar)
   {
      timeLastBar = bars[ 0 ].time;
       //printf(expertName + " new bar detected: " + TimeToString(bars[0].time));
       return true ;
   }
   return false ;
}

void RecalcDeal( ulong ticketDeal)
{
   //History is selected in OnTick()!
   ulong ticketOrder = HistoryDealGetInteger (ticketDeal, DEAL_ORDER );
   //if(!HistoryOrderSelect(ticketOrder))
   //   printf("order not select.");
   ENUM_ORDER_TYPE type = ( ENUM_ORDER_TYPE ) HistoryOrderGetInteger (ticketOrder, ORDER_TYPE );
   datetime time = HistoryOrderGetInteger (ticketOrder, ORDER_TIME_SETUP ); 
   ulong time_msc = HistoryOrderGetInteger (ticketOrder, ORDER_TIME_SETUP_MSC ); 
   printf ( "Order: " + ( string )ticketOrder + " Type: " + EnumToString (type) + " Time: " + ( string )time +
           " Time msc: " + ( string )time_msc + " Total Orders: " + HistoryOrdersTotal ());
}

int dealsCount;

datetime timeLastBar;

Strateji test cihazında ekran görüntüsü:

Demoda gerçek zamanlı ekran görüntüsü:

ps İlginç bir şekilde, test cihazındaki ilk sipariş doğru bir şekilde işlenirken geri kalanı değil. Ve yine de, HistroryOrderSelect(ticketOrder) yorumunu kaldırırsanız, o zaman gerçek zamanlı olarak siparişin seçilmediğine dair bir mesaj görünür ve strateji test cihazında tam tersine, ilk sipariş dışında her şey çalışmaya başlar.


 

Uygulama için açıklayıcı ekran #986216

 

Yerleşik dize işlevi StringSplit düzgün çalışıyor mu?

 void OnStart ()
{
         string str = "|A|B|" ;
         string result[];
         int n = StringSplit ( str, '|' , result );
         Print ( "количество полученных подстрок=" , n );
         for ( int i = 0 ; i < n; i++ )
                 Print ( "подстрока(" , i, ")=" , result[ i ] );
}

aşağıdaki sonucu üretir:

Görünüşe göre '|' karakteri "|A" durumunda boş dize ve A'yı ayırır ve "B|" durumunda - B ve boş dizeyi ayırmaz. Ama bir sınırlayıcı ise, o zaman bir şeyi ayırması gerekir, aksi takdirde "|A|B|" arasında hiçbir fark yoktur. ve "|A|B" ve aynı zamanda "|A|B|" arasında bir fark vardır. ve "A|B|" . Ve bir durumda boş dizelere izin veriliyorsa, diğer durumda da bunlara izin verilmelidir.

 

Doğru bir şekilde ayrılır, ancak tamamen değil. Sonunda, boş bir jeton da vermelisiniz.

Servis masasına koyun.

 

Derecelendirmemde bir sorun var, kod indirme sayacı uçmuş gibi görünüyor.

Hay aksi, bu bir hata değil... Derecelendirmeye MQL4 içeren kodlar eklendi mi?

 

Evet, MQL4 kod tabanını yeni MQL5 site motoruna taşımak için çalışıyoruz.

Platform birleştirme üzerinde çalışıyoruz.

 
A100 :

Yerleşik dize işlevi StringSplit düzgün çalışıyor mu?

aşağıdaki sonucu üretir:

Görünüşe göre '|' karakteri "|A" durumunda boş dize ve A'yı ayırır ve "B|" durumunda - B ve boş dizeyi ayırmaz. Ama bir sınırlayıcı ise, o zaman bir şeyi ayırması gerekir, aksi takdirde "|A|B|" arasında hiçbir fark yoktur. ve "|A|B" ve aynı zamanda "|A|B|" arasında bir fark vardır. ve "A|B|" . Ve bir durumda boş dizelere izin veriliyorsa, diğer durumda da bunlara izin verilmelidir.

4. ve 5. terminallerde düzeltilen mesaj için teşekkürler.