Edward Garnica platziert wird, um zu arbeiten oder ist es notwendig, es in den drei Symbolen zu platzieren, die Sie erwähnen.
Jedes Symbol kann verwendet werden, auch ein anderes Symbol als die drei genannten, da sie alle im Code definiert sind.
Funktioniert gut auf historischen Daten (Zielgewinn auf 0,1 $ eingestellt). Ich habe die Verzögerung (ping) auf dem Niveau von 60 ms.
Ich habe es auch auf realen Daten auf einem Demo-Konto versucht:
Es öffnet und schließt Trades, aber mit einem Nachteil. Wahrscheinlich wegen der langen Ping-Zeit (ich hatte etwa 60 ms).
Ich möchte es über VPS versuchen.
Ich habe es auch auf realen Daten auf einem Demo-Konto versucht:
Es öffnet und schließt Trades, aber mit einem Nachteil. Wahrscheinlich wegen der langen Ping-Zeit (ich hatte etwa 60 ms).
Ich möchte es über VPS versuchen.
sfhomebiz #:
Funktioniert gut auf historischen Daten(Ziel Gewinn auf 0,1 $ gesetzt). Ich habe die Verzögerung (ping) auf 60 ms eingestellt.
Der Grund ist dieser. Funktioniert gut auf historischen Daten(Ziel Gewinn auf 0,1 $ gesetzt). Ich habe die Verzögerung (ping) auf 60 ms eingestellt.
void CloseArbitragePositions() { double totalProfit = 0; // Calcola il profitto cumulativo delle posizioni col 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."); // Die Positionen werden aus Sicherheitsgründen immer wieder neu festgelegt. 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."); } } } } }
// Dies ist leistungsfähiger, höherer Trashold nutzbar 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 = (impliedPrice - directPrice) / directPrice; 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 = (impliedPrice - directPrice) / directPrice; 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; }
Warum haben Sie sich entschieden, das Gebot der ersten beiden Symbole zu verwenden, um den Briefkurs des Direktpreises zu berechnen und umgekehrt ...?
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Dreieckige Arbitrage:
Dieser Expert Advisor (EA) implementiert eine dreieckige Arbitrage-Strategie zwischen drei Währungspaaren: EURUSD, USDJPY und EURJPY
Author: Джованни Орсани