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

 
first_may :
Tarihlerle çalışmak, yani iki tarih arasındaki farkı belirlemek için bir fonksiyon örneği var mı, sıfırdan büyük mü değil mi?

MQL anlayışınızda ve anlayışınızda bir tarih nedir?
[Silindi]  

Millet, kodun anlaşılmasına yardımcı olun. Ana görev, belirli bir seviyeye ulaşıldığında bekleyen bir emri kaldırmaktır .

 if ( OrdersTotal ()!= 0 && Bid == Delete_Level)
   {
   for ( int i= 1 ; i<= OrdersTotal (); i++) //Cycle for all orders..
      { 
         if ( OrderSelect (i- 1 ,SELECT_BY_POS)==true) //If there is the next one
            { 
               if ( OrderType ()> 1 ) 
                  {
                  if ( OrderDelete ( OrderTicket ())==true)
                  {
                  Alert ( "Ордера удалены" );
                  }
                  }
            } 
      }
   }

Delete_Level seviyesi, MA 30'un bar 3'teki mevcut ana kadarki konumu ile belirlenir.

 double MA3 = iMA ( NULL , 0 , MA_Period_2, 0 , MODE_SMA , PRICE_CLOSE , 2 ); //определение уровня MA

double Delete_Level = MA3; // Определение значения переменной

Ancak bu Delete_Level'de sipariş silinmez. Lütfen hatamın ne olduğunu anlamama yardım et.

 
algoritma nereye gidiyor? Kodla yazdırın ve kontrol edin.
[Silindi]  
"Algoritma nereye gidiyor?" ile ne demek istiyorsun?
 
vovan-gogan :
"Algoritma nereye gidiyor?" ile ne demek istiyorsun?

Peki silinmediğini yazıyorsunuz yani OrderDelete'e ulaşmıyor.

Peki, soru sırasıyla, nereye geliyor? hangi durum engelleniyor?

[Silindi]  
sergeev :

peki silinmediğini yazarsan OrderDelete'e ulaşmamış demektir.

Peki, soru sırasıyla, nereye geliyor? hangi durum engelleniyor?


mantığını anladım. Hemen düzeltmeye çalışacağım.
[Silindi]  

Bir şey aydınlandı. Ama hala nasıl çözeceğimi bulamıyorum. Uyarıyı kullanmak, koşulun

 if ( OrdersTotal ()!= 0 && Bid == Delete_Level)

gerçekleştirilmez. Sadece " if ( OrdersTotal ()!= 0 " tek tek evet, ancak "Bid == Delete_Level" ile birlikte - hayır. Sebebi nedir? Delete_Level seviyesine ulaşıldığında bekleyen emir neden silinmiyor. alternatif bir çözüm önerin Delete_Level'e ulaşıldığında geciktiriciyi kaldırın.

 
vovan-gogan :

Bir şey aydınlandı. Ama hala nasıl çözeceğimi bulamıyorum. Uyarıyı kullanmak, koşulun

gerçekleştirilmez. Sadece " if ( OrdersTotal ()!= 0 " tek tek evet, ancak "Bid == Delete_Level" ile birlikte - hayır. Sebebi nedir? Delete_Level seviyesine ulaşıldığında bekleyen emir neden silinmiyor. alternatif bir çözüm önerin Delete_Level'e ulaşıldığında geciktiriciyi kaldırın.


Bu değişkenleri normalleştirin, "onları ortak bir paydaya getirin" - örneğin, şu anda Bid == Delete_Level setine sahip olduğunuz için kesinlikle kesin bir eşitlik olmadığından, Delete_Level değişkeninin değeri için belirli bir tolerans (+/-) kullanın. .
 
vovan-gogan :

Bir şey aydınlandı. Ama hala nasıl çözeceğimi bulamıyorum. Uyarıyı kullanmak, koşulun

gerçekleştirilmez. Sadece " if ( OrdersTotal ()!= 0 " tek tek evet, ancak "Bid == Delete_Level" ile birlikte - hayır. Sebebi nedir? Delete_Level seviyesine ulaşıldığında bekleyen emir neden silinmiyor. alternatif bir çözüm önerin Delete_Level'e ulaşıldığında geciktiriciyi kaldırın.


Örneğin,
 if (Bid- MarketInfo ( Symbol (),MODE_SPREAD)* Point < Delete_Level && Bid+ MarketInfo ( Symbol (),MODE_SPREAD)* Point > Delete_Level) - считать за 
if ( Bid == Delete_Level )  
[Silindi]  

Üzgünüm, ama herhangi bir şekilde daha kolay mı?) Hatanın ne olduğunu anlamama yardım et

Bid == Delete_Level