Inhaltliche Klärung???? - Seite 11

 
Dmi3 #:

Zerich verfügt über vollständige Garantieprotokolle bis zum Januar dieses Jahres. Nehmen Sie einen beliebigen Tag und vergleichen Sie ihn mit den Otkritie-MT5-Archivdaten.

Was ist das Problem?

Kann ich den Link bekommen?

 
Dmitriy Skub #:

Kann ich den Link haben?

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

 
Dmi3 #:

Zerich verfügt über vollständige Garantieprotokolle bis zum Januar dieses Jahres. Nehmen Sie einen beliebigen Tag und vergleichen Sie ihn mit den Otkritie-MT5-Archivdaten.

Was ist das Problem?

Das Problem ist, dass Sie vorschlagen, "ein Stück Scheiße" zu vergleichen, QScalp ist kein Indikator, Sie brauchen die Originaldaten.

D.h. Daten austauschen, ansonsten vertraue ich den Daten von Vladimir mehr.

 
prostotrader #:

Das Problem ist, dass Sie vorschlagen, "bump and grind" zu vergleichen, QScalp ist kein Indikator, Sie brauchen die Originaldaten.

D.h. Daten austauschen.

Mein Freund, während Sie hier mit Moos bedeckt sind, werden diese Daten von der dritten Generation der Algotrader verwendet. Aber Sie können jede Ausrede finden, um nicht zu entwickeln :)

 
Dmi3 #:

Mein Freund, während Sie sich hier in Moos wälzen, werden diese Daten bereits von der dritten Generation der Algotrader genutzt. Aber du kannst jede Ausrede finden, um dich nicht weiterzuentwickeln :)

Ich bin nicht dein Freund und es ist mir egal, wie du dich entwickelt hast...

 
prostotrader #:

Ich bin nicht dein Kumpel und es ist mir egal, wie du dich entwickelt hast...

Ja, hier herrscht immer eine ganz besondere Atmosphäre.

 
Dmi3 #:

Ja, hier herrscht natürlich immer eine ganz besondere Atmosphäre.

Im Gegensatz zu Ihnen und anderen poste ich Code, Code-Ergebnisse und andere verwandte Informationen,

Ich mag mich in einigen Dingen irren, aber du machst nur Theater!

 

Wladimir!

Ich habe einen Tick-Collector geschrieben, in der Hoffnung, dass MT-5 die Kurse immer noch korrekt sendet, sie aber nicht korrekt in die Historie einträgt.

Ich werde es jeden Tag auf GAZR-12.21 laufen lassen.

Wenn möglich, senden Sie Ihre Datei, wenn es für Sie günstig ist

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

Im Gegensatz zu Ihnen und anderen poste ich Code, Codeergebnisse und andere damit zusammenhängende Informationen,

Ich mag mich natürlich in einigen Dingen irren, aber Sie - Sie schütteln nur die Luft!

An Orten, an denen eine normale Atmosphäre herrscht, teile ich eine ganze Reihe von Informationen, die Händler benötigen. Natürlich nicht den Code, meine Kompetenz ist hier schwach, genau wie Ihre.
Einfach den Link benutzen und Danke sagen, das ist nicht schwer 🙂 .
 
Dmi3 #:
An Orten, an denen eine normale Atmosphäre herrscht, teile ich eine ganze Reihe von Informationen, die Händler benötigen. Natürlich kein Code, meine Kompetenz ist hier schwach, Ihre allerdings auch.
Einfach den Link benutzen und Danke sagen, das ist nicht schwer 🙂 .
Sie sehen Leute wie Sie an und denken: "Na ja... eine weitere arrogante Person, oder in unserem Fall, eine Plaudertasche! Es gibt eine solche Kategorie von Bürgern. Mir gefällt besonders, wie Sie Rückschlüsse auf andere ziehen. Und wissen Sie, dass es in der Psychologie ein Beispiel dafür gibt, dass ein Mensch mit seinen eigenen Kategorien von mentalen Landkarten denkt, die während des Wachstums und der Bildung der Persönlichkeit gebildet werden, und wenn Sie über jemanden sprechen, dann sprechen Sie in erster Linie über sich selbst, weil Sie Ihre mentalen Landkarten benutzen, um die Welt wahrzunehmen. Denken Sie immer daran, bevor Sie jemandem etwas vorwerfen!!!