Limpeza substancial???? - página 11

 
Dmi3 #:

Zerich tem garantias completas até janeiro deste ano. Leve qualquer dia e compare-os com os dados do arquivo Otkritie-MT5.

Qual é o problema?

Posso obter o link?

 
 
Dmi3 #:

Zerich tem garantias completas até janeiro deste ano. Leve qualquer dia e compare-os com os dados do arquivo Otkritie-MT5.

Qual é o problema?

O problema é que você se propõe a comparar "um pedaço de bolo com um pedaço de sabão", QScalp não é um indicador, você precisa dos dados originais.

Isto é, trocar dados, senão eu confio mais nos dados de Vladimir.

 
prostotrader #:

O problema é que você está propondo comparar "bump and grind", QScalp não é um indicador, você precisa dos dados originais.

Isto é, trocar dados.

Meu amigo, enquanto você está coberto de musgo aqui, estes dados são utilizados pela terceira geração de algotraders. Mas você pode encontrar qualquer desculpa para não desenvolver :)

 
Dmi3 #:

Meu amigo, enquanto você está se cobrindo de musgo aqui, estes dados já estão sendo utilizados pela terceira geração de algotraders. Mas você pode encontrar qualquer desculpa para não evoluir :)

Não sou seu amigo e não me importa como você evoluiu...

 
prostotrader #:

Não sou seu companheiro e não me importa como você evoluiu...

Sim, você certamente sempre tem uma atmosfera muito específica aqui.

 
Dmi3 #:

Sim, você sempre tem uma atmosfera muito específica aqui, é claro.

Ao contrário de você e de outros como você, eu estou postando código, resultados de código e outras informações relacionadas,

Posso estar errado sobre algumas coisas, mas você só está fazendo um alarido!

 

Vladimir!

Escrevi um coletor de carrapatos, esperando que o MT-5 ainda transmita corretamente as citações, mas não as introduza corretamente na história.

Eu o executarei no GAZR-12.21 todos os dias.

Se possível, envie seu arquivo quando for conveniente para você

//+------------------------------------------------------------------+
//|                                                 FS_Collector.mq5 |
//|                                     Copyright 2021, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   3
//--- plot Label1
#property indicator_label1  "ASK"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot Label2
#property indicator_label2  "BID"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrBlue
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1

//--- plot Label3
#property indicator_label3  "LAST"
#property indicator_type3   DRAW_LINE
#property indicator_color3  clrYellow
#property indicator_style3  STYLE_SOLID
#property indicator_width3  1
//---
#define  on_call -111
//---
input string StTime =  "10:00:00";  //Начало сбора тиков
input string EndTime = "23:50:00";  //Конец сбора тиков
//--- 
struct MARKET_DATA
{
  int cnt;
  datetime time[];
  double ask[];
  double bid[];
  double last[];
}m_data;
string spot_symbol;
bool fut_book;
double AskBuff[], BidBuff[], LastBuff[];
int event_cnt;
double ask_price, bid_price, last_price;
int f_handle; 
datetime start_time, end_time;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
  event_cnt = 0;
  m_data.cnt = 0;
  ArrayResize(m_data.time, 50000000, 50000000);
  ArrayResize(m_data.ask, 50000000, 50000000);
  ArrayResize(m_data.bid, 50000000, 50000000);
  ArrayResize(m_data.last, 50000000, 50000000);
  if(Period() != PERIOD_M1)
  {
    Alert("Индикатор использует таймфрейм М1!");
    return(INIT_FAILED);
  }
  fut_book = MarketBookAdd(Symbol());
  if(fut_book == false)
  {
    Alert("Не добавлен стакан фьючерса!");
    return(INIT_FAILED);
  }
  IndicatorSetInteger(INDICATOR_DIGITS, 2);
  IndicatorSetString(INDICATOR_SHORTNAME, "FS_Collector");
