Quelques signes des bons CTs - page 9

 
Petros Shatakhtsyan:

Pourquoi est-ce hors sujet ?

Lorsque nous augmentons le prix ou le multiplions par une constante, la nature du mouvement du prix ne change pas.

J'ai peut-être mal interprété le terme "test de stabilité". S'il s'agit d'évaluer la robustesse du TS, alors c'est hors sujet.

 
fxsaber:

En ce qui concerne le flipping et même le shuffling, je veux faire des recherches.

Dans les commentaires, il a été suggéré de penser au comportement du TS après une inversion temporelle - les ticks vont dans la direction opposée (du futur au passé), comme si le rembobinage était activé.

Vous pouvez également y lire, sur quels symboles l'inversion peut ne pas affecter le résultat du TS, et pour lesquels il s'agit d'un changement sérieux des modèles de marché.

Heureusement, les symboles forex ne devraient pas, en théorie, détruire les modèles de marché avec cette inversion temporelle. J'ai trouvé intéressant de tester cela sur un de mes TS.


Tout d'abord, le code d'inversion des séries de tics dans MQL5.

int TimeDayOfWeek( const datetime Date )
{
  MqlDateTime mTime;
  
  TimeToStruct(Date, mTime);
  
  return(mTime.day_of_week);
}

#define  HOUR 3600
#define  DAY (24 * HOUR)
#define  WEEK 7

// https://www.mql5.com/ru/forum/170953/page8#comment_6940794
datetime GetTimeDayOfWeek( const datetime TimeSource, const int Shift = 0, const ENUM_DAY_OF_WEEK Day = SUNDAY )
{
  const datetime Res = TimeSource / DAY * DAY;
  
  return(Res - (((WEEK + (TimeDayOfWeek(Res) - Day)) % WEEK) + Shift * WEEK) * DAY);
}

void ReverseTick( MqlTick &Tick, const long &Offset )
{
  Tick.time_msc = Offset - Tick.time_msc;
  Tick.time = (datetime)(Tick.time_msc / 1000);
  
  return;
}

// Инверсирование времени.
void ReverseTicks( MqlTick &Ticks[] )
{
  const int Size = ArraySize(Ticks);
  
  if (Size)
  {
    const long Offset = (long)(GetTimeDayOfWeek(Ticks[0].time, 0, MONDAY) + GetTimeDayOfWeek(Ticks[Size - 1].time, -1, SATURDAY)) * 1000;

    for (int i = 0; i < Size; i++)
      ReverseTick(Ticks[i], Offset);

    ArrayReverse(Ticks);
  }

  return;  
}


Sur la base de cette fonction, le script qui crée le symbole inversé est joint. Nous allons travailler avec elle. Les résultats sont les suivants.


La meilleure passe de l'Optimiseur sur le symbole de la quinte.


La même passe sur le symbole du temps inversé.


Pas de déduction.

Dossiers :
 

fxsaber:

Vous pouvez également y lire sur quels symboles l'inversion peut ne pas affecter le résultat du TS, et pour lesquels il s'agit d'un changement sérieux dans les modèles de marché.

Pas du tout surprenant. Surtout si l'on utilise le trading sur les indicateurs/signaux. L'ordre inverse des tics, dessine une image différente. Ce qui conduit les indicateurs à donner plus/moins de signaux d'entrée/sortie.
C'est la chose la plus simple qui me vient à l'esprit. Mais si vous creusez plus profondément, vous trouverez de nombreux détails. Et tout cela à cause du changement des habitudes de tiques.

 
Konstantin Nikitin:

Rien de surprenant du tout. Surtout lorsqu'on utilise le trading sur des signaux d'indicateurs. Inverser l'ordre des tics, dessine une image différente. Ce qui conduit les indicateurs à donner plus/moins de signaux d'entrée/sortie.
C'est la chose la plus simple qui me vient à l'esprit. Mais si vous creusez plus profondément, vous verrez beaucoup de nuances. Et tout cela à cause du changement des habitudes de tique.

C'est comme si l'article avait été sorti de son contexte. Vous avez dû avoir quelques conclusions avant cela. Je n'ai rien compris à ces phrases jusqu'à présent.

 
Nikolai Semko:
J'ajouterais la chose principale :
  • n'a pas de paramètres dépendant de la période.
  • le fonctionnement du TS ne dépend pas de l'horizon temporel actuel du graphique
  • le fonctionnement de TS ne dépend pas du symbole-instrument
  • l'ensemble du cadre du TS - n'est qu'un cadre de gestion des risques (la taille du dépôt utilisé).

Conteur...

 
Алексей Тарабанов:

Conteur...

Il a raison...

très probablement dans tous les domaines et observer la réaction de façon haletante... en silence...

mais j'aimerais continuer le banquet, pour ainsi dire.

;)

 
Renat Akhtyamov:

Il a raison...

probablement dans tout et guettant une réaction... en silence.

mais j'aimerais continuer le banquet, pour ainsi dire.

;)

Juste Martingale. Parfait.

 
fxsaber:

...

Par exemple, prenez l'EURUSD. J'ai fait le TS, en obtenant un certain nombre d'entrées.

Nous avons ensuite créé le symbole 100/EURUSD. Puis nous avons lancé le TS. Les entrées doivent coïncider avec les entrées originales.

Si cela ne se produit pas (99%), le TS n'est pas écrit correctement.

Je ne comprends pas comment le TS doit réagir à des symboles pris dans une certaine mesure.

Je devrais le préciser. Pour 100/EURUSD, les entrées et les sorties doivent s'échanger ou changer le sens d'ouverture de la transaction (vente au lieu d'achat). Le signe de variation de la valeur inverse est opposé dans le même intervalle de temps. Quelles transformations sont appropriées - je pense à des transformations monotones sur l'ensemble de la période. La multiplication positive et le logarithme par n'importe quelle base.

Après tout, chacun dessinera où il aurait dû acheter, où il aurait dû vendre, si l'historique du taux existe déjà - acheter aux plus bas et vendre aux plus hauts. Les transformations avec une fonction monotone préservent l'emplacement des extrema, c'est suffisant.

 
Vladimir:

Nous devrions clarifier. Pour 100/EURUSD, les entrées et les sorties doivent être inversées ou le sens d'ouverture de la transaction doit être inversé (vendre au lieu d'acheter).

Bien sûr, la direction va changer, mais pas le moment.

Le signe de changement dans la direction opposée au même intervalle de temps. Quelles transformations sont appropriées - je pense à des transformations monotones sur l'ensemble de la période. L'exponentiation positive et le logarithme sur n'importe quelle base.

Après tout, chacun dessinera où il aurait dû acheter, où il aurait dû vendre, si l'historique du taux existe déjà - acheter aux plus bas et vendre aux plus hauts. Les transformations avec une fonction monotone préservent l'emplacement des extrema, c'est suffisant.

Cette transformation permettra en effet de maintenir les extrema locaux en place. Il n'y a qu'une seule fonction qui pourra les identifier : le ZigZag avec un genou zéro min.

Les extrema locaux identifiés par un ZigZag avec une taille différente du genou min (la variation minimale du prix relatif entre les extrema) ou non-SigZag (toute autre fonction), ne coïncideront pas après multiplication par la fonction monotone.


L'invariant zéro ZigZag de la transformation que vous proposez ne permet malheureusement pas à la série modifiée de revenir à la série d'origine. Par conséquent, la transformation ne peut que changer le résultat de la CT pour toutes les fonctions monotones.


Cependant, pour certaines fonctions spécifiques, la transformation inverse est possible. J'ai mentionné la fonction constante. C'est assez élémentaire là-bas.

Vous avez cité un exemple plus général - la multiplication par une fonction linéaire (dans le temps). Toutefois, dans ce cas, vous devez disposer d'un petit intervalle (où il y a au moins deux extrema locaux) de la série de prix originale pour une transformation inverse.


En même temps, dans la réalité, nous ne disposons pas d'un tel intervalle de séries de prix initiales. Et ce, même si nous laissons de côté l'interprétation économique pas tout à fait claire d'une telle transformation. Peut-être que la multiplication par une fonction linéaire est une inflation cachée de l'un des actifs.


En somme, il n'y a malheureusement aucun moyen de généraliser la multiplication par une constante. Mais l'idée était très intéressante, merci.

 
Renat Akhtyamov:

Il a raison...

il est juste bien.