Compensation substantielle ???? - page 4

 
Vladimir Mikhailov #:

Pas si joli, tout est réduit au minimum, pour la rapidité.


J'ai eu une bonne idée.

MT5 était très mauvais dans l'exécution des ordres de transaction,

J'ai donc voulu développer mon propre terminal (sans fioritures), uniquement pour le trading.

J'ai dû connecter DLL-robots mais je ne l'ai toujours pas terminé,

Je n'ai pas le temps pour ça, et mes compétences ne sont pas à la hauteur.

 
Mes excuses à mon courtier. Il s'avère que l'historique de mes barres dans la fenêtre était petit et se déplaçait chaque jour, d'où ces problèmes. Maintenant, j'ai tout corrigé, construit de nouveaux modèles, nous verrons lundi comment le modèle se comportera !!!!!.
 
Vladimir Mikhailov #:

Pas si joli, tout est au minimum, pour la rapidité.


Même pas drôle, hélas.

 
Vladimir Mikhailov #:

Pas si joli, tout est au minimum, pour la rapidité.


Cela a-t-il un sens de collecter des ticks pour 10 000 roubles par mois ?

 
prostotrader #:

Cela a-t-il un sens de collecter des ticks pour 10 000 roubles par mois ?

La collecte de citations est une fonction secondaire, la fonction principale étant le commerce.
Lorsque vous savez et voyez comment les données sont collectées, vous avez davantage confiance en elles.
Il y a également un minimum d'intermédiaires sous la forme de logiciels tiers avec connexion directe.

Lorsque l'on teste l'algorithme de trading sur l'historique MT5, les résultats sont comme un doigt dans le ciel.
Mon propre testeur montre de bons résultats sur l'historique collecté, toutes les transactions correspondent exactement à une seconde de négociation réelle.

Mes algorithmes de trading sont conçus pour le trading intraday et sont très sensibles aux données entrantes.
Mais si vous faites du commerce à long terme, vous n'avez pas besoin d'être directement connecté et l'exigence d'historique n'est peut-être pas aussi importante.
 
Vladimir Mikhailov #:

La collecte de citations est une fonction secondaire, la fonction principale étant le commerce.
Lorsque vous savez et voyez comment les données sont collectées, vous avez davantage confiance en elles.
De plus, les intermédiaires sous la forme de logiciels tiers sont réduits au minimum lorsque la connexion est directe.

Lorsque l'on teste l'algorithme de trading sur l'historique MT5, les résultats sont comme un doigt dans le ciel.
Mon propre testeur montre de bons résultats sur l'historique collecté, toutes les transactions correspondent exactement à une seconde de négociation réelle.

Mes algorithmes de trading sont affinés pour le trading intraday et sont très sensibles aux données entrantes.
Mais si vous négociez à long terme, la connexion directe n'est pas nécessaire et l'exigence d'historique n'est peut-être pas aussi importante.

Négociez-vous le même instrument ?

Ajouté par

À en juger par la capture d'écran que vous avez postée, cela ressemble beaucoup à un arbitrage classique (GAZR-12,21 contre GAZP), qui fonctionne bien même dans KVIC.

 
prostotrader #:

Négociez-vous le même instrument ?

Ajouté

À en juger par la capture d'écran que vous avez postée, cela ressemble beaucoup à un arbitrage classique (GAZR-12,21 contre GAZP), qui fonctionne bien même dans KVIC.

Je négocie plus d'un instrument. Oui, cet algorithme est basé sur l'arbitrage classique.

 
Vladimir Mikhailov #:

Je négocie plus d'un instrument. Oui, cet algorithme est basé sur l'arbitrage classique.

Je ne vois qu'une seule raison pour le speed trading - le trading de densité avec gélification,

dans d'autres cas, la vitesse n'est pas nécessaire.

Mais dans ce cas, l'analyse n'est pas du tout nécessaire.

Mais vous le savez mieux que moi...

Ajouté

Si ma mémoire est bonne, dans CGate vous pouvez recevoir des cotations boursières, mais

mais vous ne pouvez pas envoyer de commandes.

C'est un peu délicat...

 
prostotrader #:

Je ne vois qu'une seule raison d'effectuer des échanges rapides : l'échange de densité avec gélification,

dans d'autres cas, la vitesse n'est pas nécessaire.

Mais dans ce cas, l'analyse n'est pas du tout nécessaire.

Mais tu sais mieux que quiconque...

Ajouté

Si ma mémoire est bonne, dans CGate vous pouvez recevoir des cotations boursières, mais

mais vous ne pouvez pas envoyer de commandes.

Vous n'êtes pas très malin.

C'est vrai, vous ne traitez qu'avec un seul instrument.
Bien que l'algorithme soit basé sur l'arbitrage, il ne négocie que des contrats à terme.

 
Vladimir Mikhailov #:

C'est vrai, il n'y a qu'un seul instrument négocié.
Bien que l'algorithme soit basé sur l'arbitrage, il ne négocie que des contrats à terme.

Vous m'avez fait douter que MT5 transmette correctement les cotations.

Puisque vous collectez les ticks sur GAZR-12.21 pouvez-vous me donner le fichier pour le vendredi dernier 15.10.2021 ?

Je veux comparer s'il y a des divergences.

J'ai fait une comparaison avec le KVIC il y a environ 5 ans, il n'y avait pas de divergences.

Ajouté

N'hésitez pas à comparer

//+------------------------------------------------------------------+
//|                                                      G_ticks.mq5 |
//|                                     Copyright 2021, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
  MqlTick g_ticks[];
  string t_date;
  string t_time;
  string c_flags;
  int result = CopyTicksRange(Symbol(), g_ticks, COPY_TICKS_ALL, ulong(D'15.10.2021 07:00:00') * 1000, ulong(D'15.10.2021 23:50:00') * 1000);
  if(result > 0)
  {
    int f_handle=FileOpen("g_ticks.csv",FILE_WRITE|FILE_CSV); 
    if(f_handle!=INVALID_HANDLE)
    {
      FileWrite(f_handle,"Иструмент:", Symbol());
      FileWrite(f_handle,"Всего записей:", string(result));
      FileWrite(f_handle, "Номер", "Дата", "Время", "Флаги", "Цена(Last)", "Объем", "Предложение", "Спрос");
      for(int i=0;i<result;i++)
      {
        t_date = TimeToString(g_ticks[i].time, TIME_DATE);
        t_time = TimeToString(g_ticks[i].time, TIME_SECONDS) + "." + string( ulong(g_ticks[i].time_msc) - ulong(g_ticks[i].time)*1000);
        c_flags = "";
        if((g_ticks[i].flags&TICK_FLAG_BID) == TICK_FLAG_BID) c_flags += " TICK_FLAG_BID,"; 
        if((g_ticks[i].flags&TICK_FLAG_ASK) == TICK_FLAG_ASK) c_flags += " TICK_FLAG_ASK,";
        if((g_ticks[i].flags&TICK_FLAG_LAST) == TICK_FLAG_LAST) c_flags += " TICK_FLAG_LAST, ";
        if((g_ticks[i].flags&TICK_FLAG_VOLUME) == TICK_FLAG_VOLUME) c_flags += " TICK_FLAG_VOLUME,";
        if((g_ticks[i].flags&TICK_FLAG_BUY) == TICK_FLAG_BUY) c_flags += " TICK_FLAG_BUY.";
        if((g_ticks[i].flags&TICK_FLAG_SELL) == TICK_FLAG_SELL) c_flags += " TICK_FLAG_SELL,";
        int f_len = StringLen(c_flags);
        if(f_len > 1)
        {
          StringSetCharacter(c_flags, f_len - 1, ushort(" "));
          StringTrimRight(c_flags);          
        }
        if(c_flags == "")
        {
          FileWrite(f_handle, string(i + 1), t_date, t_time, string(g_ticks[i].flags), DoubleToString(g_ticks[i].last, Digits()), string(g_ticks[i].volume),
                      DoubleToString(g_ticks[i].ask, Digits()), DoubleToString(g_ticks[i].bid, Digits()));
        }
        else FileWrite(f_handle, string(i + 1), t_date, t_time, c_flags, DoubleToString(g_ticks[i].last, Digits()), string(g_ticks[i].volume),
                      DoubleToString(g_ticks[i].ask, Digits()), DoubleToString(g_ticks[i].bid, Digits())); 
      }
      FileClose(f_handle);
    }  
  }
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }

//+------------------------------------------------------------------+

Ajouté

Et peut-être d'autres programmes, en quelque sorte séparer les ticks qui ont plus d'un drapeau.


Dossiers :
1_g_ticks.zip  781 kb