[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 126

 
agat8430 :


O zaman bana kodu nasıl düzenleyeceğimi söyle, böylece saldırıya uğramış bir ladin gibi görünmüyor, her şeyi anlıyorsun. Yeni başlayanlar için bir şubeye geldim. Ve forumda ilk defa. ve çok güzel bir cevabım var.

"Dahi insanların dahice bir cevabı var"


Değişken adlarını "okunabilir" olarak verin.
 
hoz :


Hayır, durmadan olmaz. Sadece bir parça yayınladım. İşte benim başabaş işlevim:

Çizgi açıkça gösteriyor ki, hesaplanan durdurma zaten var olana eşitse, o zaman hiçbir değişiklik olmayacak! Doğru? Yani test orijinal miydi? Ancak, değişiklik işlevinden önceki başlangıçta bir sonraki koşulu girene kadar, sürekli olarak hata 1 ortaya çıktı:

İşte bu yüzden .... anlamak istediğim şey bu. Her şeyi ayrıntılı olarak anlattığım gibi.

Benim fonksiyonum, SL ve TP ayarı, kullanılmış pozisyonlara transfer, takip eden pozisyonlar ve denemeler ve hata kontrolleri ile emirler gibi tüm değişiklikler için kullanılır.

Ve başlangıçta, sadece pozisyon seçimini , koşulları ve önleyici tedbirleri belirlemeniz gerekir. İşte fonksiyon:

 void ModifyOrder( int ticket, double price, double stoploss, double takeprofit, datetime e, color arrow_color)
{
   int ModifyCnt = 0 , err;
   while (ModifyCnt < 3 )
  {
     if (OrderModify(ticket, NormalizeDouble (price, Digits ), NormalizeDouble (stoploss, Digits ),
     NormalizeDouble (takeprofit, Digits ), 0 ,arrow_color))
    ModifyCnt = 3 ;
     else err = GetLastError ();
     if (err > 0 )
    { 
       Print (ModifyCnt, " #" ,ticket, " Error modifing order: (" , err , ") " , ErrorDescription(err));
       Sleep ( 5000 ); RefreshRates(); ModifyCnt++;
} } }
Küçük ve uzak!
 
borilunad :

İlk önce yeni başlayanlar için:

Forum gezgini ve sık sorulan soruların yanıtları. Şiddetle Tavsiye Edilen Okuma! (   1 2 3 4 5 6 ) 51 18.02.2011 SSS


Teşekkür ederim! kesinlikle okuyacağım.

Dünya iyi insanlar olmadan değil.

 
hoz :

Değişken adlarını "okunabilir" olarak verin.


Sıradan bir martin "Ilan" danışmanım var. Tüm açık emirleri değiştirmemesini istiyorum. ancak T/P tarafından sadece ilk ve son siparişte kendime bir asistan yapmak istiyorum. yardım edebilirsin. işte onun kodu

  /* Так и до бана не далеко */
 

Herkese merhaba. İlk işaretinde 0 numaralı çubukta bir kez saydığım önceden oluşturulmuş bir çubuktan (yani 1 numaralı çubuktan) gösterge değerlerini ayrı bir pencerede alıyorum. Her şey hızlı ve doğru çalışıyor. tekrar bir süre sonra göstergeler düzgün çalışmaya devam ediyor, ancak bilgisayarın kapatıldığı zaman için hiçbir değer yok, sadece boş bir yer. Bilgisayarı kapatmadan ÖNCE ve açtıktan SONRA gösterge değerleri vardır, ancak yalnızca TF'den TF'ye geçiş yapmak yeterlidir - tüm "eksik" değerler görünür. Göstergeler standart - CCI, AO, vs. Kodları forumlardan aldım, ekliyorum. Lütfen nerede yanlış yaptığımı ve neyi anlamadığımı açıklayın.



      Код №1
        ------


int start()
  {  
              
//--------------------------------------------------------------------
   Fun_New_Bar();                               // Обращение к ф-ии
   if (New_Bar==false)                          // Если бар не новый..
      return;                                   // ..то уходим
//--------------------------------------------------------------------    
        
    int counted_bars=IndicatorCounted(),
       limit;  
       
    if(counted_bars>0)
      counted_bars--;
   
      limit=Bars-counted_bars;

   for(int i=0;i<limit;i++)
       
//-------------------------------      
   { 
   
              
      КОД ИНДИКАТОРА
      
                               
   }     
//-------------------------------
   return(0);
 
  }
   
//+------------------------------------------------------------------+  
void Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   static datetime New_Time=0;                  // Время текущего бара
   New_Bar=false;                               // Нового бара нет
   if(New_Time!=Time[0])                        // Сравниваем время
     {
      New_Time=Time[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
  }
//--------------------------------------------------------------------  



        Код №2
        ------


int start()
{  
     if (NewBar() == true)
  {  
         
    int counted_bars=IndicatorCounted(),
       limit;  
       
    if(counted_bars>0)
      counted_bars--;
   
      limit=Bars-counted_bars;

   for(int i=0;i<limit;i++)
//-------------------------------      
   { 
   
              
      КОД ИНДИКАТОРА
      
                               
   }     
//-------------------------------           
  }    

   return(0); 
}
   
//+------------------------------------------------------------------+    
bool NewBar()
{
   static datetime lastbar = 0;
   datetime curbar = Time[0];
   if(lastbar!=curbar)
   {
      lastbar=curbar;
      return (true);
   }
   else
   {
      return(false);
   }
}


      
          Код №3
          ------


//--- buffers
double ExtMapBuffer1[];
//--- for one bar
datetime Last,New;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,ExtMapBuffer1);
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    New=Time[0]; 
      
     if(Last!=New)     
   {
  
  int counted_bars=IndicatorCounted(),
       limit;  
       
    if(counted_bars>0)
      counted_bars--;
   
      limit=Bars-counted_bars;
//----
   for(int i=0;i<limit;i++)
//-------------------------------      
   { 
   
              
      КОД ИНДИКАТОРА
      
                               
   }     
//-------------------------------             
   
    Last=New;
   }     
//----
   return(0);
  }
