[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 621

 
Evet.
 
Roger :
Evet.
:) Şimdi hata 130 ortaya çıktı. En anlaşılmaz olan şey, yanlış duraklarla (130), yine de doğru vuruşları (ATR tarafından hesaplanan) yapıyor ve duraklarım başlangıçta ayarlanmadı…
Bu bir şekilde anlaşılabilir mi?
 
b0r1s :

Yardıma ihtiyacım var!!! Geçmişten son kaybeden sipariş nasıl seçilir???


 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг убыточности последней позиции.                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isLossLastPos( string sy= "" , int op=- 1 , int mn=- 1 ) {
   datetime t;
   int       i, j=- 1 , k=OrdersHistoryTotal();

   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
       if (OrderSymbol()==sy || sy== "" ) {
         if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
           if (op< 0 || OrderType()==op) {
             if (mn< 0 || OrderMagicNumber()==mn) {
               if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
   if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
     if (OrderProfit()< 0 ) return (True);
  }
   return (False);
}

 if (isLossLastPos( NULL , - 1 , Magic искомого ордера )) {нашли - обрабатываем...}
 
ToLik_SRGV :

Senin için çok karışık :)
İşte kodum

Ertelenen sihirbaz ve istenen esaret parametresi olarak yönteme geçersiniz.

İşlevinizin neden 1 hatası verdiğini anlayamıyorum (komik: hata 1 = hata yok, ancak sonuç bilinmiyor) ve takip etmiyor. Bazen bazı ileti dizileri gecikme yakalayabilir, ancak çoğunlukla >>>ERROR1 günlüğünde ve sağlıklı olun, öksürmeyin...

şöyle sesleniyorum:

 //==============================================================================================
   // Модификация ордеров
//============================================================================================== 
   int criterion = TakeProfitATR ( 1 );                // Рассчитываем "достаточную" волатильность
   if (criterion>= 15 ) trailingOrder( 511 , 20 );        // и если она в "норме" - тралим ордера...
//==============================================================================================

// Функция для рассчёта Take Profit по ATR

//+------------------------------------------------------------------+
//|                  Take from ATR                                   |
//+------------------------------------------------------------------+
double TakeProfitATR ( int tf)
  {
   double    atr   = iATR ( NULL ,tf, 14 , 0 );
   double    mltp  = 15000 ;
   if (tf== 1 ) mltp= 15000 ;
   if (tf== 5 ) mltp= 45000 ;
   double    tp    = MathRound (atr*mltp);
   return   (tp);
  }
 
artmedia70 :

İşlevinizin neden 1 hatası verdiğini anlayamıyorum (komik: hata 1 = hata yok, ancak sonuç bilinmiyor) ve takip etmiyor. Bazen bazı ileti dizileri gecikme yakalayabilir, ancak çoğunlukla >>>ERROR1 günlüğünde ve sağlıklı olun, öksürmeyin...

şöyle sesleniyorum:


Bundan dolayı Hata 1 görünebilir (dokümandan OrderModify() ile ilgili):

Değişmeyen değerler fonksiyon parametreleri olarak iletilirse, bu durumda hata 1 (ERR_NO_RESULT) üretilecektir.

Yani sorun değil, bu normal, gerçekten bir hata yok, görmezden gelebilirsiniz.
 
artmedia70 :

İşlevinizin neden 1 hatası verdiğini anlayamıyorum (komik: hata 1 = hata yok, ancak sonuç bilinmiyor) ve takip etmiyor. Bazen bazı ileti dizileri gecikme yakalayabilir, ancak çoğunlukla >>>ERROR1 günlüğünde ve sağlıklı olun, öksürmeyin...

şöyle sesleniyorum:


Limit emirleri eklendi (önceki kodda unutmuşum :))) + hata işleme #1 (değişiklikten önce, yeni fiyat mevcut fiyatla karşılaştırılır, eğer aynılarsa hiçbir şey yapmayın):

 //+------------------------------------------------------------------+