//---  
  SetIndexBuffer(0, AskBuff, INDICATOR_DATA);
  PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, EMPTY_VALUE);
  ArraySetAsSeries(AskBuff, true); 
  
  SetIndexBuffer(1, BidBuff, INDICATOR_DATA);
  PlotIndexSetDouble(1, PLOT_EMPTY_VALUE, EMPTY_VALUE);
  ArraySetAsSeries(BidBuff, true);
  
  SetIndexBuffer(2, LastBuff, INDICATOR_DATA);
  PlotIndexSetDouble(2, PLOT_EMPTY_VALUE, EMPTY_VALUE);
  ArraySetAsSeries(LastBuff, true);
  f_handle = FileOpen("AB_Colletor.csv", FILE_WRITE|FILE_CSV);
  if(f_handle == INVALID_HANDLE)
  {
    Alert("Не создан *.CSV файл!");
    return(INIT_FAILED);
  }
  else
  {
    FileWrite(f_handle, "Symbol: ", Symbol());
    FileWrite(f_handle, "Date", "Time", "ASK", "BID", "LAST");
  }
  start_time = StringToTime(StTime);
  end_time = StringToTime(EndTime);
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
  if(f_handle != INVALID_HANDLE)
  {
    for(int i = 0; i<m_data.cnt;i++)
    {
      FileWrite(f_handle, TimeToString(m_data.time[i], TIME_DATE), TimeToString(m_data.time[i], TIME_SECONDS) ,DoubleToString(m_data.ask[i],
                Digits()), DoubleToString(m_data.bid[i], Digits()), DoubleToString(m_data.last[i], Digits()));
    }
    FileClose(f_handle);
    ArrayResize(m_data.time, 0, 0);
    ArrayResize(m_data.ask, 0, 0);
    ArrayResize(m_data.bid, 0, 0);
    ArrayResize(m_data.last, 0, 0);
  } 
  if(fut_book == true) MarketBookRelease(Symbol());
  if(reason == REASON_INITFAILED)
  {
    Print("Индикатор удалён! Причина - ошибка инициализации.");
    string short_name = ChartIndicatorName(ChartID(), 1, 0);
    ChartIndicatorDelete(ChartID(), 1, short_name); 
  }
}
//+------------------------------------------------------------------+
// Custom indicator Get data function                                |
//+------------------------------------------------------------------+
/*ulong GetStakan(const string a_symb, double &ask_pr, double &bid_pr)
{
  MqlBookInfo book_price[];
  if(MarketBookGet(a_symb, book_price) == true)//getBook )
  {
  }
  return(0);
}*/
//+------------------------------------------------------------------+
// Custom indicator Get data function                                |
//+------------------------------------------------------------------+
bool GetData()
{
  datetime cur_time = TimeTradeServer();
  if((cur_time >=start_time)&&(cur_time<end_time))
  {
    ask_price = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
    bid_price = SymbolInfoDouble(Symbol(), SYMBOL_BID);
    last_price = SymbolInfoDouble(Symbol(), SYMBOL_LAST);
    if((ask_price > 0)&&(bid_price > 0)&&(last_price > 0))
    {
      m_data.time[m_data.cnt] = cur_time;
      m_data.ask[m_data.cnt] = ask_price; 
      m_data.bid[m_data.cnt] = bid_price;
      m_data.last[m_data.cnt] = last_price;
      m_data.cnt++;
      return(true);
    }
  }  
  return(false);
}
//+------------------------------------------------------------------+
// Custom indicator On book event function                           |
//+------------------------------------------------------------------+
void OnBookEvent(const string& symbol)
{
  if(symbol == Symbol())
  {
    GetData();
    double price[]; 
    OnCalculate(event_cnt, event_cnt, on_call, price);
  }
}  
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
{
  if(prev_calculated == 0)
  {
    ArrayInitialize(AskBuff, EMPTY_VALUE);
    ArrayInitialize(BidBuff, EMPTY_VALUE);
    ArrayInitialize(LastBuff, EMPTY_VALUE);
  }
  if(begin != on_call) GetData(); 
  AskBuff[0] = ask_price;
  BidBuff[0] = bid_price;
  LastBuff[0] = last_price;
  event_cnt = rates_total;
  return(rates_total);
}
//+------------------------------------------------------------------+
 
prostotrader #:

Ao contrário de você e de outros como você, eu estou postando código, resultados de código e outras informações relacionadas,

Eu posso estar errado sobre algumas coisas, é claro, mas você - apenas agitando o ar!

Em lugares com uma atmosfera normal eu compartilho uma quantidade razoável de informações que os comerciantes precisam. Mas não o código, é claro, minha competência aqui é fraca, assim como a sua.
Basta usar o link e dizer obrigado, não é difícil 🙂
 
Dmi3 #:
Em lugares com uma atmosfera normal eu compartilho uma quantidade razoável de informações que os comerciantes precisam. Não código, é claro, minha competência aqui é fraca, assim como a sua, porém.
Basta usar o link e dizer obrigado, não é difícil 🙂
Você olha para pessoas como você e pensa, Bem... outra pessoa arrogante, ou no nosso caso, uma tagarela! Há uma categoria de cidadãos assim. Eu gosto especialmente da maneira como você tira conclusões sobre os outros. E você sabe que em psicologia existe um exemplo tal que um homem pensa com suas próprias categorias de mapas mentais construídos durante o crescimento e formação da personalidade e quando você fala de alguém ENTÃO você está falando principalmente de si mesmo porque você usa seus mapas mentais para perceber o mundo. Pense sempre nisso antes de acusar alguém de alguma coisa!!!