Hatalar, hatalar, sorular - sayfa 347

 
Yani ya bir terminal hatası ya da bir sunucu geçmişi hatası. Ama daha çok bir terminal, çünkü şampiyonla ilgili raporların sunucu geçmişinden geri alınması daha olası.
 

Urain :
Так что это или баг терминала, или серверной истории. Но скорее терминала, тк отчёты на чемпе скорее с серверной истории восстанавливались.

Güzel. Dikkat etmedim. Açıkça açıklandı.
 
Yedelkin :
Güzel. Dikkat etmedim. Açıkça açıklandı.
Peki, kim havalı ve kimin 2 hafta böcek yakalaması var :o)
 
Buldum, varsayılan olarak zamana göre sıralama var, ancak anlaşma numarasına göre ihtiyacınız var. O zaman her şey doğru.
 
Urain :
Buldum, varsayılan olarak zamana göre sıralanmış, ancak anlaşma numarasına göre ihtiyacınız var. O zaman her şey doğru.

Bu, hata olmadığı anlamına mı geliyor? Mesele şu ki, fırsatları zamana göre değil, biletlere göre dikkate almanız / sıralamanız gerekiyor.

Sadece raporlara göz gezdirdim ve pozisyonların durumunu hesaplamadım.

 
Renat :

Bu, hata olmadığı anlamına mı geliyor? Mesele şu ki, fırsatlar zamana göre değil, biletlere göre dikkate alınmalı / sıralanmalıdır.

Sadece raporlara göz gezdirdim ve pozisyonların durumunu hesaplamadım.

Evet aynen öyle, sadece rapor kaydederken bu işlemin otomasyonu yoktur ve dikkatle izlenmesi gerekir. Her kullanıcının buna dikkat edeceğini ve sonuç olarak raporu ayrıştırırken hatalar olacağını düşünmüyorum.

ZY Rapor ayrıştırma işleminden sonra sıralama ekledim. Sonuç olarak her şey işime yaradı ama tahmin ediyorum ki birden fazla programcı bu özellikten bıkacak.

 

Optimizasyon sırasında , optimizasyon grafiğinin sağ üst köşesinde optimizasyon parametresinin adı görüntülenir .


Optimizasyonu gözlemlerken, yeni maksimum her zaman bu yazının arkasına gizlendiğinden, bu yazı oldukça can sıkıcıdır.

Renat, hadi onu SOL üst köşeye taşıyalım! Veya sağ alt. Veya sol altta... Herhangi bir yerde, sağ üstten kaldırın Allah aşkına. Rica ederim! :)

// Ya da en azından onu solgunlaştırın ve bilgiyi gizlememesi için arka plana koyun.

[Silindi]  
MetaDriver :

Optimizasyon sırasında , optimizasyon grafiğinin sağ üst köşesinde optimizasyon parametresinin adı görüntülenir .

Optimizasyonu gözlemlerken, yeni maksimum her zaman bu yazının arkasına gizlendiğinden, bu yazı oldukça can sıkıcıdır.

Renat, hadi onu SOL üst köşeye taşıyalım! Veya sağ alt. Veya sol altta... Herhangi bir yerde, sağ üstten kaldırın Allah aşkına. Rica ederim! :)

// Ya da en azından onu solgunlaştırın ve bilgiyi gizlememesi için arka plana koyun.

Sol alt ve arka plan olarak.
 

Lütfen bana nerede yanlış yaptığımı söyle. Mevcut enstrüman için bir pozisyonu ve bekleyen emirleri silen basit bir komut dosyası yazmaya çalışıyorum. Burada:

 //+------------------------------------------------------------------+
//|                                                        clean.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link       "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   MqlTick current_tick;
   MqlTradeRequest close_request;
   MqlTradeResult   close_result;
   SymbolInfoTick ( _Symbol ,current_tick);
   int counter01;
   while (check_position()== true );
     {
       PositionSelect ( _Symbol );
      close_request.action= TRADE_ACTION_DEAL ; close_request.symbol= _Symbol ; close_request.volume= PositionGetDouble ( POSITION_VOLUME ); close_request.type_filling= ORDER_FILLING_AON ;
       if ( PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_BUY )
        {
         close_request.price=current_tick.bid; close_request.type= ORDER_TYPE_SELL ;
        }
       else
        {
         close_request.price=current_tick.ask; close_request.type= ORDER_TYPE_BUY ;
        }
       OrderSend (close_request,close_result);
     }
   do
     {
       for (counter01= 1 ; counter01<= OrdersTotal (); counter01++)
        {
         close_request.order= OrderGetTicket (counter01- 1 );
         if ( OrderGetString ( ORDER_SYMBOL )== _Symbol )
           {
            close_request.action= TRADE_ACTION_REMOVE ;
             OrderSend (close_request,close_result);
           }
        }
     }
   while (check_order()== true );
   if ( GetLastError ()!= 0 )
       Print ( "ошибка код " , GetLastError (), " функция " , __FUNCTION__ , " строка " , __LINE__ );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool check_position() // функция проверяет наличие позиции
  {
   int counter01;
   bool position_exsist= false ;
   for (counter01= 0 ; counter01< PositionsTotal (); counter01++)
     {
       if ( PositionGetSymbol (counter01)== _Symbol )
        {
         position_exsist= true ;
         break ;
        }
     }
   return (position_exsist);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool check_order() // функция проверяет наличие ордеров
  {
   int counter01;
   bool order_exsist= false ;
   for (counter01= 0 ; counter01< OrdersTotal (); counter01++)
     {
       OrderGetTicket (counter01);
       if ( OrderGetString ( ORDER_SYMBOL )== _Symbol )
        {
         order_exsist= true ;
         break ;
        }
     }
   return (order_exsist);
  }
//+------------------------------------------------------------------+
Bir pozisyon olduğunda komut dosyası askıda kalıyor. Hata ayıklama sırasında, bir konumun varlığı kontrol edilirken askıda kalmanın meydana geldiği ortaya çıktı. while(check_position()==true) döngü koşulu kontrol edilmeye başladığında, kontrol check_position() işlevine iletilir ve işlev ilk kez normal bir şekilde yürütüldüğünde true döndürür. Ancak daha sonra döngünün gövdesi yürütülmez ve koşul kontrolü yeniden başlar ve kontrol check_position()'a geri döner ve dönüş (order_exsist) operatörünü çalıştırdıktan sonra döngü koşuluna geri dönmeden başa gider. check_position() işlevi. Lütfen bana nerede yanlış yaptığımı söyle.
Документация по MQL5: Основы языка / Операторы / Оператор возврата return
Документация по MQL5: Основы языка / Операторы / Оператор возврата return
  • www.mql5.com
Основы языка / Операторы / Оператор возврата return - Документация по MQL5
 
molotkovsm :

Lütfen bana nerede yanlış yaptığımı söyle. Mevcut enstrüman için bir pozisyonu ve bekleyen emirleri silen basit bir komut dosyası yazmaya çalışıyorum. Burada:

Bir pozisyon olduğunda komut dosyası askıda kalıyor. Hata ayıklama sırasında, bir konumun varlığı kontrol edilirken askıda kalmanın meydana geldiği ortaya çıktı. while(check_position()==true) döngü koşulu kontrol edilmeye başladığında, kontrol check_position() işlevine iletilir ve işlev ilk kez normal bir şekilde yürütüldüğünde, doğru döndürür. Ancak daha sonra döngünün gövdesi yürütülmez ve koşul kontrolü yeniden başlar ve kontrol check_position()'a geri döner ve dönüş (order_exsist) operatörünü çalıştırdıktan sonra döngü koşuluna geri dönmeden başa gider. check_position() işlevi. Lütfen bana nerede yanlış yaptığımı söyle.

Bir pozisyon varsa, sonsuz bir döngü elde edersiniz, çünkü

 while (check_order()== true );

eşdeğerdir

 while (check_order()== true )
{
 //  пустой оператор
}
Operatör gövdesinde herhangi bir kesinti olmadığı için koddaki döngüden çıkmanın bir yolu yoktur;