//+------------------------------------------------------------------+




       Код №4
       ------


int start()
  {
      if(last>=Time[0]) return;
  
    int counted_bars=IndicatorCounted(),
       limit;  
       
    if(counted_bars>0)
      counted_bars--;
   
      limit=Bars-counted_bars;
//----
   for(int i=0;i<limit;i++)
       
//-------------------------------      
   { 
   
              
      КОД ИНДИКАТОРА
      
                               
        
//-------------------------------              
       
      last=Time[0];      
   } 
//----
   return(0);
  }
//+------------------------------------------------------------------+

 
borilunad :

Benim fonksiyonum, SL ve TP ayarı, kullanılmış pozisyonlara transfer, takip eden pozisyonlar ve denemeler ve hata kontrolleri ile emirler gibi tüm değişiklikler için kullanılır.

Ve başlangıçta, yalnızca pozisyon seçimini, koşulları ve önleyici tedbirleri belirtmeniz gerekir. İşte fonksiyon:

Küçük ve uzak!


Vay :) Teşekkürler. Mutlaka görülmeli!
 
agat8430 :


Sıradan bir martin "Ilan" danışmanım var. Tüm açık emirleri değiştirmemesini istiyorum. ancak T/P tarafından sadece ilk ve son siparişte kendime bir asistan yapmak istiyorum. yardım edebilirsin. işte onun kodu

Genel olarak, elbette sihir ve sembolü saymadan kapalı emirleri "ayıklamanız" gerekir. Ardından değişiklik için ilk ve son siparişleri seçin.

OrderSelect'iniz var (g_pos_300, SELECT_BY_POS, MODE_TRADES); - bu son sipariş.

Ve OrderSelect(0, SELECT_BY_POS, MODE_TRADES); - bu ilk sipariş olacak.

Bu dalla ilgili dil soruları ile sorunuzu cevapladım. Botlar burada yeniden işlenmez. Ancak yukarıdaki her şey, dili en ufak bir şekilde anlayan uzmana dahil etmek için orada. Umarım yardımcı olmuştur...

 
agat8430 :


Sıradan bir martin "Ilan" danışmanım var. Tüm açık emirleri değiştirmemesini istiyorum. ancak T/P tarafından sadece ilk ve son siparişte kendime bir asistan yapmak istiyorum. yardım edebilirsin. işte onun kodu

Doğru pozisyonları yakalamak için neredeyse tüm olası durumlar için Kim'in "Faydalı Özelliklerini" kullanın!

https://www.mql5.com/ru/forum/131859

 
hoz :

Genel olarak, elbette sihir ve sembolü saymadan kapalı emirleri "ayıklamanız" gerekir. Ardından, değişiklik için ilk ve son siparişleri seçin.

OrderSelect(g_pos_300, SELECT_BY_POS, MODE_TRADES); - bu son sipariş.

Ve OrderSelect(0, SELECT_BY_POS, MODE_TRADES); - bu ilk sipariş olacak.

