Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 857

 

Olá! Onde posso obter (onde está) o histórico das citações? E, o mais importante, como se referir a cada carrapato em mql?

 
ikatsko:

Olá! Onde posso obter (onde está) o histórico das citações? E, o mais importante, como se referir a cada carrapato em mql?

Talvez isso ajude. O método permite obter o histórico das citações, por carrapatos

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

 
Top2n:

Isso pode ajudar. O método permite obter o histórico das citações, através de um tick

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

Boa ligação. Obrigado! Mas há uma segunda pergunta: como usar o MQL para se referir a cada tick selecionado?
 
ikatsko:
Boa ligação. Obrigado! Mas há uma segunda pergunta: como usar o MQL para abordar cada tick selecionado?

Por meio de MQL. Experimente-o, compile-o como um EA e coloque-o em um gráfico, e procure o arquivo "Record" nos arquivos

//+------------------------------------------------------------------+
//|                                                Запись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;
}

Boa sorte.

 
r772ra:

Por meio de MQL. Experimente-o, compile-o como um EA e coloque-o em um gráfico, e procure o arquivo "Record" nos arquivos

Boa sorte.

Obrigado e boa sorte! Entendo que este procedimento escreverá os tiquetaques atuais no arquivo. Sim?
 
ikatsko:
Graças a você também! Entendo que este procedimento escreverá os tiquetaques atuais no arquivo. Sim?

Sim. Bid b Pergunte, e tambémVolume. Quando oVolume == 1, há um tempo de chegada de 1 tick de uma nova barra.









 
r772ra:

Sim. Bid b Ask, e tambémVolume. Quando oVolume == 1, há um tempo de chegada de 1 tick de uma nova barra.










Eu gostaria de ter uma matriz análoga à matriz de barras, para que eu pudesse me dirigir, por exemplo, consecutivamente a cada carrapato, obviamente, estamos falando de história. Sinto que terei que formar essa matriz manualmente (por mim mesmo) a partir dos valores de citações existentes na história. E depois disso, será capaz de tratar de elementos dessa matriz

 

Olá! estou desmontando o indicador SMA. Eu não consigo entender:

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)  Куда лучше подставить?
 

Ao otimizar no testador, a seguinte mensagem freqüentemente aparece no registro

"2015.03.05 11:04:55.924 Manipulador de memória: não pode alocar 343699140 bytes de memória"

Por favor, informe qual memória não pode ser detectada pelo terminal? Como pode ser consertado?

 

Olá! Por favor, veja o código abaixo, criação do objeto "Seta" no sinal, as setas não são desenhadas no testador, embora o log passe, e também no log na inicialização no testador escreve um erro TestGenerator: erro de dados incomparável (limite de volume 412 em 2014.10.13 17:10 excedido),

E durante os testes gera um erro "Checking USDJPYm,M5 arrow: Error in object creation: code #4200" - mas acho que isto é normal, porque no início o programa descobre que o objeto foi criado, e depois de apagá-lo, o cria novamente. Em geral, ficaria grato por seus comentários às perguntas.

Não julgue estritamente como escrito.

//+------------------------------------------------------------------+
//| 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 установлена");
}