Edward Garnica 放在 哪个符号中工作的,还是必须放在您提到的三个符号中。
任何符号都可以使用,甚至是上述三种符号以外的符号,因为它们都在代码中定义好了。
在历史数据上运行良好(目标利润设定为 0.1 美元)。我将延迟(ping)设置为 60 毫秒。
我还在模拟账户的真实数据上进行了尝试:
它可以打开和关闭交易,但处于劣势。可能是因为 ping 时间太长(我的 ping 时间约为 60 毫秒)。
我想通过 VPS 试试。
我还在模拟账户的真实数据上进行了尝试:
它可以打开和关闭交易,但处于劣势。可能是因为 ping 时间太长(我的 ping 时间约为 60 毫秒)。
我想通过 VPS 试试。
原因是这样的。 所有具有此条件的 EA 都会显示出良好的效果。
void CloseArbitragePositions() { double totalProfit = 0; // 用 "神奇数字 "计算位置累积利润 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."); // 为安全起见,反复调整位置 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."); } } } } }
// 此功能更强大,可使用更高的垃圾值 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; }
为什么您决定使用前两个符号的买价来计算直接价格的卖价,反之亦然?
三角套利:
该智能交易系统 (EA) 在欧元兑美元、美元兑日元和欧元兑日元这三种货币对之间实施三角套利策略。
Author: Джованни Орсани