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

 
Trader7777 :

Beyler, lütfen işlevi kontrol edin, bu konuda belirsiz şüpheler beni rahatsız ediyor


peki, eğer bir kapanış varsa, bir döngüyü baş aşağı yapmak daha iyidir.
 
splxgf :

peki, eğer bir kapanış varsa, bir döngüyü baş aşağı yapmak daha iyidir.

hayır eski düzenden yeni düzene kapanmalı
 
Trader7777 :

hayır eski düzenden yeni düzene kapanmalı

Sıralamayı değiştirin, o zaman eskiden yeniye doğru olacaktır. Bu arada, yeniden eskiye ve hatta bazen işe yarayabilir.
 
evillive :

Sıralamayı değiştirin, o zaman eskiden yeniye doğru olacaktır. Bu arada, yeniden eskiye ve hatta bazen işe yarayabilir.

for (int i = OrdersTotal() -1; i>0; i--) yaparsanız, yeniden eskiye kapanır!
 
evillive :

Sıralamayı değiştirin, o zaman eskiden yeniye doğru olacaktır. Bu arada, yeniden eskiye ve hatta bazen işe yarayabilir.

Anlamıyorum, eğer hata önermek için çok tembelsem, neden bana TS'me göre ihtiyacım olmayan bir işlevi dayatayım?
 

İyi akşamlar ...

burada bu https://www.mql5.com/en/code/9767 göstergesini danışmana yazmanız doğru olur mu?

if(iCustom(NULL,0, "wave(MACD_FZR)",1,0)<Düşük[1] )

{

bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Yeşil);

if(bilet>0)

{

if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES)) Print("SATIN AL emri açıldı : ",OrderOpenPrice());

}

else Print("SATIN AL emri açılırken hata oluştu : ",GetLastError());

dönüş(0);

}

// kısa pozisyon (SAT) olasılığını kontrol et

if(iCustom(NULL, 0, "wave(MACD_FZR)",1,1)>Yüksek[1] )

{

bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Kırmızı);

 
Trader7777 :

Anlamıyorum, eğer hata önermek için çok tembelsem, neden bana TS'me göre ihtiyacım olmayan bir işlevi dayatayım?

Peki o zaman fonksiyonunuza bakalım, örneğin ilk sıra alınır ve koşula uyduğu için silinir... İkinci sıra yerini alır.

Bir sonraki döngüde üçüncü sıra kontrol edilecek ve ikincisi atlanacak.

Bu nedenle, yanlış numaralandırmaya dikkat çektiler ...

Kendi sıranız önemliyse, silme sırasında döngü değişkenini azaltabilirsiniz.

 
Trader7777 :

Anlamıyorum, eğer hata önermek için çok tembelsem, neden bana TS'me göre ihtiyacım olmayan bir işlevi dayatayım?

Ben tavsiye - süre boyunca. Tür (güncelleme 3):

 void CloseHalfOrders( int otype) {
   int count = 0 ;
   double CTexisting = CountTrades(otype), nCloseOrdersCnt = NormalizeDouble (CTexisting/ 2 , 1 ), price;
   int i = 0 ;
   while (i < OrdersTotal ()) {
       if ( OrderSelect (i, SELECT_BY_POS,MODE_TRADES)) {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic && OrderType() == otype) {
             if (otype == OP_BUY) price = Bid;
             else if (otype == OP_SELL) price = Ask;
             else return ; //работаем только с OP_BUY/OP_SELL
             if (count < nCloseOrdersCnt) {
               OrderClose(OrderTicket(),OrderLots(),price, 0 ,Lime);
               count++;
               Sleep ( 1000 );
               i = 0 ;
               continue ;
            } else i = OrdersTotal ();
         }
      }
      i++;
   }
}
 

Veya

           OrderClose ( OrderTicket (), OrderLots (), Bid , 0 ,Lime);
           i--;
 
                    if (count<n)

Neden k ve n toplam kapatılan sipariş sayısıyla karşılaştırılıyor?