Клиринг по существу???? - страница 11

 
Dmi3 #:

На Церихе есть полные ордерлоги до января этого года. Берите любой день и сравнивайте с архивными данными Открытия-МТ5.

В чем проблемы?

А можно ссылочку?

 
Dmitriy Skub #:

А можно ссылочку?

https://ftp.zerich.com/pub/Terminals/QScalp/History/

 
Dmi3 #:

На Церихе есть полные ордерлоги до января этого года. Берите любой день и сравнивайте с архивными данными Открытия-МТ5.

В чем проблемы?

Проблема в том, что Вы предлагаете сравнивать "шило с мылом", QScalp - не показатель, нужны оригинальные данные.

Т.е данные Биржи, а в противном случая, я больше доверяю данным Владимира.

 
prostotrader #:

Проблема в том, что Вы предлагаете сравнивать "шило с мылом", QScalp - не показатель, нужны оригинальные данные.

Т.е данные Биржи

Дружище, пока вы здесь покрываетесь мхом, этими данными пользуется уже третье поколение алготрейдеров. Но вы себе можете найти любые отговорки, чтобы не развиваться :)

 
Dmi3 #:

Дружище, пока вы здесь покрываетесь мхом, этими данными пользуется уже третье поколение алготрейдеров. Но вы себе можете найти любые отговорки, чтобы не развиваться :)

Я Вам не дружище, и мне по-барабану, как Вы развились...

 
prostotrader #:

Я Вам не дружище, и мне по-барабану, как Вы развились...

Да, у вас здесь, конечно всегда весьма специфическая атмосфера. 

 
Dmi3 #:

Да, у вас здесь, конечно всегда весьма специфическая атмосфера. 

В отличии от Вас и Вам подобных, я выкладываю код, результаты работы кода и другую сопутствующую информацию,

могу, конечно, в чем-то ошибаться, Вы же - только сотрясаете воздух!

 

Владимир!

Написал сборщик тиков, в надежде, что МТ-5 все же правильно транслирует котировки, но не правильно заносит их в историю.

Буду запускать на GAZR-12.21 каждый день.

По возможности, пришлите Ваш файл когда Вам будет удобно

//+------------------------------------------------------------------+
//|                                                 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 #:

В отличии от Вас и Вам подобных, я выкладываю код, результаты работы кода и другую сопутствующую информацию,

могу, конечно, в чем-то ошибаться, Вы же - только сотрясаете воздух!

В местах с нормальной атмосферой я делюсь достаточным количеством нужной трейдерам информации. Не кодом конечно, здесь у меня слабые компетенции, как и у вас, впрочем.
Просто пользуйтесь ссылкой и скажите спасибо, это не сложно 🙂
 
Dmi3 #:
В местах с нормальной атмосферой я делюсь достаточным количеством нужной трейдерам информации. Не кодом конечно, здесь у меня слабые компетенции, как и у вас, впрочем.
Просто пользуйтесь ссылкой и скажите спасибо, это не сложно 🙂
Вот так посмотришь на подобных Вам и думаешь, Ну... очередная зазнайка или в нашем случае болтололог! Есть такая категория граждан. Особенно понравилось как Вы делаете выводы о других. А Вы в курсе что в психологии есть такой пример, что человек мыслит своими собственными категориями ментальных карт построенных в ходе взросления и формирования личности и когда Вы говорите о ком то ТО Вы говорите прежде всего о себе, поскольку пользуетесь своими ментальными картами восприятия мира. Думайте об этом всегда прежде чем обвинить кого то в чём то!!!