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

 
Yine de, hiçbir şey çıkmıyor ... Belki tamamen aptal için daha ayrıntılı yaz? Bunu yapalım.. Kodumun önünde ne olmalı? Değişkenler nelerdir? Fonksiyonu çağıramıyorum... Çözmek için bana birkaç yol mu yazdın yoksa hepsi tek yol mu? Ben buna aşığım...
 
r772ra :

Bu şekilde yapabilirsiniz...
Bu seçenek tam olarak doğru çalışmayacaktır, çünkü. NewBar, yalnızca çubuğun ilk onay işaretinde true olarak değerlendirilir. Düzgün çalışması için satır FunNewBar(); if(!NewBar) dönüşü; ayrıca başarılı bir açılıştan sonra bir anlaşma açma koşullarının içine yerleştirin.
 
alsu :
Bu seçenek tam olarak doğru çalışmayacaktır, çünkü. NewBar, yalnızca çubuğun ilk onay işaretinde true olarak değerlendirilir. Düzgün çalışması için satır FunNewBar(); if(!NewBar) dönüşü; ayrıca başarılı bir açılıştan sonra bir anlaşma açma koşullarının içine yerleştirin.
Her ne kadar bu tamamen doğru olmasa da. Kısacası, r772ra seçeneğinin düzeltilmesi gerekiyor, ancak temelde farklı bir yaklaşım kullanmak daha iyidir, örneğin, geçmişteki son siparişin açılış saatine bakın ve mevcut çubuğun zamanı ile karşılaştırın - bu, çok daha güvenilir olmak
 
alsu :
Her ne kadar bu tamamen doğru olmasa da. Kısacası, r772ra seçeneğinin düzeltilmesi gerekiyor, ancak temelde farklı bir yaklaşım kullanmak daha iyidir, örneğin, geçmişteki son siparişin açılış saatine bakın ve mevcut çubuğun zamanı ile karşılaştırın - bu, çok daha güvenilir olmak

Aşağı yukarı böyle

 int BarOfLastOrder( int magic)
{
   int i,ot= OrdersTotal ();
   
   for (i=ot- 1 ; i>= 0 ; i--);
   {
       OrderSelect (i,SELECT_BY_POS);
       if ( OrderMagicNumber() ==magic) return ( iBarShift ( 0 , 0 , OrderOpenTime ()));
   }
   
   return (- 1 );
}

int start()
{

   ........

   int bar_of_last_order = BarOfLastOrder(magic); // указать магик, который использует советник

   switch (bar_of_last_order)
   {
       case 0 :
         //последний ордер открыт на текущем баре
         ...
         break ;
       case - 1 :
         //ордеров нет
         // здесь break не ставим, если ситуация "нет ордеров" и "последний ордер открыт не на текущем баре" нужно обрабатывать одинаково
         // в противном случае написать обработку и break;
      default :
         //последний ордер открыт не на текущем баре
         ...
         break ;
   }

   .........

}
 
Teşekkür ederim! Yapmaya çalışacağım...
 
7sintez :
Teşekkür ederim! Yapmaya çalışacağım...
kodu düzelttim
 
alsu :
kodu düzelttim
Aha!!! Şimdi bir şeyler bulmaya çalışacağım...
 

Yaşasın!!! Atlatmak

{
statik tarihsaat New_Time=0;
New_Bar=yanlış;
if(New_Time!=Zaman[0])
{
New_Time=Zaman[0];
New_Bar=true;
}
}

 
7sintez :
Çok teşekkürler!!! Ve açık olandan ilk çubuğa eksi işareti koyarsam işe yarar mı?

 
Yardımlarınız için herkese çok teşekkür ederim! Henüz kullanılmamış kodlar - bir not defterine kopyalandı! Vaktim olduğunda onları alacağım! Tekrar ve tekrar teşekkürler Arkadaşlar!
Neden: