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

 

Merhaba! Alıntıların kene geçmişini nereden alabilirim (nerede)? Ve en önemlisi, mql'de her bir onay işaretine nasıl erişilir?

 
ikatsko :

Merhaba! Alıntıların kene geçmişini nereden alabilirim (nerede)? Ve en önemlisi, mql'de her bir onay işaretine nasıl erişilir?

O yardımcı olabilir. Yöntem, tırnak işaretleriyle alıntıların geçmişini almanızı sağlar.

http://tradelikeapro.ru/kak-poluchit-kachestvo-modelirovaniya-99/

 
Top2n :

O yardımcı olabilir. Yöntem, tırnak işaretleriyle alıntıların geçmişini almanızı sağlar.

http://tradelikeapro.ru/kak-poluchit-kachestvo-modelirovaniya-99/

İyi bağlantı. Teşekkür ederim! Ancak ikinci bir soru daha var: MQL kullanarak seçilen her bir onay işaretine nasıl erişilir?
 
ikatsko :
İyi bağlantı. Teşekkür ederim! Ancak ikinci bir soru daha var: MQL kullanarak seçilen her bir onay işaretine nasıl erişilir?

MQL araçları. Deneyin, Uzman Danışman olarak ve bir çizelge üzerinde derleyin ve dosyalarda "Kayıt" dosyasını arayın

 //+------------------------------------------------------------------+
//|                                                ЗаписьBid_Ask.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
Запись();
   
  }
//+------------------------------------------------------------------+
void Запись()
{
   int handle;
   string st=TimeToStr( TimeCurrent (), TIME_DATE );
   string filename = st+ " Запись.csv" ; // Формируем имя файла
  handle = FileOpen (filename, FILE_CSV | FILE_READ | FILE_WRITE , ';' );
   if (handle < 1 )
  {
     Print ( "Не удалось создать файл. Ошибка #" , GetLastError ());
     return ;
     //FileClose(handle);
  }
  
   FileWrite (handle,                   
             " Время " ,
             " Bid " ,
             " Ask " ,
             " Volume "
            ); // заголовок
   FileSeek (handle, 0 , SEEK_END );
   FileWrite (handle,
            TimeToStr( TimeCurrent (), TIME_MINUTES | TIME_SECONDS ),
            Bid,
            Ask,
            Volume[ 0 ]
            );
 
   FileClose (handle);
   return ;
}

İyi şanlar.

 
r772ra :

MQL araçları. Deneyin, Uzman Danışman olarak ve bir çizelge üzerinde derleyin ve dosyalarda "Kayıt" dosyasını arayın

İyi şanlar.

Sana da teşekkürler! Bu prosedürün mevcut keneleri dosyaya yazacağını anlıyorum. Evet?
 
ikatsko :
Sana da teşekkürler! Bu prosedürün mevcut keneleri dosyaya yazacağını anlıyorum. Evet?

Evet. Teklif b Sor ve ayrıca Hacim. Hacim == 1 ile yeni bir çubuğun 1 tikinin varış zamanı vardır.









 
r772ra :

Evet. Teklif b Sor ve ayrıca Hacim. Hacim == 1 ile yeni bir çubuğun 1 tikinin varış zamanı vardır.










Bir dizi çubuğa benzer bir diziye sahip olmak istedim, böylece, örneğin, her bir tike sırayla başvurabilelim, tarihten bahsettiğimiz açık. Tarihte mevcut olan alıntı değerlerinden manuel olarak (kendi başıma) böyle bir dizi oluşturmak zorunda kalacağımı hissediyorum. Ve sonra bu dizinin elemanlarına erişin

 

Merhaba! SMA göstergesini anlama. Anlayamıyorum:

 int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//--- check for bars count
   if (rates_total<InpMAPeriod- 1 || InpMAPeriod< 2 )
       return ( 0 );
//--- counting from 0 to rates_total
   ArraySetAsSeries (ExtLineBuffer, false ); //  если не объявлять то по умолчанию разве не стоит тоже самое?
   ArraySetAsSeries (close, false );
//--- first calculation or number of bars was changed

 //+------------------------------------------------------------------+
//|   simple moving average                                          |
//+------------------------------------------------------------------+
void CalculateSimpleMA( int rates_total, int prev_calculated, const double &price[])
  {
   int i,limit;
//--- first calculation or number of bars was changed
   if (prev_calculated== 0 )
   
     {
      limit=InpMAPeriod;
       //--- calculate first visible value
       double firstValue= 0 ;
       for (i= 0 ; i<limit; i++)
         firstValue+=price[i];
      firstValue/=InpMAPeriod;
      ExtLineBuffer[limit- 1 ]=firstValue;          Не чего не пойму, записываем в массив где limit =периоду(например 15-1),
     }
   else
      limit=prev_calculated- 1 ;                       После первого запуска пусть будет равен Limit = 256 - 1;
//--- main loop
   for (i=limit; i<rates_total && ! IsStopped (); i++)
      ExtLineBuffer[i]=ExtLineBuffer[i- 1 ]+(price[i]-price[i-InpMAPeriod])/InpMAPeriod;  Тогда ExtLineBuffer[i-1]=0 т.к. ExtLineBuffer[256-1]=0 так получается, объясните пожалуйста эту строчку.
                                                                                                       Заранее благодарю
//---
  }
 Если надо вставить (High[i+j]+Low[i+j])*0.5; то есть применить Median Price (HL/2)  Куда лучше подставить?
 

Test cihazında optimizasyon yaparken, günlükte genellikle aşağıdaki mesaj açılır

"2015.03.05 11:04:55.924 Bellek işleyici: 343699140 bayt bellek ayıramıyor"

Canım, söyle bana, terminal ne tür bir bellek algılayamaz? Nasıl tedavi edilir?

 

Tünaydın! Lütfen aşağıdaki koda bakın, sinyal üzerinde "Ok" nesnesinin oluşturulması , log üzerinden geçmesine rağmen test cihazında ok çizmiyor ve test cihazında başladığında logda bir hata yazıyor TestGenerator: unmatched veri hatası (2014.10.13 17:10'da 412 ses sınırı aşıldı),

ve test sırasında bir hata veriyor "Ok USDJPYm,M5 kontrol ediliyor: Nesne oluşturma hatası: kod #4200" - ancak bunun normal olduğunu anlıyorum, çünkü program ilk başta nesnenin oluşturulduğunu tespit eder ve silindikten sonra onu yeniden oluşturur. Genel olarak, sorular hakkındaki yorumlarınız için minnettar olacağım.

Yazıldığı gibi kesinlikle yargılamayın.

 //+------------------------------------------------------------------+
//| SignalOpenOrderBuy SendMail                                      |
//+------------------------------------------------------------------+
if (PLO0>S0 && PLO1<=S1 && PLO2<S2 && Time[ 0 ] > SignalTime)
{
SignalTime = TimeCurrent ();
bool SignalBuy = ObjectCreate ( 0 , "ArrowBay" , OBJ_ARROW_BUY , 0 , 0 ,Bid,SignalTime);
Print ( "Стрелка Buy установлена" );
ObjectSetInteger ( 0 , "ArrowBay" , OBJPROP_COLOR , clrGreen );
if (!SignalBuy)
Print ( "Ошибка создания объекта: code #" , GetLastError ());
ResetLastError ();
ObjectDelete ( 0 , "ArrowBay" );
RefreshRates();
SignalBuy = ObjectCreate ( 0 , "ArrowBay" , OBJ_ARROW_BUY , 0 , 0 ,Bid,SignalTime);
ObjectSetInteger ( 0 , "ArrowBay" , OBJPROP_COLOR , clrGreen );
if (!SignalBuy)
Print ( "Ошибка создания объекта: code #" , GetLastError ());
else
Print ( "Стрелка Buy установлена" );
}