Spread trading dans Meta Trader - page 175

 
leonid553:

Ayant autrefois servi dans l'armée, je me joins aux félicitations adressées aux fils voisins à l'occasion de la Journée du défenseur de la patrie.

(Exactement la Mère Patrie, mais hélas, pas la plupart de ses représentants au gouvernement)

=============================================

Un petit cadeau. À mon avis, il existe une triple entrée prometteuse de "quasi-arbitrage". En hausse par rapport à la limite inférieure du canal à triple ligne d'écart.

BUY RPH1 ( ou EURGBP) & (sell 6EH1 + sell DXH1) = 0.05 ^ 0.1 ^ 0.2
Contrôlons la situation et attendons que les lignes de prix(bleue et violette) convergent...

(Je dois ajouter que l'entrée similaire d'hier soir "à la baisse" a été clôturée avec un bon profit - on peut le voir clairement sur le graphique de l'indicateur de spread ! - rapport http://www.procapital.ru/showpost.php?p=938820&postcount=1336 )

Bénéfice total estimé avec les tailles de position ci-dessus = 45-50 $ (largeur du canal de diffusion)


Félicitations à tous ceux qui ont profité de la recommandation !

Les lignes de prix bleue et lilas ont convergé (se sont croisées), et la ligne d'écart a atteint la limite supérieure du canal !

 

Que diriez-vous d'essayer de travailler à partir des bords du canal, puis de faire un retournement. Avec le ratio du lot que vous avez ci-dessus.

J'ai essayé de le vérifier avec l'indicateur d'équité virtuelle, il semble y avoir un résultat. Mais il n'y a pas beaucoup d'offres.

Je n'avais pas d'actions.

 
Il faut juste déterminer avec ( recycle2 ) la fréquence à laquelle le ratio du lot doit être modifié pour maintenir l'appartement. Il y a une fenêtre coulissante ici.
 

L'indicateur Recycle-2 a calculé la taille de cet écart particulier - presque parfait pour une ligne d'écart plate.

Mais, - "trop bon n'est pas bon non plus", - luscious....

La ligne d'écart s'avère être "trop plate" et il n'est pas logique de réaliser des bénéfices en raison de sa taille supposée réduite.

C'est pourquoi j'ai adopté un ratio légèrement différent ici :

RP-6E-DX=1^2^4- à ce ratio, le bénéfice total attendu (de "frontière à frontière") est faible, mais il a une probabilité assez élevée de le réaliser ! Surtout pour déterminer le point d'entrée - sur la divergence des lignes de prix de l'indicateur !

================

Il est préférable de régler la période de calcul du canal d'étalement sur une plus petite période. Il sera beaucoup plus pratique de travailler à atf=m15.

Mon paramètre ENV_PERIOD est 21 ou 34 pour les petites échéances.

 
leonid553:

La ligne d'écart s'avère être "trop plate" et il est inutile de prendre des bénéfices car elle est censée être trop petite.

Exemple ?
 

Oui, cette propagation particulière RP-6E-DX est exactement ce dont je parlais.

Avec les dimensions que vous avez suggérées à partir du calcul de Recycle-2 (page 165) - la ligne d'écartement s'avère être trop plate :

(ignorez les pointes. Il s'agit de fausses impulsions causées par les différents temps de départ/arrivée des instruments à terme).

 

Malheureusement, dans MT4, aucune information n'est disponible sur l'heure de négociation de l'IF. Dans Broco, le nom détaillé de l'IF contient l'heure de négociation et la date d'expiration. Et grâce à MQL4, ces données peuvent être facilement obtenues pour n'importe quelle IF. Par ailleurs, les délais prescrits pour les appels d'offres, par exemple, ne correspondent pas à la réalité dans de nombreux cas.

Ainsi, si Recycle2 rencontre des IF qui présentent des intervalles où certains IF sont négociés et d'autres non, Recycle2 suppose que l'IF non négocié ne change tout simplement pas de prix et le prend en compte comme négocié. C'est-à-dire qu'il y a une sorte de remplissage des trous non échangeables avec des valeurs de prix constantes. Ce problème ne se pose pas si tous les IF sont de même nature.

De ce fait, vous obtenez des poids faussés. C'est-à-dire qu'ils peuvent être encore meilleurs. Vous pourriez ajouter des paramètres d'entrée de temps d'échange à Recycle2, mais je ne le ferai pas.

L'écart de Recycle2 est en effet le plus plat possible, à la nuance près que j'ai décrite ci-dessus. Et nous pouvons effectivement ajuster les poids à dessein pour rendre l'écart plus important. Mais il faut savoir que lorsque les poids sont tournés, le risque de non-retour de l'écart (absence d'effondrement) augmente. Il faut donc le faire avec précaution.

Recycle2 lui-même négocie sur une fenêtre glissante :

  1. Pour chaque nouvelle barre, une fenêtre coulissante est repoussée et les relations à l'intérieur de cette fenêtre sont recalculées (celles qui ont été, et celles qui vont progressivement disparaître).
  2. Vous obtenez(IND_Recycle2) comme sortie la valeur du synthétique optimal actuel (rouge) et la largeur du canal (bleu) de ce synthétique sur la fenêtre.
  3. Remarquez que vous voyez deux caractéristiques (valeur actuelle et largeur du canal) de différents synthétiques sur chaque barre. C'est-à-dire que les différentes barres correspondent à des synthétiques différents. L'IND_RecycleShoMe vous permet de visualiser les synthétiques en détail, il suffit de déplacer la ligne verticale de droite vers la barre qui vous intéresse.
  4. Si la valeur actuelle du synthétique est plus grande d'une certaine valeur de sa largeur de canal(IND_RecycleShowMe montrera comment il est sorti du canal), vous devez ouvrir au synthétique à l'intérieur du canal. Et fermer quand le synthétique s'effondre à zéro.

Cette stratégie est très différente du spread trading classique, car le spread est rééquilibré en permanence.

 
et quel est le profit moyen et la perte moyenne par transaction si vous normalisez tout à une unité de lot ?
 

Pouvez-vous me dire pourquoi lorsque le Symbole1_K est calculé, il écrit zéro divide. J'ai besoin d'obtenir les données des trois paires et de créer une ligne d'équité avec une enveloppe basée sur celles-ci, mais j'ai besoin d'un seul ordre pour fonctionner. Cela fonctionnera-t-il dans le testeur ?

//======= Определение момента открытия позиций ============
void    Conditions()
{
   Print("5");

  TradeUP   = false;
  TradeDOWN = false;
  
    double Symbol3_K = MarketInfo(Symbol_3, MODE_TICKVALUE)/MarketInfo(Symbol_3, MODE_TICKSIZE);
           Print("5_3");
           
    double Symbol1_K = MarketInfo(Symbol_1, MODE_TICKVALUE)/MarketInfo(Symbol_1, MODE_TICKSIZE);
       Print("5_1");

    double Symbol2_K = MarketInfo(Symbol_2, MODE_TICKVALUE)/MarketInfo(Symbol_2, MODE_TICKSIZE);
           Print("5_2");



    double equity_1 = Symbol1_Vol*Symbol1_K*iClose(Symbol_1,period,iBarShift(Symbol_1,period,Time[1])) 
                    + Symbol2_Vol*Symbol2_K*iClose(Symbol_2,period,iBarShift(Symbol_2,period,Time[1]))
                    + Symbol3_Vol*Symbol3_K*iClose(Symbol_3,period,iBarShift(Symbol_3,period,Time[1]));
                           Print("5_4");

                    
    double equity_2 = Symbol1_Vol*Symbol1_K*iClose(Symbol_1,period,iBarShift(Symbol_1,period,Time[2])) 
                    + Symbol2_Vol*Symbol2_K*iClose(Symbol_2,period,iBarShift(Symbol_2,period,Time[2]))
                    + Symbol3_Vol*Symbol3_K*iClose(Symbol_3,period,iBarShift(Symbol_3,period,Time[2]));
   Print("6");

                    
  /*  
    int counted_bars=IndicatorCounted();
    if(counted_bars<0) return(-1);
    if(counted_bars>0) counted_bars--; 
    int limit=Bars-counted_bars;
    
    double last[];
    datetime t;
        
    // Формируем график прибыльности
    for (int i=0;i<limit;i++) 
      {
        t=Time[i];
        last[i] = Symbol1_Vol*Symbol1_K*iClose(Symbol_1,0,iBarShift(Symbol_1,0,t)) 
                + Symbol2_Vol*Symbol2_K*iClose(Symbol_2,0,iBarShift(Symbol_2,0,t))
                + Symbol3_Vol*Symbol3_K*iClose(Symbol_3,0,iBarShift(Symbol_3,0,t));
      }
   */  
              
    double up_2     = iEnvelopesOnArray(equity_1,0,Channel_Period,MODE_SMA,0,Channel_Dev,MODE_UPPER,1);
    double dn_2     = iEnvelopesOnArray(equity_1,0,Channel_Period,MODE_SMA,0,Channel_Dev,MODE_LOWER,1);
    
   Print("7");

  if(equity_2<dn_2 && equity_1>dn_2)
    {
       TradeUP = true;
          Print("8");

    }
    
  if(equity_2>up_2 && equity_1<up_2)
    {
       TradeDOWN = true;
          Print("9");

    }
  
  if(use_close)
    {
      close(); // функция закрытия позиций на противоположной границе канала
         Print("10");

    }  
  
  if(use_doliv)
    {
      Doliv(); // доливочная функция
         Print("11");

    }  

}

J'essaie de transférer le calcul de l'indicateur vers le corps du conseiller expert.


 
Il n'en est pas question, j'ai trouvé le mot de passe de l'investissement. La transaction est rentable, mais le graphique n'est pas très lisse. À quoi sont associées les pertes de 100 à 700 dollars ?
Raison: