Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 712

 
artmedia70 :
Cevabın kendisi kendini gösteriyor. Açık pozisyonları açılış saatlerine göre sıralayın. Ardından sıralanan dizideki listeye göre kapatın.

Benim için zor, düşüneceğim) açıldıkları sırayla siparişleri kapatmak için böyle bir kod var.

 //+------------------------------------------------------------------+
//|                 Закрыть все ордера                               |
//+------------------------------------------------------------------+


double ClossAllOrders ()

{
   for ( int i= 0 ; i< OrdersTotal (); )
  {
     if ( ! OrderSelect (i, SELECT_BY_POS) )
       break ;
    
     int type   = OrderType();

     bool result = false ;
    
     switch (type)
    {
       //Close opened long positions
       case OP_BUY       : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 3 , Lime );
                           break ;
      
       //Close opened short positions
       case OP_SELL      : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 3 , Lime );
                           break ;

       //Close pending orders
       case OP_BUYLIMIT  :
       case OP_BUYSTOP   :
       case OP_SELLLIMIT :
       case OP_SELLSTOP  : result = OrderDelete( OrderTicket() );
    }
    
     if (result == false )
    {
       Print ( "Order " , OrderTicket() , " failed to close. Error:" , GetLastError () );
      i++;
       Sleep ( 500 );
    }  
  }
}

// End

Burada anladığım kadarıyla sıralama OrderTicket'ten kaynaklanıyor

bu koda nasıl koyulur)

 
_new-rena :

138 - "İstenen fiyat güncel değil veya teklif ve talep karışık."

Açılış/kapanış fiyatı yeniden hesaplanamaz, çünkü orada, ama işte bir felaket ( bir fiyat talep etmeniz ve buna MarketInfo kullanarak bir değer atamanız ve bunu başka bir değişkenle yeniden adlandırmanız gerekir ):

Tavsiye için teşekkürler) Ama bu fonksiyonda değil, danışmanın kendisinde bir sorunum olduğu ortaya çıktı.
 
Belirli bir seviye nasıl hatırlanır. Diyelim ki, mumun Yüksek'iydi. Ancak bu değeri bir değişkene atamak if aracılığıylaydı. ve başka bir durumda, bu değişken sıfıra eşittir, yani bir şekilde belirli bir fiyatı hatırlamam gerekiyor.
 
305 :
Belirli bir seviye nasıl hatırlanır. Diyelim ki mumun Yüksekliğiydi. Ancak bu değeri bir değişkene atamak if aracılığıylaydı. ve başka bir durumda, bu değişken sıfıra eşittir, yani bir şekilde belirli bir fiyatı hatırlamam gerekiyor.
https://book.mql4.com/en/variables/arrays yardımcı olabilir, aşağıda ihtiyacınız olan şey var gibi görünüyor

zaman serisi dizileri

 
bu şekilde çalışmıyor. şimdi yatay çizgiyi deneyeceğim
 
305 :
bu şekilde çalışmıyor. şimdi yatay çizgiyi deneyeceğim

Kim'in bir şeyi ezberlemek için pek çok farklı işlevi vardır, burada listeyi 3 dakika boyunca isimle çalıştırabilirsiniz, https://www.mql5.com/ru/forum/131859 adresini bulabilirsiniz.

 
7Konstantin7 :

Benim için zor, düşüneceğim) açıldıkları sırayla siparişleri kapatmak için böyle bir kod var.

Burada anladığım kadarıyla sıralama OrderTicket'ten kaynaklanıyor

bu koda nasıl koyulur)

Söylesene, siparişleri arka arkaya değil, belirli bir sırayla kapatmanın sırrı nedir? Birkaç saniye bir hesabın ömrünü nasıl değiştirir?

Teşekkür ederim.

 
Roger :

Söylesene, siparişleri arka arkaya değil, belirli bir sırayla kapatmanın sırrı nedir? Birkaç saniye bir hesabın ömrünü nasıl değiştirir?

Teşekkür ederim.

Fonksiyonu yeniden yapamadığım yolu ele alalım (siparişleri açıldıkları sıraya göre kapatmak için: reshuffle

bu fonksiyonda, önce tüm karlı olanlar, sonra karlı olmayanlar kapatılır, bu da durumda çirkin bir denge tablosu ve yanlış verilerle sonuçlanır: maksimum düşüş, maksimum karsız sipariş dizisi, maksimum kar, maksimum karlı sipariş dizisi.

aptalca, iyi slaytlar çıkıyor, diyelim ki 500 cu yükseldiler, sonra 400 düştüler, eğer bir karışımda kapansaydı, o zaman bu kadar büyük değerler olmazdı.

Kapanış emirlerini açıldıkları sıraya göre kullanırsanız, bilanço daha düzgün hale gelecek, durumdaki veri-bilgiler daha yeterli olacaktır.

Ve bunun hesabın ömrünü nasıl değiştireceği hakkında, diyelim ki çok fazla çift ticareti yapıyoruz, eğer her şeyi kapsıyorsak, o zaman bir çift için fiyat, biz ona ulaşana kadar makul bir şekilde gidebilir,

ve açılış sırasına göre kapatırsanız, o zaman bir çiftte bir kapanış elde edersiniz, sonra diğerinde vb., karışık , daha çeşitli olduğu ortaya çıkıyor.

Artık MT4 gibi aynı anda 8 adete kadar sipariş gönderebiliyorsunuz ama emin değilim, bu durumda daha da hızlı kapatabilirsiniz.

 
7Konstantin7 :

Fonksiyonu yeniden yapamadığım yolu ele alalım (siparişleri açıldıkları sıraya göre kapatmak için: reshuffle

bu fonksiyonda, önce tüm karlı olanlar, sonra karlı olmayanlar kapatılır, bu da durumda çirkin bir denge tablosu ve yanlış verilerle sonuçlanır: maksimum düşüş, maksimum karsız sipariş dizisi, maksimum kar, maksimum karlı sipariş dizisi.

aptalca iyi slaytlar çıkıyor, diyelim ki 500 cu ile çıktılar, sonra 400 düştüler, eğer bir karışımda kapanırsa, o zaman bu kadar büyük değerler yoktu

Kapanış emirlerini açıldıkları sıraya göre kullanırsanız, bilanço daha düzgün hale gelecek, durumdaki veri-bilgiler daha yeterli olacaktır.

Ve bunun hesabın ömrünü nasıl değiştireceği hakkında, diyelim ki çok fazla çift ticareti yapıyoruz, eğer her şeyi kapsıyorsak, o zaman bir çift için fiyat, biz ona ulaşana kadar makul bir şekilde gidebilir,

ve açılış sırasına göre kapatırsanız, o zaman bir çiftte bir kapanış elde edersiniz, sonra diğerinde vb., karışık , daha çeşitli olduğu ortaya çıkıyor.

Artık MT4 gibi aynı anda 8 adete kadar sipariş gönderebiliyorsunuz ama emin değilim, bu durumda daha da hızlı kapatabilirsiniz.

Ters döngü. En erken açık pozisyonu arayın, kapatın, döngünün başına gidin. Yani kapatılması gereken tüm pozisyonlar tükenene kadar.
 
artmedia70 :
Ters döngü. En erken açık pozisyonu arayın, kapatın, döngünün başına gidin. Yani kapatılması gereken tüm pozisyonlar tükenene kadar.

Teşekkür ederim, üstesinden gelemem, belki birinin bu işlevde birkaç satır bırakacağını veya bir baykuş atabileceğini düşündüm, son versiyon. Zor görünmüyor, ama yine de pek kimse yardım edemez.

Sitede mql5'in verebileceği 4 kredi vardır) eğer katılımcılar arası transfer mümkünse.