Danışman yazmayı öğrenmek... - sayfa 7

 

Yine de, durağın durumunu üç kritere göre mi kontrol ediyorum?

  //проверяем если есть поза, стоит стоп и не стоит БУ        
       if ( ( OrdersTotal ( ) > 0 ) & & ( OrderStopLoss ( ) ! = 0 ) & & ( OrderStopLoss ( ) ! = SLBU ) )
            ModifySLinBU ( ) ;   //передаем управление в ф-ю установки БУ

ya da öylesine

  //проверяем если есть поза, стоит стоп и не стоит БУ        
       if ( ( OrdersTotal ( ) > 0 ) & & ( OrderStopLoss ( ) ! = 0 & & SLBU ) )
            ModifySLinBU ( ) ;   //передаем управление в ф-ю установки БУ
 

Söyleyin bana, dönemin bir "vardiyası" gibi burada forumda uygulandı mı?

Açıklıyorum .. Örneğin, H4 mumları tüm DC'ler için farklıdır, bu anlaşılabilir - çünkü. sunucu zamanı farklıdır. Çıkışta bu mumların diğer özelliklerini elde etmek için bu mumları zamanında nasıl kaydırabilirsiniz - maks., min., açık, kapalı ...

Bütün bunlar ne için? DC'm aynı mumlara sahip ve danışmanla birlikte çalıştığım strateji bunun üzerinde çalışıyor, ancak birçok grafik uyumsuzluğu hatası var. DC'lerin sorunlarını anladığım kadarıyla, forum katılımcıları tarafından analiz edildiğinde bu hoş karşılanmıyor!)

Ancak MetaQuotes geçmişini indirirken hiçbir hata olmuyor, ancak mumlar görsel testlerde bile çok az sinyal veriyor ve üzerlerindeki EA testi kötü sonuç veriyor.

Bu nedenle, bu soruyu düşündüm - mumların zaman içindeki "kayması", böylece DC'mle veya başka bir şeyle çakışırlar ..

 

DC'nizin hatalarını nasıl azaltabilir ve modelleme kalitesini nasıl iyileştirebilirsiniz?



EUR/0.1-10 lot/1 yıl/300-322000

 

Sipariş değişikliğini doğru bir şekilde işleyip işlemediğimi kontrol edin? Buradaki potansiyel tuzaklar nelerdir?

 //+------------------------------------------------------------------+
//| Открытие позиции на покупку
//+------------------------------------------------------------------+
void OpenBuy ( ) 
  { 
   RefreshRates ( ) ;
      if ( ( OrdersTotal ( ) = = 0 ) & & ( Ask = = Enter ) ) //бъем до упора эту цену
         {
            if ( IsTradeContextBusy ( ) = = false )
               {
                  OrderSend ( Symbol ( ) , OP_BUY , Lot , Enter , Slippage , 0 , 0 , 0 , MAGIC , 0 , clOpenBuy ) ;
                  if ( OrdersTotal ( ) > 0 )
                     {
                        Modify = false ;                              //флаг установки SL и TP - не установлен
                        ModifySL ( ) ;                        
                     }
                  else Print ( "Ошибка установки ордера BAY по цене " , OrderOpenPrice ( ) , " код ошибки =" + GetLastError ( ) ) ;
               }  
         }              
      if ( UseSound ) PlaySound ( NameFileSound ) ;
  } 
//+------------------------------------------------------------------+
//| Открытие позиции на продажу
//+------------------------------------------------------------------+
void OpenSell ( ) 
  { 
   RefreshRates ( ) ;
      if ( ( OrdersTotal ( ) = = 0 ) & & ( Bid = = Enter ) )  //бъем до упора эту цену
         { 
            if ( IsTradeContextBusy ( ) = = false )
               {
                  OrderSend ( Symbol ( ) , OP_SELL , Lot , Enter , Slippage , 0 , 0 , 0 , MAGIC , 0 , clOpenSell ) ;
                  if ( OrdersTotal ( ) > 0 )
                     {
                        Modify = false ;                              //флаг установки SL и TP - не установлен
                        ModifySL ( ) ;
                     }   
                  else Print ( "Ошибка установки ордера SELL по цене " , OrderOpenPrice ( ) , " код ошибки =" + GetLastError ( ) ) ;
               }
         }
      if ( UseSound ) PlaySound ( NameFileSound ) ;        
  } 
//+------------------------------------------------------------------+
//| Модификация ордера на установку SL и TP                                                                 |
//+------------------------------------------------------------------+
void ModifySL ( )
   {
      if ( OrderSelect ( 0 , SELECT_BY_POS ) = = true ) // Если есть открытый ордер
         {       
            if ( OrderType ( ) = = OP_BUY )
               {
                  StopL = SLB ( ) ; 
                  TakeP = TPB ( ) ;
                  Modify = OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , StopL , TakeP , 0 , Red ) ;
                  if ( Modify = = false ) Print ( "Ошибка изменения ордера #" , OrderTicket ( ) , " при попытке установить СТОП " , StopL , ". Текущая цена- " , Bid , ", код ошибки =" + GetLastError ( ) ) ;
               }
            else
               {
                  StopL = SLS ( ) ; 
                  TakeP = TPS ( ) ;
                  Modify = OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , StopL , TakeP , 0 , Red ) ;
                  if ( Modify = = false ) Print ( "Ошибка изменения ордера #" , OrderTicket ( ) , " при попытке установить СТОП " , StopL , ". Текущая цена- " , Ask , ", код ошибки =" + GetLastError ( ) ) ;
               }
         }     
   }

Sonra int Start () içinde değişiklik kontrolü var ...

 //+------------------------------------------------------------------+
//| Проверка открытого оредра на установку SL,TP и установка SL,TP
//+------------------------------------------------------------------+
    if ( ( OrdersTotal ( ) > 0 ) & & ( Modify = = false ) ) ModifySL ( ) ;  //SL и TP - не установлен
 

Yardım için teşekkürler!)

Şimdi danışmanı farklı enstrümanlarda aynı anda çalıştırmayı öğreniyorum...

Söyleyin bana, bu seçenek danışmanın üzerinde çalıştığı enstrümana ait bir sipariş bulmak için uygun mu?

 for ( int i = 1 ; i < = OrdersTotal ( ) ; i + + )            //Цикл по всем ордерам,..
   {                                            //отражённым в терминале
       if ( OrderSelect ( i - 1 , SELECT_BY_POS ) = = true ) //Если есть следующий         
         {
           if ( OrderSymbol ( ) = = Symbol ( ) )
             {
               if ( OrderType ( ) = = OP_BUY )
               {
                 . . . 
               }   
               else
               {
                 . . .
               }

             }
         } 
   }                                          //Конец тела цикла
Neden: