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

 
splxgf :

Ve ikisinden hangisi nasıl belirlenir?

https://book.mql4.com/ru/trading/orderclose

Peki, gerekirse karaktere göre filtreleyin, tamamen çalışan bir örnek

https://book.mql4.com/ru/trading/ordermodify


Belirlemek için aşağıdaki örneği kullanıyorum, ancak ilk bekleyen sipariş için tüm koşullar yerine getirilmesine rağmen, ilki yerine yalnızca son bekleyen siparişi kapatıyor. Hatayı bulmama yardım et!!!!!!!!!

 if (Bid>=Openup- 0.0005 )
 {
 for ( int count = OrdersTotal ()- 1 ; count >= 0 ; count--)
  {  
     OrderSelect (count, SELECT_BY_POS, MODE_TRADES);
     if ( OrderType () == OP_BUYLIMIT)
       {  
         OrderDelete (ticket, CLR_NONE );
       }
  }
 }
 
Andreev :


Belirlemek için aşağıdaki örneği kullanıyorum, ancak ilk bekleyen sipariş için tüm koşullar yerine getirilmesine rağmen, ilki yerine yalnızca son bekleyen siparişi kapatıyor. Lütfen hatayı bulmama yardım edin!!!!!!!!!


İki siparişten hangisinin kapatılacağını belirlemenin en kolay yolu sihirli sayıdır. Kurulum sırasında onlara farklı numaralar atayın. Yukarıda gösterdiğiniz örnekte bu kontrol yok. Ve bir bilet yerine OrderTicket() yazın.
 
tol64 :

İki siparişten hangisinin kapatılacağını belirlemenin en kolay yolu sihirli sayıdır. Kurulum sırasında onlara farklı numaralar atayın. Yukarıda gösterdiğiniz örnekte bu kontrol yok. Ve bilet yerine OrderTicket() yazın.

Cevap için teşekkürler! Sihirli numara bana zaten tavsiye edildi, ancak bekleyen bir sipariş tanımlarken nerede belirteceğimi ve onu bir biletle nasıl bağlayacağımı anlamıyorum.
 
Andreev :

Cevap için teşekkürler! Sihirli numara bana zaten tavsiye edildi, ancak bekleyen bir sipariş tanımlarken nerede belirteceğimi ve onu bir biletle nasıl bağlayacağımı anlamıyorum.


bir sipariş açarken sihir ayarlanmalıdır, sadece farklı siparişler için sayının farklı olduğundan emin olmanız gerekir, aksi takdirde bir anlam ifade etmeyecektir, aşağıda OrderSend işlevinin tam açıklamasına bir bağlantı verilmiştir olabilecek tüm değişkenler vardır bir sipariş açarken ayarlayın, sihirli değişkenle ilgilenmesi gereken SİZSİNİZ, ancak her şeyin doğru çalışması için, tüm değişkenlerin doldurulmasından önce, tüm değişkenlerin - takdirine bağlı olarak doldurulması gerekir

https://docs.mql4.com/en/trading/OrderSend

 
LazarevDenis :


bir sipariş açarken sihir ayarlanmalıdır, sadece farklı siparişler için sayının farklı olduğundan emin olmanız gerekir, aksi takdirde bir anlam ifade etmeyecektir, aşağıda OrderSend işlevinin tam açıklamasına bir bağlantı verilmiştir. bir sipariş açarken ayarlayın, sihirli değişkenle ilgilenmesi gereken SİZSİNİZ, ancak her şeyin doğru çalışması için, tüm değişkenlerin doldurulmasından önce, tüm değişkenlerin - takdirine bağlı olarak doldurulması gerekir

https://docs.mql4.com/ru/trading/OrderSend


Neden farklı emirler farklı sihirlere ihtiyaç duyar?
 

Lütfen bana doğru kodu söyle. Bir danışman yazdım ve krmpilasyon sırasında sadece iki hata veriyor - onlardan nasıl kurtulacağımı bilmiyorum.

bunlar hatalar 1) 'SL' - önceden tanımlanmış değişken C:\Program Files\MetaTrader Finam\experts\$.mq4 (43, 11)

ve 2) 'TP' - önceden tanımlanmış değişken C:\Program Files\MetaTrader Finam\experts\$.mq4 (45, 11)

Aşağıdaki danışman kodu:

 
extern int  

            Diapazon=1200,
            Slipege=500,
            TP=1500,
            SL=15000;   
            
double pa, pb, pt;
int    ls, dg;                  

  int start()                                // Спец. функция start()
  {  
   
   pa=MarketInfo(Symbol(),MODE_ASK);
   pb=MarketInfo(Symbol(),MODE_BID);
   pt=MarketInfo(Symbol(),MODE_POINT);
   dg=MarketInfo(Symbol(),MODE_DIGITS);
   ls=MarketInfo(Symbol(),MODE_STOPLEVEL);
   
   //---------------------------------------+
    
   if
   
   {
   
   double variable1 = NormalizeDouble(pa+ls*pt,dg); 
  
   double variable2 = NormalizeDouble(pb-ls*pt,dg);
   
   //---------------------------------------------+ 
  
   double pa = NormalizeDouble(Ask+Diapazon*Point,Digits);
   
   double SL = NormalizeDouble(Bid+(Diapazon-SL)*Point,Digits);
  
   double TP = NormalizeDouble(Ask+(Diapazon+TP)*Point,Digits);

 
  
   double pb = NormalizeDouble((Bid+Diapazon*Point,Digits);
  
   double SL = NormalizeDouble(Bid+(Diapazon+SL)*Point,Digits);
  
   double TP = NormalizeDouble(Bid+(Diapazon-TP)*Point,Digits);
   
   }
  
                                       // Открытие BUY
                                         
   OrderSend(Symbol(),OP_BUYSTOP, 0.05,Ask+Diapazon*Point,3,Bid+(Diapazon-SL)*Point,Ask+(Diapazon+TP)*Point);
   
                                     // Открытие SELL
   
   OrderSend(Symbol(),OP_SELLSTOP,0.05,Bid+Diapazon*Point,3,Bid+(Diapazon+SL)*Point,Bid+(Diapazon-TP)*Point);  

   return;                                   // Выход из start()
  }
  
 
Vinin :

Neden farklı emirler farklı sihirlere ihtiyaç duyar?

Görünüşe göre bunun için - birkaç mesaj yukarıda :-))) - "İkisinden hangi sıranın kapatılması gerektiğini belirlemenin en kolay yolu sihirli sayıdır. Kurulum sırasında bunlara farklı numaralar atayın. Yukarıda gösterdiğiniz örnekte bu kontrol yok Ve bilet yerine OrderTicket() yazın."
 
tol64 :

İki siparişten hangisinin kapatılacağını belirlemenin en kolay yolu sihirli sayıdır. Kurulum sırasında onlara farklı numaralar atayın. Yukarıda gösterdiğiniz örnekte bu kontrol yok. Ve bilet yerine OrderTicket() yazın.

Sipariş verme zamanını hatırlarsınız, ardından döngüde de zamanı karşılaştırırsınız - en kıdemli olanı silin, bunun gibi bir şey
 
Andreev :


Belirlemek için aşağıdaki örneği kullanıyorum, ancak ilk bekleyen sipariş için tüm koşullar yerine getirilmesine rağmen, ilki yerine yalnızca son bekleyen siparişi kapatıyor. Lütfen hatayı bulmama yardım edin!!!!!!!!!


İlk emri piyasa emrine çevirme seçeneğini ve sonuç olarak limit emirlerde bu döngü tarafından kaldırılmasının imkansızlığını dışlıyor musunuz?
Neden: