三币对冲非平衡套利原理概述 新评论 Kai Wei Luo 2024.07.29 11:01 三币对冲非平衡套利是在三角套利的基础上的拓展与延续。三角套利作为一种比较常见的套利方式,不少投资人在外汇交易中都有用到过。三角套利是基于交叉汇率实现的,它是三角套利的基础,所谓交叉汇率,是指用一种非美元的货币表示另一种非美元货币的价格。如某个外汇市场上美元/日元=142.840,欧元/美元=1.00435,欧元/日元=143.375,当(美元/日元)×(欧元/美元)不等于(欧元/日元)时,这就为三角套利提供了可能。 然而,严格的三角套利由于点差、滑点、隔夜利息、手续费等原因,并不能获利。如果在以上的三个货币对上增加不平衡系数,打破这种对称性,便有了获利的可能性。 如:同时下单1、sellA手eurusd,2、sellB手usdjpy,3、buy C手eurjpy,4、A、B、C系数通过计算获得。 如果Ask_EURUSD * Ask_USDJPY - Bid_EURJPY < - 300, 同时交易三个订单 Ask_EURUSD,Ask_USDJPY , Bid_EURJPY; 如果 Bid _EURUSD * Bid _USDJPY - Ask _EURJPY > +300, 同时交易三个订单 Bid _EURUSD, Bid _USDJPY , Ask _EURJPY; 当以上三个订单总体盈利时,平仓。从而获利。 以下源代码为 Ask_EURUSD * Ask_USDJPY - Bid_EURJPY < - 300, 同时交易三个订单 Ask_EURUSD,Ask_USDJPY , Bid_EURJPY; //--- 获取选定对象的市值 MqlTick current2_price; if ( SymbolInfoTick(symbol_group[0],current2_price) ) { Ask_EUR_USD=current2_price.ask; Bid_EUR_USD=current2_price.bid; } if ( SymbolInfoTick(symbol_group[1],current2_price) ) { Ask_USD_JPY=current2_price.ask; Bid_USD_JPY=current2_price.bid; } if ( SymbolInfoTick(symbol_group[2],current2_price) ) { Ask_EUR_JPY=current2_price.ask; Bid_EUR_JPY=current2_price.bid; } if( BBS_open == 1 && (BBS_total[0]+BBS_total[1]+BBS_total[2]) < BBS_number_lots ) { if( (Ask_EUR_USD * Ask_USD_JPY - Bid_EUR_JPY)*10000 <= p_low ) { bool buycheck1=false; bool buycheck2=false; bool sellcheck3=false; ulong buy1_ticket=0; ulong buy2_ticket=0; ulong sell3_ticket=0; int check_total=0; while( (buycheck1==false || buycheck2==false || sellcheck3==false) && check_total<2000 ) { if( buycheck1==false ) { //买1EUR_USD /////////////////////////////////////////////////////////////////////////// //--- 声明并初始化交易请求和交易请求结果 MqlTradeRequest buy1_request={1}; MqlTradeResult buy1_result={1}; //--- 请求参数 buy1_request.action =TRADE_ACTION_DEAL; // 交易操作类型 buy1_request.symbol =symbol_group[0]; // 交易品种 buy1_request.volume =NormalizeDouble(px_big*mylots/Ask_EUR_USD,2); //交易量 buy1_request.type =ORDER_TYPE_BUY; // 订单类型 // buy1_request.type_filling=ORDER_FILLING_IOC; // 订单执行类型 buy1_request.price =SymbolInfoDouble(buy1_request.symbol,SYMBOL_ASK); // 持仓价格 ppoint =SymbolInfoDouble(buy1_request.symbol,SYMBOL_POINT); // 持仓point ddigits =(int)SymbolInfoInteger(buy1_request.symbol,SYMBOL_DIGITS); // 持仓digits buy1_request.sl =0; buy1_request.tp =0; buy1_request.comment =IntegerToString(SanJiaoGroup_comment); buy1_request.deviation=5; // 允许价格偏差 buy1_request.magic =888001; if(buycheck1=OrderSend(buy1_request,buy1_result)) { buy1_ticket=buy1_result.order; Print(buy1_request.symbol,"BBS-1同步即时买ok,订单号:",buy1_result.order); } else { PrintFormat("BBS-1同步即时OrderSend error %d",GetLastError()); // 如果不能发送请求,输出错误代码 } } // Sleep(1*0.0001*1000); if( buycheck2==false ) { //买2USD_JPY /////////////////////////////////////////////////////////////////////////// //--- 声明并初始化交易请求和交易请求结果 MqlTradeRequest buy2_request={1}; MqlTradeResult buy2_result={1}; //--- 请求参数 buy2_request.action =TRADE_ACTION_DEAL; // 交易操作类型 buy2_request.symbol =symbol_group[1]; // 交易品种 buy2_request.volume =NormalizeDouble(px_small*mylots,2); //交易量 buy2_request.type =ORDER_TYPE_BUY; // 订单类型 // buy2_request.type_filling=ORDER_FILLING_IOC; // 订单执行类型 buy2_request.price =SymbolInfoDouble(buy2_request.symbol,SYMBOL_ASK); // 持仓价格 ppoint =SymbolInfoDouble(buy2_request.symbol,SYMBOL_POINT); // 持仓point ddigits =(int)SymbolInfoInteger(buy2_request.symbol,SYMBOL_DIGITS); // 持仓digits buy2_request.sl =0; buy2_request.tp =0; buy2_request.comment =IntegerToString(SanJiaoGroup_comment); buy2_request.deviation=5; // 允许价格偏差 buy2_request.magic =888001; // 订单幻数 if(buycheck2=OrderSend(buy2_request,buy2_result)) { buy2_ticket=buy2_result.order; Print(buy2_request.symbol,"BBS-2同步即时买ok,订单号:",buy2_result.order); } else { PrintFormat("BBS-2同步即时OrderSend error %d",GetLastError()); // 如果不能发送请求,输出错误代码 } } // Sleep(1*0.001*1000); if( sellcheck3==false ) { //卖3EUR_JPY /////////////////////////////////////////////////////////////////////////// //--- 声明并初始化交易请求和交易请求结果 MqlTradeRequest sell3_request={1}; MqlTradeResult sell3_result={1}; //--- 请求参数 sell3_request.action =TRADE_ACTION_DEAL; // 交易操作类型 sell3_request.symbol =symbol_group[2]; // 交易品种 sell3_request.volume =NormalizeDouble(px_middle*mylots/Bid_EUR_USD,2); //交易量 sell3_request.type =ORDER_TYPE_SELL; // 订单类型 // sell3_request.type_filling=ORDER_FILLING_IOC; // 订单执行类型 sell3_request.price =SymbolInfoDouble(sell3_request.symbol,SYMBOL_BID); // 持仓价格 ppoint =SymbolInfoDouble(sell3_request.symbol,SYMBOL_POINT); // 持仓point ddigits =(int)SymbolInfoInteger(sell3_request.symbol,SYMBOL_DIGITS); // 持仓digits sell3_request.sl =0; sell3_request.tp =0; sell3_request.comment =IntegerToString(SanJiaoGroup_comment); sell3_request.deviation=5; // 允许价格偏差 sell3_request.magic =888001; // 订单幻数 if(sellcheck3=OrderSend(sell3_request,sell3_result)) { sell3_ticket=sell3_result.order; Print(sell3_request.symbol,"BBS-3同步即时卖ok,订单号:",sell3_result.order); } else { PrintFormat("BBS-3同步即时OrderSend error %d",GetLastError()); // 如果不能发送请求,输出错误代码 } } // Sleep(1*0.001*1000); check_total++; } 如何在莫斯科交易所安全地使用您的 EA 进行交易 Kai Wei Luo 2024.07.29 11:04 #1 buy1_request.volume =NormalizeDouble(px_big*mylots/Ask_EUR_USD,2); //交易量 交易量的调整,可以实现三币种的非平衡型 Hung Wen Lin 2024.07.30 00:36 #2 Kai Wei Luo #: 交易量的调整,可以实现三币种的非平衡型 快接近完整的算法了 Kai Wei Luo 2024.08.03 07:53 #3 测试很牛逼,实盘很沮丧。 Kai Wei Luo 2024.08.03 07:56 #4 Hung Wen Lin #: 快接近完整的算法了 这只是原理,要成为EA,还有很大的工作量 jamin 2024.08.06 03:59 #5 Kai Wei Luo #: 测试很牛逼,实盘很沮丧。 必须严格真实测试才行 Yong Ge Cai 2025.02.01 08:36 #6 零隔夜费呢 Chen Yiw Guo 2025.02.20 07:49 #7 有没有人用欧美 跟 美瑞套利 zhui168 2025.03.13 04:09 #8 好复杂呀 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
三币对冲非平衡套利是在三角套利的基础上的拓展与延续。三角套利作为一种比较常见的套利方式,不少投资人在外汇交易中都有用到过。三角套利是基于交叉汇率实现的,它是三角套利的基础,所谓交叉汇率,是指用一种非美元的货币表示另一种非美元货币的价格。如某个外汇市场上美元/日元=142.840,欧元/美元=1.00435,欧元/日元=143.375,当(美元/日元)×(欧元/美元)不等于(欧元/日元)时,这就为三角套利提供了可能。
然而,严格的三角套利由于点差、滑点、隔夜利息、手续费等原因,并不能获利。如果在以上的三个货币对上增加不平衡系数,打破这种对称性,便有了获利的可能性。
如:同时下单1、sellA手eurusd,2、sellB手usdjpy,3、buy C手eurjpy,4、A、B、C系数通过计算获得。
如果Ask_EURUSD * Ask_USDJPY - Bid_EURJPY < - 300, 同时交易三个订单 Ask_EURUSD,Ask_USDJPY , Bid_EURJPY;
如果 Bid _EURUSD * Bid _USDJPY - Ask _EURJPY > +300, 同时交易三个订单 Bid _EURUSD, Bid _USDJPY , Ask _EURJPY;
当以上三个订单总体盈利时,平仓。从而获利。
以下源代码为 Ask_EURUSD * Ask_USDJPY - Bid_EURJPY < - 300, 同时交易三个订单 Ask_EURUSD,Ask_USDJPY , Bid_EURJPY;