void trailingOrder( int magic, int trailing){
   int index = 0 ;
   while (trailing > 0 && OrdersTotal () != 0 && OrderSelect (index, SELECT_BY_POS)){
      if (OrderMagicNumber() == magic){
         if (OrderType() == OP_BUYSTOP){
            if (OrderOpenPrice() - Ask > Point *trailing){
               if ((Ask+ Point *trailing) - Ask >= MarketInfo( Symbol (), MODE_STOPLEVEL)* Point &&
                 (Ask+ Point *trailing) - Ask > MarketInfo( Symbol (), MODE_FREEZELEVEL)* Point &&
                 (Ask+ Point *trailing) != OrderOpenPrice()){
                  if (!OrderModify(OrderTicket(),Ask+ Point *trailing,OrderStopLoss(),OrderTakeProfit(), 0 )) Print ( ">>> ERROR " , GetLastError ());
               } else {
                  Print ( ">>> Слишком близко к рынку или передано неизмененное значение!" );
               }
            }
            return ;
         }
         if (OrderType() == OP_SELLSTOP){
            if (Bid - OrderOpenPrice() > Point *trailing){
               if (Bid - (Bid- Point *trailing) >= MarketInfo( Symbol (), MODE_STOPLEVEL)* Point &&
                 Bid - (Bid- Point *trailing) > MarketInfo( Symbol (), MODE_FREEZELEVEL)* Point &&
                 (Bid- Point *trailing) != OrderOpenPrice()){
                  if (!OrderModify(OrderTicket(),Bid- Point *trailing,OrderStopLoss(),OrderTakeProfit(), 0 )) Print ( ">>> ERROR " , GetLastError ());
               } else {
                  Print ( ">>> Слишком близко к рынку или передано неизмененное значение!" );
               }
            }
            return ;
         }
         if (OrderType() == OP_SELLLIMIT){
            if (OrderOpenPrice() - Bid > Point *trailing){
               if ((Bid+ Point *trailing) - Bid >= MarketInfo( Symbol (), MODE_STOPLEVEL)* Point &&
                 (Bid+ Point *trailing) - Bid > MarketInfo( Symbol (), MODE_FREEZELEVEL)* Point &&
                 (Bid+ Point *trailing) != OrderOpenPrice()){
                  if (!OrderModify(OrderTicket(),Bid+ Point *trailing,OrderStopLoss(),OrderTakeProfit(), 0 )) Print ( ">>> ERROR " , GetLastError ());
               } else {
                  Print ( ">>> Слишком близко к рынку или передано неизмененное значение!" );
               }
            }
            return ;
         }
         if (OrderType() == OP_BUYLIMIT){
            if (Ask - OrderOpenPrice() > Point *trailing){
               if (Ask - (Ask- Point *trailing) >= MarketInfo( Symbol (), MODE_STOPLEVEL)* Point &&
                 Ask - (Ask- Point *trailing) > MarketInfo( Symbol (), MODE_FREEZELEVEL)* Point &&
                 (Ask- Point *trailing) != OrderOpenPrice()){
                  if (!OrderModify(OrderTicket(),Ask- Point *trailing,OrderStopLoss(),OrderTakeProfit(), 0 )) Print ( ">>> ERROR " , GetLastError ());
               } else {
                  Print ( ">>> Слишком близко к рынку или передано неизмененное значение!" );
               }
            }
            return ;
         }
      }
      index++;
   }
}
//+------------------------------------------------------------------+
 

Bu arada, Eğitimde bekleyen kullanıcılar için StopLevel ve FreezeLevel mesafeleri hakkında bir hata buldum:

Minimum mesafe StopLevel ile ilgili kısıtlama.

Belirtilen gereksinimlerden herhangi birinin ihlal edilmesi durumunda alım satım işlemi yapılmaz.

Sipariş türü Emir açılış fiyatı (OpenPrice) StopLoss (SL) Kâr Al (TP)
satın almak
değişiklik yasak Bid-SL StopLevel TP-Teklif StopLevel
Satmak
değişiklik yasak SL-Sor StopLevel Ask-TP StopLevel
Satın alma limiti
Ask-OpenPrice StopLevel OpenPrice-SL StopLevel TP-OpenPrice StopLevel
Satış sınırı
Bid-OpenPrice ≥ StopLevel SL-OpenPrice StopLevel OpenPrice-TP StopLevel
dur satın al
OpenPrice-Ask StopLevel OpenPrice-SL StopLevel TP-OpenPrice StopLevel
SatışDurdur
Bid-OpenPrice StopLevel SL-OpenPrice StopLevel OpenPrice-TP StopLevel

SellLimit, mevcut fiyatın üzerinde ayarlanır, bu nedenle şu şekilde doğrudur:

OpenPrice - Teklif ≥ StopLevel

 
Birbirinden 50 puan uzaklıkta iki zıt emir nasıl açılır?
 

Ekranın altındaki sekmelerdeki araçları sıralamanın bir yolu var mı? aksi takdirde 4 zaman diliminde 8 enstrüman düzensizlik içinde dağılır....

 
Rossi :

Ekranın altındaki sekmelerdeki araçları sıralamanın bir yolu var mı? aksi takdirde 4 zaman diliminde 8 enstrüman düzensizlik içinde dağılır....


grafiğin adını içeren sekmeye tıklayın ve istediğiniz konuma sürükleyin
Neden: