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

 
Pyro :

Herkese selam. Geçmişteki aramam lot hacmini döndürmüyor. Bu gerekli mi?


lotlar program tarafından değiştirilse de, lot 0.1 döndürür. biletler doğru görüntüleniyor (değişiklik). böcek? özellik?


... Her şeyde "hatalar ve özellikler" aramayın - bazen sandık açılır sadece... :-)

Sipariş döngüsü nerede???

 
 if ( OrdersHistoryTotal () != 0 )
   {
     for ( int counter = OrdersHistoryTotal ()- 1 ; counter >= 0 ; counter--)
      {
       OrderSelect (counter, SELECT_BY_POS, MODE_HISTORY);
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
         {
           if ( OrderType () == OP_BUY || OrderType () == OP_SELL)   
             Comment ( "\n\n\n" , OrderLots (), " " , OrderTicket ());                        
         }
      }
   }
 
Pyro :

Herkese selam. Geçmişteki aramam lot hacmini döndürmüyor. Bu gerekli mi?


lotlar program tarafından değiştirilse de, lot 0.1'i döndürür. biletler doğru görüntüleniyor (değişiklik). böcek? özellik?


Kodun analoguna bakın, düzenleyin, deneyin:

 //---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- 
  Iteration = 0 ; // зануляем инерации перед их учетом в цикле по истории
  Sum_Loss = 0 ;   // суммарный убыток по этим итерациям

datetime 
Time_at_History_Current = 0 ,
Time_at_History_Previos = 0 ;  
    
 
 if ( OrdersHistoryTotal () != 0 )
   {
     for ( int counter = OrdersHistoryTotal ()- 1 ; counter >= 0 ; counter--)
      {
       OrderSelect (counter, SELECT_BY_POS, MODE_HISTORY);
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
         {
           if ( OrderType () == OP_BUY || OrderType () == OP_SELL)
            {
             if ( OrderProfit () < 0 ) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера
                                   // для последующего его анализа при подсчете количества итераций
                {
                 double lastLoss = OrderProfit ();
                 Sum_Loss=Sum_Loss+lastLoss;   // считаем общий убыток по закрытым подряд убыточным ордерам
                 Time_at_History_Current = OrderCloseTime ();
                } 
             
             //Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS));
             //Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));
             
             if (Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными
               {
                Time_at_History_Previos = Time_at_History_Current ;
                Iteration++;
                 //Print("Iteration at History в условии сравнения  = ",  Iteration);
               }   
             else // они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла
               {
                 if ( OrderProfit () >= 0 )
                   break ;
               }
            }
         }
      }
   }
 

Roma


Bir döngüye ihtiyacım yok. Son siparişten bir sürü almam gerekiyor, ne olursa olsun filtrelemeye ihtiyacım yok. LOT örneğinde hiçbir şey yok. zarardayım.

 
Pyro :

Roma


Bir döngüye ihtiyacım yok. Son siparişten bir sürü almam gerekiyor, ne olursa olsun filtrelemeye ihtiyacım yok. LOT örneğinde hiçbir şey yok. zarardayım.


Bakın bir önceki mesajımı editledim...
 
Kısa almadım. Sizinki gibi bazı kriterlere göre filtrelemeniz gerektiğinde döngü gereklidir. Görevim daha basit - geçmişten son siparişi almak. Tanımı gereği kapalıdır ve tanım gereği piyasada açık pozisyon yoktur. Bekleyen siparişler kullanılmaz. Yani, son sayı kesinlikle bir pazar numarası olacaktır. Biletler doğru bir şekilde iade edilir, lotlar iade edilmez.
 
Pyro :
Kısa almadım. Sizinki gibi bazı kriterlere göre filtrelemeniz gerektiğinde döngü gereklidir. Görevim daha basit - geçmişten son siparişi almak. Tanımı gereği kapalıdır ve tanım gereği piyasada açık pozisyon yoktur. Biletler doğru bir şekilde iade edilir, lotlar iade edilmez.

Sahip olmak! Aramayı kullanmayı öğrenin! :-)
 
Anladım teşekkürler :) Cant farklıydı.
[Silindi]  
MK07 :

Yardım etmek istediğiniz için teşekkürler. Set if (D_sig==0) { sinyal komutu ; } "Adımlar" küçüldü, ama hala varlar ve nasıl oluştukları açık değil.

Ve MathAbs bunu karşılaştırma için bir "koridor" olsun diye koydu, çünkü sinyal hatlarının kesinlikle eşit olma olasılığı ihmal edilebilir.

Benim sorunum hakkında başka fikri olan var mı?


böyle yazdı ve her şey görüntüleniyor D_Sig yorumda görüntüleniyor

         D_sig= MathAbs (Signal1Buffer[ 0 ]-Signa13Buffer[ 0 ]);                               // разница между сигнальными линиями 1-ого и 3-ого MACD на
                                                                                         // нулевом баре
if (D_sig== 0 )  {   D_sig_Last=D_sig; }
      
//       break;          
             
           
              
         
         j++;
         
}             
     
       Comment ( "\n" , " Баров = " , WindowBarsPerChart ()- 1 , 
               "\n" , " Macd1Buffer = " , DoubleToStr (Macd1Buffer[ 0 ], 4 ),
               "\n" , " Signal1Buffer = " , DoubleToStr (Signal1Buffer[ 0 ], 4 ),
               "\n" , " Macd3Buffer = " , DoubleToStr (Macd3Buffer[ 0 ], 4 ),
               "\n" , " Signa13Buffer = " , DoubleToStr (Signa13Buffer[ 0 ], 4 ),
               "\n" , " D_sig = " , DoubleToStr (D_sig, 4 ));
[Silindi]  
Bana danışmanın adını oluşturmanın "favori ilkesini" söyle - ve böylece eylem ilkesi sürümü vb.
 

Herkese selam.

Bir bool NewBar() işlevi var, lütfen bir bool NewZZ() işlevi yapın. Yeni bir ZigZag diz göründüğünde -> doğru.