Bu dalla ilgili dil soruları ile sorunuzu cevapladım. Botlar burada yeniden işlenmez. Ancak yukarıdaki her şey, dili en ufak bir şekilde anlayan uzmana dahil etmek için orada. Umarım yardımcı olmuştur...

Üzgünüm, bu işe yaramayacak! İlk değil, son değil!
 
MK07 :

Herkese merhaba. İlk işaretinde 0 numaralı çubukta bir kez saydığım önceden oluşturulmuş bir çubuktan (yani 1 numaralı çubuktan) gösterge değerlerini ayrı bir pencerede alıyorum. Her şey hızlı ve doğru çalışıyor. tekrar bir süre sonra göstergeler düzgün çalışmaya devam ediyor, ancak bilgisayarın kapatıldığı zaman için hiçbir değer yok, sadece boş bir yer. Bilgisayarı kapatmadan ÖNCE ve açtıktan SONRA gösterge değerleri vardır.Ancak kişinin yalnızca TF'den TF'ye geçiş yapması gerekir - tüm "eksik" değerler görünür.Göstergeler standarttır - CCI, AO, vb. .Kodları forumlardan aldım, ekliyorum.Yanlışlarımı ve anlamadıklarımı açıklayınız lütfen.

Kod #1

        ------


int start()
  {  
              
//--------------------------------------------------------------------
   Fun_New_Bar();                               // Обращение к ф-ии
   if (New_Bar== false )                           // Если бар не новый..
       return ;                                   // ..то уходим
//--------------------------------------------------------------------    
        
     int counted_bars=IndicatorCounted(),
       limit;  
       
     if (counted_bars> 0 )
      counted_bars--;
   
      limit= Bars -counted_bars;

   for ( int i= 0 ;i<limit;i++)
       
//-------------------------------      
   { 
   
              
      КОД ИНДИКАТОРА
      
                               
   }     
//-------------------------------
   return ( 0 );

  }
   
//+------------------------------------------------------------------+  
void Fun_New_Bar()                               // Ф-ия обнаружения ..
  {                                             // .. нового бара
   static datetime New_Time= 0 ;                   // Время текущего бара
   New_Bar= false ;                               // Нового бара нет
   if (New_Time!=Time[ 0 ])                         // Сравниваем время
     {
      New_Time=Time[ 0 ];                         // Теперь время такое
      New_Bar= true ;                             // Поймался новый бар
     }
  }

//--------------------------------------------------------------------  

        Код № 2
        ------


int start()
{  
     if (NewBar() == true )
  {  
         
     int counted_bars=IndicatorCounted(),
       limit;  
       
     if (counted_bars> 0 )
      counted_bars--;
   
      limit= Bars -counted_bars;

   for ( int i= 0 ;i<limit;i++)
//-------------------------------      
   { 
   
              
      КОД ИНДИКАТОРА
      
                               
   }     
//-------------------------------           
  }    

   return ( 0 ); 
}
   
//+------------------------------------------------------------------+    
bool NewBar()
{
   static datetime lastbar = 0 ;
   datetime curbar = Time[ 0 ];
   if (lastbar!=curbar)
   {
      lastbar=curbar;
       return ( true );
   }
   else
   {
       return ( false );
   }

}

         Код № 3
          ------


//--- buffers
double ExtMapBuffer1[];
//--- for one bar
datetime Last,New;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle( 0 , DRAW_HISTOGRAM );
   SetIndexBuffer ( 0 ,ExtMapBuffer1);
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    New=Time[ 0 ]; 
      
     if (Last!=New)     
   {
  
   int counted_bars=IndicatorCounted(),
       limit;  
       
     if (counted_bars> 0 )
      counted_bars--;
   
      limit= Bars -counted_bars;
//----
   for ( int i= 0 ;i<limit;i++)
//-------------------------------      

   { 

       Код № 4
       ------


int start()
  {
       if (last>=Time[ 0 ]) return ;
  
     int counted_bars=IndicatorCounted(),
       limit;  
       
     if (counted_bars> 0 )
      counted_bars--;
   
      limit= Bars -counted_bars;
//----
   for ( int i= 0 ;i<limit;i++)
       
//-------------------------------      
   { 
   
              
      КОД ИНДИКАТОРА
      
                               
        
//-------------------------------              
       
      last=Time[ 0 ];      
   } 
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+

Kodu yapıştırmak için yukarıdaki SRC düğmesini kullanın! Kimse böyle kazmayacak. Senin için koydum. Aynı şeyi yazınızda da yapabilirsiniz.
Neden: