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

 

10 yıl boyunca ticaret hesabındaki kârı söylersek (koşullu rakamlar) -
Alınan tüm kârın yeniden yatırıldığı da dikkate alınarak ortalama yıllık kâr nasıl hesaplanır?
Teşekkür ederim!

 
frixer :
Herkese merhaba, Mutlu Yıllar. Beyler yardım edin, siparişin bir kez verilmesi için hiçbir şey yapamam, siparişin verildiği koşul karşılanıyorsa, daha sonra bir sipariş varsa, verilmemesi için daha sonra yapılması gerekir. ikinci kez. Mümkünse bir örnek.

Ders kitabından bir örnek sizin durumunuzdur.
 
atztek :

10 yıl boyunca ticaret hesabındaki kârı söylersek (koşullu rakamlar) -
Alınan tüm kârın yeniden yatırıldığı da dikkate alınarak ortalama yıllık kâr nasıl hesaplanır?
Teşekkür ederim!

6'nın onuncu kökü, sonra 1'i çıkar ve 100 ile çarp. Yılda %19,62 elde ederiz.
 
Aşağıya indi
 
Roman. :

Ders kitabından bir örnek sizin durumunuzdur.

Evet okudum ama yine de algoritmam için çalışmıyor, her tikte emir veriyor, işte kod

 //+------------------------------------------------------------------+
//|                                                     trade v1.mq4 |
//|                                           |
//|                                                 frixer@yandex.ru |
//+------------------------------------------------------------------+

//--- input parameters
//extern int       Время;
//extern int       Input;
//extern int       SL;
//extern int       TP;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   int bars = 9 ; // количество баров
   int gmt = 16 ; // время входа
   double input = 0.0010 ; // вход на рынок
   double sl = 100 ; // уровень SL от высоты коробки в %
   double tp = 100 ;
   int lot= 1 ;
   int topOrder,bottomOrder;
   if ( Hour ()==gmt) // проверяем свечу
      {
         double Shift_high = iHighest ( NULL , PERIOD_H1 ,MODE_HIGH,bars, 0 ); //поиск бара с максимальной ценой из bars начиная с 0-го бара
         double Shift_low  = iLowest ( NULL , PERIOD_H1 ,MODE_LOW ,bars, 0 ); //поиск бара с минимальной  ценой из bars начиная с 0-го бара
         double Price_high = iHigh    ( NULL , PERIOD_H1 ,Shift_high); // присвоение переменной максимального значение цены
         double Price_low  = iLow     ( NULL , PERIOD_H1 ,Shift_low);   // присвоение переменной минимального значение цены
         double Hinput = Price_high + input ; // вверхняя граница входа
         double Linput = Price_low - input ;   // нижняя граница входа
         double height_box = Price_high - Price_low; // высота коробки bars
         double volumeSL = height_box / 100 * sl; // уровень SL зависит от %
        
         
               topOrder= OrderSend ( Symbol (),OP_BUYSTOP,lot,Hinput, 3 ,Price_high-(height_box/ 100 *sl),Price_high+(height_box/ 100 *tp), "BUY" , 16384 , 0 , Green );
                     if (topOrder< 0 )
                        {
                           Print ( "Верхний ордер ошибка #" , GetLastError ());
                           return ( 0 );
                        }
      }
//----
   return ( 0 );  
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+

Bir örnek çizebilirsin, çok minnettar olacağım, bu şekilde denedim (bir arkadaş tavsiye etti) işe yaramadı

         int Orerov= 0 ;
         int Orderov_all = OrdersTotal ();                                               // всего ордеров в терминале
             for ( int n = 0 ;n<Orderov_all;n++)                                             // начало цикла перебора ордеров
            {
             if ( OrderSelect (n,SELECT_BY_POS)==TRUE)                                   // выбран первый в списке ордер
             if (Comm == OrderComment ())                                                 // условие совпадения комментария
               {
                Tip= OrderType ();                                                     // тип      
                Cena= NormalizeDouble ( OrderOpenPrice (), 4 );                           // цена      
                Ticket= OrderTicket ();                                               // тикет     
                Stop= NormalizeDouble ( OrderStopLoss (), 4 );                             // стоп-лосс
                LOT= NormalizeDouble ( OrderLots (), 1 );                                 // размер лота
                Orderov= 1 ;                                                           //
               }
             }
 
frixer :
Herkese merhaba, Mutlu Yıllar. Arkadaşlar yardım edin siparişin bir kere verilmesi için hiçbir şey yapamam, eğer koşul sağlanmışsa sipariş verilmiş olur, daha sonra bir sipariş verilmişse ikinci kez verilmemesi gerekir. Mümkünse bir örnek.

 if ( OrdersTotal () > 0 ) {
   return ( 0 );
}
// Если установлен хоть один ордер, то никакой код после этого комментария уже не выполнится
 
Reshetov :
6'nın onuncu kökü, sonra 1'i çıkar ve 100 ile çarp. Yılda %19,62 elde ederiz.

Teşekkür ederim!

 
Reshetov :

Teşekkürler...
 

Genel olarak soru şu

Çok dönemli bir göstergem var.

hesaplamaları optimize etmek için aşağıdaki döngüyü kullanıyorum



// TimeFrames[i] массив с периодами

for (i=0; i<NumTimeFrames; i++)

{
if (total_bars[i] != iBars(instrument, TimeFrames[i]) )
{

// тут вычисления индиктора

total_bars[i] = iBars(instrument, TimeFrames[i]);
}

}



Asıl sorun, iBar'ların mevcut dönem dışında fiyat yüklememesi...

IndicatorCounted ve RefreshRates gibi tüm MQL hileleri

Yalnızca cari dönem için geçerlidir, yani. iBars geçmişten alır ve geçmiş yalnızca grafikteki nokta değiştirilerek yüklenir. Ne yapalım? MQL'de arka planda (geçerli olandan başka) diğer dönemlerin çubuklarını yüklemek için herhangi bir araç var mı?


ps umarım fazla açıklamamışımdır :(
 
palladin :

Asıl sorun, iBar'ların mevcut dönem dışında fiyat yüklememesi...

Asıl sorununuz, iBar'ların fiyatları değil, belirli bir süre için bilinen çubuk sayısını yüklemesidir. Ayrıca, az önce kontrol ettiğim gibi, hem test cihazında hem de grafikte oldukça doğru bir şekilde yapıyor.