Experts: Arbitrage triangulaire

Arbitrage triangulaire:

Cet Expert Advisor (EA) met en œuvre une stratégie d'arbitrage triangulaire entre trois paires de devises : EURUSD, USDJPY et EURJPY.

Author: Джованни Орсани

Bonjour, je voudrais savoir dans quel simulateur se trouve l'EA pour qu'il fonctionne, ou dans les trois simulateurs que j'ai mentionnés.
Edward Garnica placé pour fonctionner ou faut-il le placer dans les trois symboles que vous mentionnez.
N'importe quel symbole peut être utilisé, même un symbole autre que les trois mentionnés, car ils sont tous définis dans le code.
Fonctionne bien sur les données historiques (objectif de profit fixé à 0,1$). J'ai réglé le délai (ping) au niveau de 60 ms.

Je l'ai également essayé sur des données réelles sur un compte de démonstration :
Il ouvre et ferme des transactions, mais à un désavantage. Probablement à cause du long temps de ping (j'ai eu environ 60 ms).
Je veux essayer via VPS.
sfhomebiz #:
Fonctionne bien sur les données historiques(objectif de profit fixé à 0,1$). J'ai fixé le délai (ping) à 60 ms.
La raison est la suivante.
void CloseArbitragePositions()
{
   double totalProfit = 0;
  
   // Calculer le bénéfice cumulé des positions avec le Magic Number
   for(int i = 0; i < PositionsTotal(); i++)
   {
      ulong ticket = PositionGetTicket(i);
      if(PositionSelectByTicket(ticket))
      {
         if(PositionGetInteger(POSITION_MAGIC) == MagicNumber)
            totalProfit += PositionGetDouble(POSITION_PROFIT);
      }
   }
  
   if(totalProfit >= ProfitTarget)
   {
      Print("Profit target raggiunto: ", totalProfit, ". Procedo alla chiusura delle posizioni.");
      
      // Modifie les positions en procédant par itération à l'intérieur pour plus de sécurité
      for(int i = PositionsTotal() - 1; i >= 0; i--)
      {
         ulong ticket = PositionGetTicket(i);
         if(PositionSelectByTicket(ticket))
         {
            if(PositionGetInteger(POSITION_MAGIC) == MagicNumber)
            {
               string sym = PositionGetString(POSITION_SYMBOL);
               if(!trade.PositionClose(sym))
                  Print("Errore nella chiusura della posizione su ", sym, " - ", GetLastError());
               else
                  Print("Posizione su ", sym, " chiusa con successo.");
            }
         }
      }
   }
}
Tous les EAs avec cette condition montreront quelque chose de bon.
fxsaber #:
La raison en est la suivante. Tous les EAs avec cette condition montreront quelque chose de bon.
Il n'imprime donc pas les résultats négatifs ?
xery #:
Il n'affiche donc pas les résultats négatifs ?

Seulement lorsque la passe du testeur est arrêtée.

// C'est plus puissant, plus utilisable int CheckArbitrageOpportunity(double &diff, double &impliedPrice, double &directPrice) { double price1 = SymbolInfoDouble(symbol1, SYMBOL_BID) ; double price2 = SymbolInfoDouble(symbol2, SYMBOL_BID) ; directPrice = SymbolInfoDouble(symbol3, SYMBOL_ASK) ; impliedPrice = price1 * price2 ; diff = (prix implicite - prix direct) / prix direct ; if(diff > Threshold) return 1 ; price1 = SymbolInfoDouble(symbol1, SYMBOL_ASK) ; price2 = SymbolInfoDouble(symbol2, SYMBOL_ASK) ; directPrice = SymbolInfoDouble(symbol3, SYMBOL_BID) ; impliedPrice = price1 * price2 ; diff = (impliedPrice - directPrice) / directPrice ; if(diff < -Threshold) return -1 ; return 0 ; }
michal_ SYMBOL_BID) ; double price2 = SymbolInfoDouble(symbol2, SYMBOL_BID) ; directPrice = SymbolInfoDouble(symbol3, SYMBOL_ASK) ; impliedPrice = price1 * price2 ; diff = (prix implicite - prix direct) / prix direct ; if(diff > Threshold) return 1 ; price1 = SymbolInfoDouble(symbol1, SYMBOL_ASK) ; price2 = SymbolInfoDouble(symbol2, SYMBOL_ASK) ; directPrice = SymbolInfoDouble(symbol3, SYMBOL_BID) ; impliedPrice = price1 * price2 ; diff = (impliedPrice - directPrice) / directPrice ; if(diff < -Threshold) return -1 ; return 0 ; }
Pourquoi avez-vous décidé d'utiliser le bid des deux premiers symboles pour calculer le ask du directprice et vice-versa ?

Bonjour à tous !

Je souhaite utiliser un Expert Advisor (EA) pour réaliser de l'arbitrage triangulaire automatisé sur MetaTrader 5, et je recherche des courtiers qui autorisent ce type de stratégie de trading.

Quelqu'un pourrait-il me recommander des courtiers fiables dont les conditions générales n'interdisent pas explicitement l'arbitrage, en particulier l'arbitrage triangulaire ?

Je m'intéresse tout particulièrement aux courtiers qui :

  1. Autorisent l'arbitrage triangulaire automatisé à l'aide d'Expert Advisors (EA).

  2. N'interdisent pas explicitement les stratégies d'arbitrage dans leurs conditions générales.

  3. N'annulent ni ne révoquent les bénéfices légitimes générés par l'arbitrage triangulaire.

  4. Prise en charge de MT5 et exécution automatisée rapide.

  5. acceptent les clients résidant au Brésil.

Si vous avez personnellement utilisé l'arbitrage triangulaire sur un compte réel, j'apprécierais grandement de savoir quel courtier vous avez utilisé et si vous avez rencontré des restrictions, des transactions refusées ou des problèmes pour retirer vos bénéfices.

Je m'intéresse particulièrement aux courtiers chez lesquels cette stratégie est autorisée par contrat, et pas seulement techniquement possible.

Merci d'avance de partager votre expérience et vos recommandations !