Compensation substantielle ???? - page 11

 
Dmi3 #:

Zerich dispose d'un historique complet des garanties jusqu'en janvier de cette année. Prenez n'importe quel jour et comparez-le avec les données d'archives d'Otkritie-MT5.

Quel est le problème ?

Puis-je obtenir le lien ?

 
Dmitriy Skub #:

Puis-je avoir le lien ?

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

 
Dmi3 #:

Zerich dispose d'un historique complet des garanties jusqu'en janvier de cette année. Prenez n'importe quel jour et comparez-le avec les données d'archives d'Otkritie-MT5.

Quel est le problème ?

Le problème est que vous proposez de comparer "un morceau de gâteau avec un morceau de savon", QScalp n'est pas un indicateur, vous avez besoin des données originales.

C'est-à-dire échanger des données, sinon je fais plus confiance aux données de Vladimir.

 
prostotrader #:

Le problème est que vous proposez de comparer "bump and grind", QScalp n'est pas un indicateur, vous avez besoin des données originales.

C'est-à-dire échanger des données.

Mon ami, alors que vous êtes couvert de mousse ici, ces données sont utilisées par la troisième génération d'algotraders. Mais vous pouvez trouver n'importe quelle excuse pour ne pas développer :)

 
Dmi3 #:

Mon ami, pendant que tu te couvres de mousse ici, ces données sont déjà utilisées par la troisième génération d'algotraders. Mais vous pouvez trouver n'importe quelle excuse pour ne pas évoluer :)

Je ne suis pas ton ami et je me fiche de ton évolution...

 
prostotrader #:

Je ne suis pas ton compagnon et je me fiche de ton évolution...

Oui, vous avez certainement toujours une atmosphère très spécifique ici.

 
Dmi3 #:

Oui, vous avez toujours une atmosphère très spécifique ici, bien sûr.

Contrairement à vous et à d'autres personnes comme vous, je publie des codes, des résultats de codes et d'autres informations connexes,

Je peux me tromper sur certaines choses, mais tu fais juste des histoires !

 

Vladimir !

J'ai écrit un collecteur de ticks, en espérant que MT-5 diffuse toujours correctement les cotations, mais ne les inscrit pas correctement dans l'historique.

Je vais le faire fonctionner sur GAZR-12.21 tous les jours.

Si possible, envoyez votre dossier au moment qui vous convient le mieux.

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

Contrairement à vous et à d'autres personnes comme vous, je publie des codes, des résultats de codes et d'autres informations connexes,

Je peux me tromper sur certaines choses bien sûr, vous ne faites que secouer l'air !

Dans les endroits où l'atmosphère est normale, je partage une bonne partie des informations dont les commerçants ont besoin. Pas le code bien sûr, ma compétence ici est faible, tout comme la vôtre, cependant.
Il suffit d'utiliser le lien et de dire merci, ce n'est pas difficile 🙂 .
 
Dmi3 #:
Dans les endroits où l'atmosphère est normale, je partage une bonne partie des informations dont les commerçants ont besoin. Pas de code bien sûr, mes compétences ici sont faibles, tout comme les vôtres, d'ailleurs.
Il suffit d'utiliser le lien et de dire merci, ce n'est pas difficile 🙂 .
Tu regardes les gens comme toi et tu te dis... une autre personne arrogante, ou dans notre cas, un moulin à paroles ! Il existe une telle catégorie de citoyens. J'aime particulièrement la façon dont vous tirez des conclusions sur les autres. Et savez-vous qu'en psychologie, il existe un exemple tel qu'un homme pense avec ses propres catégories de cartes mentales construites au cours de la croissance et de la formation de la personnalité et que lorsque vous parlez de quelqu'un, alors vous parlez avant tout de vous-même, car vous utilisez vos cartes mentales pour percevoir le monde. Pensez toujours à cela avant d'accuser quelqu'un de quelque chose ! !!
Raison: