Impulsion - page 21

 
Karputov Vladimir:
  1. Bien. Le temps d'arrivée du tick peut être enregistré non pas par incréments, mais directement en microsecondes depuis le début du programme MQL5. C'est ainsi que la pause entre les ticks sera calculée.
  2. Le deuxième champ sera alors le prix du tableau close[] - c'est-à-dire Bid.
  3. J'ai quelques doutes concernant Ask. Cela vaut-il la peine de le recevoir ? L'indicateur reçoit le tableau spread[] - il peut être écrit. La personne qui en a besoin calculera Demande.
  4. Nom du fichier dans ce format : Data_ticks_GBPUSD.f_2015.07.20 16_02_36.csv

Ajouté : Il s'agit d'une table comme celle-ci :

Pas du tout de rétrocompatibilité avec les versions du terminal. Pour MT4, il doit être entièrement refait. Qu'est-ce qui vous empêche d'enregistrer la date et non une heure synthétique ? Vous pouvez lier la date à quoi que ce soit, l'utiliser sans recalculer avec quoi que ce soit. Pourquoi faire un gâchis délibéré à l'avenir ? Vous ne savez pas ce que vous devrez faire d'autre avec le temps... Et là, nous devons aussi recalculer/convertir...

Qu'est-ce qui nous empêche d'écrire le Ask actuel au lieu du tableau spread[], qui est inutile dans MT4 ? Est-ce que vous coupez délibérément votre pied jusqu'au cou ? :)))

 

Ok. Il s'agit du format de fichier :

Время тика, микросекунд Время тика, секунд      Bid             Ask
76718                   20.07.2015 18:09        1.55962         1.55981
76838                   20.07.2015 18:09        1.55962         1.55981
190796                  20.07.2015 18:09        1.55961         1.55980
533045                  20.07.2015 18:09        1.55960         1.55979
989364                  20.07.2015 18:09        1.55961         1.55980
2058082                 20.07.2015 18:09        1.55960         1.55979
2397266                 20.07.2015 18:09        1.55961         1.55980
3498990                 20.07.2015 18:09        1.55962         1.55981
5276197                 20.07.2015 18:09        1.55962         1.55981
5276318                 20.07.2015 18:09        1.55962         1.55981
5714501                 20.07.2015 18:09        1.55967         1.55986
5825529                 20.07.2015 18:09        1.55968         1.55987
5825630                 20.07.2015 18:09        1.55968         1.55987
6095716                 20.07.2015 18:09        1.55969         1.55988
6419932                 20.07.2015 18:09        1.55968         1.55987
6795191                 20.07.2015 18:09        1.55969         1.55988
6972306                 20.07.2015 18:09        1.55968         1.55987
7017356                 20.07.2015 18:09        1.55967         1.55986
C'est bon ?
 
Roman Shiredchenko:

Quelque chose à ajouter sur le sujet...

Il y a un lien vers une vidéo - ils l'ont supprimé - ils pensaient que c'était de la publicité.

Comment puis-je partager la stratégie scalping sur laquelle j'écris les indicateurs ?

Comment placer la vidéo youtube dans les "vidéos intéressantes de juillet" ?

Je ne publierai pas le lien - je l'enverrai à Google : "Les principales caractéristiques de la stratégie"Forex Speedometer" sont l'absence d'indicateurs et la simplicité du trading. Type de stratégie - scalping. Cette stratégie peut être utilisée sur n'importe quelle paire de devises, mais il est conseillé de choisir des paires très volatiles avec un faible écart."

------------------------------------------------------------------------------------------

Ce sujet a également été abordé ici. Comment compter le temps d'arrivée de chaque tick dans le tableau et comment compter la vitesse...

Il est clair qu'il existe des variantes. Il est clair qu'en millisecondes, le temps de chaque tic-tac capturé sera visible... (Comment l'utiliser ensuite ? peut-être...)

Artem écrit à nouveau pour les particulièrement doués... :-)

Là-bas, il est proposé exactement de compter les tics par seconde - ici aussi, une telle variante était proposée...

Il y a une autre question ici - comment le tester ? Les comptes ndd de mon courtier avec spread minimum n'ont pas de démo. Si j'avais voulu utiliser le compte démo et le compte réel de mon courtier en devises, j'aurais vérifié le nombre de ticks - c'est le même...

La question sera de savoir comment traiter par programme les données collectées sur les transactions virtuelles dans un fichier csv eexcel et ticks... à partir de comptes réels.

La question sera de traiter les données collectées pour les trades virtuels, en fichier csv en eexsv et les ticks des comptes réels.... :-)

Comment puis-je intégrer les ticks du fichier csv dans l'historique pour le testeur de stratégie MT4 ?

J'ai essayé quelque chose de similaire (pas cette stratégie, j'ai inventé la mienne) il n'y a pas si longtemps, mais je l'ai abandonné. Je dois tester un tel système en temps réel, car le testeur ne fait que simuler des ticks. J'ai observé le conseiller expert pendant deux heures, puis j'ai copié le code pendant 5 minutes et ainsi de suite. Les résultats ne sont pas très bons, beaucoup de transactions avec de petits profits, mais un stoploss écrase souvent tous les profits. Comme alternative, on devrait utiliser la martingale pour éviter l'accumulation de pertes sur les actions. J'ai un Expert Advisor sur un martin sans cela et sa mise en œuvre est beaucoup plus simple.
 

La base de l'enregistrement des tics est là.

//+------------------------------------------------------------------+
//|                                             IndTickCollector.mq5 |
//|                              Copyright © 2015, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.01"
#property indicator_chart_window
#property description "Индикатор хранит тики. Время тика, микросекунд, Время тика, секунд , Bid, Ask"
#property indicator_buffers 0
#property indicator_plots   0
//+------------------------------------------------------------------+
//| Индикатор расчитывает скорость прихода тиков.                    |
//+------------------------------------------------------------------+
//--- parameters
int file_handle; // хэндл файла
string FileName; // имя файла
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- open file
//--- время начала сбора тиков - текущее
   datetime time_start=TimeCurrent();
//--- откроем файл для записи значений индикатора (если его нет, то создастся автоматически)
   ResetLastError();
   FileName="Data_ticks_"+Symbol()+"_"+TimeToString(time_start,TIME_DATE|TIME_MINUTES|TIME_SECONDS)+".csv";
   StringReplace(FileName,":","-");
   file_handle=FileOpen(FileName,FILE_READ|FILE_WRITE|FILE_CSV);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("Файл %s открыт для записи",FileName);
      PrintFormat("Путь к файлу: %s\\MQL5\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- запишем название колонок
      FileWrite(file_handle,"Время тика, микросекунд","Время тика, секунд","Bid","Ask");
     }
   else
      PrintFormat("Не удалось открыть файл %s, Код ошибки = %d",FileName,GetLastError());
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,      // размер массива price[]
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const int begin,            // откуда начинаются значимые данные
                 const double& price[]       // массив для расчета
                 )
  {
   ulong microsecond_count=GetMicrosecondCount(); // зафиксировали вход в OnCalculate()
   int start=0;
   if(prev_calculated!=0) // работаем только на пришедших тиках, так как на истории нет времени тиков
     {
      MqlTick last_tick;
      //---
      if(SymbolInfoTick(Symbol(),last_tick))
        {
         FileWrite(file_handle,microsecond_count,last_tick.time,
                   DoubleToString(last_tick.bid,Digits()),DoubleToString(last_tick.ask,Digits()));
        }
      else Print("SymbolInfoTick() failed, error = ",GetLastError());
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- закрываем файл
   FileClose(file_handle);
   PrintFormat("Данные записаны, файл %s закрыт",FileName);
//--- очищаем комментарии
   Comment("");
  }
//+------------------------------------------------------------------+


Format du nom de fichier :

Data_ticks_GBPUSD.f_2015.07.21 12-06-14.csv

Le fichier comporte quatre colonnes :

Время тика, микросекунд Время тика, секунд      Bid             Ask
76718                   20.07.2015 18:09        1.55962         1.55981
76838                   20.07.2015 18:09        1.55962         1.55981
190796                  20.07.2015 18:09        1.55961         1.55980
533045                  20.07.2015 18:09        1.55960         1.55979
989364                  20.07.2015 18:09        1.55961         1.55980


Des questions subsistent quant à la fréquence de démarrage des nouveaux dossiers. Je pense que chaque fichier devrait être lancé toutes les heures. Cela facilitera l'analyse ultérieure.

 
Karputov Vladimir:

La base de l'enregistrement des tics est là.

Format du nom de fichier :

Le fichier comporte quatre colonnes :

Des questions subsistent quant à la fréquence de lancement de nouveaux dossiers. Je pense que chaque fichier devrait être lancé toutes les heures. Ainsi, il sera plus facile de l'analyser par la suite.

Ce n'est pas techniquement optimal. Tout d'abord, pourquoi écrire des microsecondes ? Ce format est meilleur :

Время, DD.MM.YYY HH:mm:ss:sss     Bid    Ask
20.07.2015 18:09:323            1.55962  1.55981 

Le format CSV devrait être abandonné au profit du format XML. La tâche de sérialisation des données Object To Xml <--> XML To Object est évidente. En cas de besoin, il sera facile d'ajouter de nouveaux paramètres. A stocker au jour le jour bien sûr. 1 dossier - 1 jour d'histoire de la tique.

 
Quant à l'idée elle-même, elle est bien sûr totalement absurde (avec tout le respect que je vous dois). Vous faites une identité entre la volatilité et le momentum (mouvement directionnel). Mais c'est fondamentalement faux. Cette corrélation est pratiquement inexistante et l'approche choisie ne mènera donc nulle part.
 
Vasiliy Sokolov:
Quant à l'idée elle-même, elle est bien sûr totalement absurde (avec tout le respect que je vous dois). Vous faites une identité entre la volatilité et le momentum (mouvement directionnel). Mais c'est fondamentalement faux. Cette corrélation est pratiquement inexistante et l'approche choisie ne mènera donc nulle part.

L'essentiel est de recueillir des données sur les tics. C'est comme la base de la recherche. Et déjà sur cette base, différents modèles peuvent être testés.

Ajouté : Et oui, il n'y a toujours pas de définition claire de l'impulsion.

 
Karputov Vladimir:

L'essentiel est de recueillir des données sur les tics. C'est comme la base de la recherche. Et déjà sur cette base, différents modèles peuvent être testés.

Ajouté : Et oui, il n'y a toujours pas de définition claire de l'impulsion.

Pour être plus précis : il n'y a pas de formulation claire nécessaire ici... et après tout c'est une base, une base vraiment nécessaire... sans cette formulation tout sera bancal, bancal...

Par exemple, il y a une formulation très claire dans l'ingénierie des impulsions. J'ai donné un exemple tout à l'heure. Bien sûr, vous ne pouvez pas vous limiter à une seule photo. Cette théorie est vaste, et elle sera très utile pour son application ici.

 

Je vais essayer une fois de plus de clarifier mon point de vue...

Bien qu'elle soit très grossière, c'est une photo qui donne une idée :



Les paramètres d'impulsion - les variables - doivent être déterminés à la volée.

 
Олег avtomat:

Je vais essayer une fois de plus de clarifier mon point de vue...

Bien que très sommaire, c'est une image qui donne une idée :



Les paramètres - variables - des impulsions doivent être déterminés à la volée.

Oleg, où est le pouls dans cette photo ? Ensuite, décomposez-la en composantes tic-tac-temps, au lieu de proposer un graphique des jours.
Raison: