设为首页 收藏本站 切换语言

【三币种非对称套利MT5】7币种5个三币组合(EURUSDCHFCADJPYGBPAUD)  

| 发表于 2024-7-27 17:54:21 | 显示全部楼层 |复制链接
© 本贴为 south 原创/首发,严禁抄袭!
最后由 south 于 2024-7-27 18:01 编辑

三币对冲非平衡套利是在三角套利的基础上的拓展与延续。三角套利作为一种比较常见的套利方式,不少投资人在外汇交易中都有用到过。三角套利是基于交叉汇率实现的,它是三角套利的基础,所谓交叉汇率,是指用一种非美元的货币表示另一种非美元货币的价格。如某个外汇市场上美元/日元=142.840,欧元/美元=1.00435,欧元/日元=143.375,当(美元/日元)×(欧元/美元)不等于(欧元/日元)时,这就为三角套利提供了可能。然而,严格的三角套利由于点差、滑点、隔夜利息、手续费等原因,并不能获利。如果在以上的三个货币对上增加不平衡系数,打破这种对称性,便有了获利的可能性。
如:同时下单
1、sellA手eurusd,
2、sellB手usdjpy,
3、buy C手eurjpy,
4、A、B、C系数通过计算获得。
当以上三个订单总体盈利时,平仓。从而获利。

  1. /外部参数-账户
  2. input long  MyAccount= 12345678;   //输入你的交易账户
  3. //外部参数-货币对
  4. input string symbol0= "EURUSD";   //交易平台的EURUSD货币对(注意大小写及下标)
  5. input string symbol1= "USDJPY";   //交易平台的USDJPY货币对(注意大小写及下标)
  6. input string symbol2= "EURJPY";   //交易平台的EURJPY货币对(注意大小写及下标)
  7. //外部参数-总体盈亏比例
  8. input double  p_profit = 0.01;  //总体盈利比例(1%~2%)
  9. input double  p_lost = 0.9;     //总体亏损比例(30%~60%)
  10. //外部参数-单向下单选项
  11. input int  BBS_open = 1;        //三个币种Buy-Buy-Sell方向开单(1-开单,0-关闭)
  12. input int  SSB_open = 1;        //三个币种Sell-Sell-Buy方向开单(1-开单,0-关闭)
  13. //外部参数-点差最大值
  14. input long  Spread_high = 100;  //设置点差最大值,高于此值,不开单
  15. //外部参数-计算价-市价最大值
  16. input double  p_high = 300;   //设置三币种价差最大值(0~400)
  17. //外部参数-计算价-市价最小值
  18. input double  p_low = -300;   //设置三币种价差最小值(0~-400)
  19. //外部参数-下单量
  20. input double p_lots= 0.2;     //基本仓位(手)(如账户资金10000美元,某币种每次开仓0.2手)
  21. //外部参数-下单个数
  22. input int  BBS_number_lots= 12;   //BBS订单总数控制(个)(为3的倍数)
  23. //外部参数-下单个数
  24. input int  SSB_number_lots= 12;   //SSB订单总数控制(个)(为3的倍数)
  25. //外部参数-延迟时间(s)
  26. input int group_TimeInterval= 0; //设置每组间隔(秒)
  27. //外部参数-偏心系数
  28. input double px_big  =1.00;    //eurusd订单不平衡系数(1.02~1.05,默认1.00)
  29. input double px_small=1.00;    //usdjpy订单不平衡系数(0.98~0.95,默认1.00)
  30. input double px_middle=1.00;    //eurjpy订单不平衡系数(0.98~0.95,默认1.00)
  31. //外部参数-倍数
  32. input int fee_everyone=6;     //参数F,平台每手手续费。若无手续费,设置为6
  33. input int fee_times=1;        //参数N,单组三币种盈利值=N×F
  34. input double loss_fee_times=100;   //参数M,单组三币种亏损值=M×F
  35. input int margin_level=300;   //参数L,预付款维持率。低于此值(1:500杠杆)程序不下单
  36. input int  P_continue=0;      //是否继续前次交易,0-否,1-是
  37. input int  test=0;            //历史数据回测(或不必数据写入):0,实盘及模拟盘数据写入:1
复制代码
1.png
2.png
3.png
4.jpg

三币对冲非平衡套利(EURUSDAUD)MT5.ex5

36.8 KB, 下载次数: 5, 下载积分: 活跃度 -5 售价: 1 H币  [记录]  [下载]

三币对冲非平衡套利(EURUSDCAD)MT5.ex5

36.75 KB, 下载次数: 0, 下载积分: 活跃度 -5 售价: 1 H币  [记录]  [购买]

三币对冲非平衡套利(EURUSDCHF)MT5.ex5

37.58 KB, 下载次数: 0, 下载积分: 活跃度 -5 售价: 1 H币  [记录]  [购买]

三币对冲非平衡套利(EURUSDGBP)MT5.ex5

36.08 KB, 下载次数: 1, 下载积分: 活跃度 -5 售价: 1 H币  [记录]  [下载]

三币对冲非平衡套利(EURUSDJPY)MT5.ex5

38.13 KB, 下载次数: 1, 下载积分: 活跃度 -5 售价: 1 H币  [记录]  [下载]

三币对冲非平衡套利MT5操作说明.zip

542.04 KB, 下载次数: 16, 下载积分: 活跃度 -5  [下载]

评分
  • 1
  • 2
  • 3
  • 4
  • 5
平均分:NAN    参与人数:0    我的评分:未评 下载时遇到问题?
举报

评论 使用道具

精彩评论28

Harrys
DDD
| 发表于 2024-7-28 04:03:55 | 显示全部楼层
感谢分享  7币种5个三币组合
举报

点赞 评论 使用道具

south
DD
 楼主 | 发表于 2024-7-28 10:51:25 | 显示全部楼层
2.风险控制及提示:
A总体盈利比例建议为0.01,总体亏损比例为0.6或客户能接受的值;
B本金10000$,建议“基本仓位”设置为0.2手,“BBS订单总量控制”为12个,“SSB订单总量控制”为12个。
C任何交易系统都有风险,投资应谨慎。
3、如果出现下列问题,建议:
A如果长时间没有交易订单,建议修改“设置三币种价差最大值” “设置三币种价差最小值”;
B三币种组合如果长时间不能平仓,建议修改“EURUSD订单不平衡系数”、“USDJPY订单不平衡系数”、“EURJPY订单不平衡系数”,同时修改“参数F平台每手交易费”、“参数N”,使之处于合理水平;
C修改参数后需要重新加载EA;

4常见问题处理
A如果出现“账户错误!!!”,应在EA中设置自己的交易账号;
B如果出现没有数据或无交易,请检测EA设置中货币对的字母下标;
C如果出现“程序运行中检测到账户异常或软件到期”,请及时联系卖家。
举报

点赞 评论 使用道具

south
DD
 楼主 | 发表于 2024-7-28 19:01:05 | 显示全部楼层
欢迎交流
举报

点赞 评论 使用道具

south
DD
 楼主 | 发表于 2024-7-29 12:45:09 | 显示全部楼层
eurusdjpy三角套利今天出现一单
1722228285470.png
举报

点赞 评论 使用道具

south
DD
 楼主 | 发表于 2024-7-29 15:49:29 | 显示全部楼层
eurusdjpy三角套利,期待平仓盈利。。。
举报

点赞 1 评论 使用道具

south
DD
 楼主 | 发表于 2024-7-29 17:10:20 | 显示全部楼层
三币对冲非平衡套利是在三角套利的基础上的拓展与延续。三角套利作为一种比较常见的套利方式,不少投资人在外汇交易中都有用到过。三角套利是基于交叉汇率实现的,它是三角套利的基础,所谓交叉汇率,是指用一种非美元的货币表示另一种非美元货币的价格。如某个外汇市场上美元/日元=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;
  1. //--- 获取选定对象的市值
  2.                  MqlTick  current2_price;                  
  3.                  
  4.                  if ( SymbolInfoTick(symbol_group[0],current2_price) )
  5.                     {
  6.                     Ask_EUR_USD=current2_price.ask;
  7.                     Bid_EUR_USD=current2_price.bid;
  8.                     }
  9.                  if ( SymbolInfoTick(symbol_group[1],current2_price) )
  10.                     {
  11.                     Ask_USD_JPY=current2_price.ask;
  12.                     Bid_USD_JPY=current2_price.bid;
  13.                     }
  14.                  if ( SymbolInfoTick(symbol_group[2],current2_price) )
  15.                     {
  16.                     Ask_EUR_JPY=current2_price.ask;
  17.                     Bid_EUR_JPY=current2_price.bid;
  18.                     }
  19.      
  20.   if( BBS_open == 1  && (BBS_total[0]+BBS_total[1]+BBS_total[2]) < BBS_number_lots )
  21.     {  
  22.      if(  (Ask_EUR_USD * Ask_USD_JPY - Bid_EUR_JPY)*10000 <= p_low  )
  23.       {
  24.          bool buycheck1=false;
  25.          bool buycheck2=false;
  26.          bool sellcheck3=false;
  27.          ulong buy1_ticket=0;
  28.          ulong buy2_ticket=0;
  29.          ulong sell3_ticket=0;
  30.       int check_total=0;
  31.       while(  (buycheck1==false || buycheck2==false || sellcheck3==false) && check_total<2000 )
  32.         {      
  33.          if(  buycheck1==false )
  34.             {
  35.              //买1EUR_USD
  36.             ///////////////////////////////////////////////////////////////////////////  
  37.                 //--- 声明并初始化交易请求和交易请求结果
  38.                    MqlTradeRequest buy1_request={1};
  39.                    MqlTradeResult  buy1_result={1};
  40.                 //--- 请求参数
  41.                    buy1_request.action   =TRADE_ACTION_DEAL;                     // 交易操作类型
  42.                    buy1_request.symbol   =symbol_group[0];                              // 交易品种
  43.                    buy1_request.volume   =NormalizeDouble(px_big*mylots/Ask_EUR_USD,2); //交易量
  44.                    buy1_request.type     =ORDER_TYPE_BUY;                       // 订单类型
  45.                  //  buy1_request.type_filling=ORDER_FILLING_IOC;              // 订单执行类型
  46.                    buy1_request.price    =SymbolInfoDouble(buy1_request.symbol,SYMBOL_ASK); // 持仓价格
  47.                    ppoint    =SymbolInfoDouble(buy1_request.symbol,SYMBOL_POINT); // 持仓point
  48.                    ddigits   =(int)SymbolInfoInteger(buy1_request.symbol,SYMBOL_DIGITS); // 持仓digits
  49.                    buy1_request.sl       =0;
  50.                    buy1_request.tp       =0;
  51.                    buy1_request.comment  =IntegerToString(SanJiaoGroup_comment);
  52.                    buy1_request.deviation=5;                                     // 允许价格偏差
  53.                    buy1_request.magic    =888001;
  54.                
  55.                 if(buycheck1=OrderSend(buy1_request,buy1_result))
  56.                   {
  57.                   buy1_ticket=buy1_result.order;
  58.                  Print(buy1_request.symbol,"BBS-1同步即时买ok,订单号:",buy1_result.order);
  59.                   }
  60.                 else
  61.                   {
  62.                  PrintFormat("BBS-1同步即时OrderSend error %d",GetLastError());     // 如果不能发送请求,输出错误代码
  63.                   }
  64.              }  
  65.             //   Sleep(1*0.0001*1000);
  66.          if(  buycheck2==false )
  67.             {
  68.            //买2USD_JPY
  69.            ///////////////////////////////////////////////////////////////////////////
  70.                 //--- 声明并初始化交易请求和交易请求结果
  71.                    MqlTradeRequest buy2_request={1};
  72.                    MqlTradeResult  buy2_result={1};
  73.                 //--- 请求参数
  74.                    buy2_request.action   =TRADE_ACTION_DEAL;                     // 交易操作类型
  75.                    buy2_request.symbol   =symbol_group[1];                              // 交易品种
  76.                    buy2_request.volume   =NormalizeDouble(px_small*mylots,2); //交易量
  77.                    buy2_request.type     =ORDER_TYPE_BUY;                       // 订单类型
  78.               //     buy2_request.type_filling=ORDER_FILLING_IOC;              // 订单执行类型
  79.                    buy2_request.price    =SymbolInfoDouble(buy2_request.symbol,SYMBOL_ASK); // 持仓价格
  80.                    ppoint    =SymbolInfoDouble(buy2_request.symbol,SYMBOL_POINT); // 持仓point
  81.                    ddigits   =(int)SymbolInfoInteger(buy2_request.symbol,SYMBOL_DIGITS); // 持仓digits
  82.                    buy2_request.sl       =0;
  83.                    buy2_request.tp       =0;
  84.                    buy2_request.comment  =IntegerToString(SanJiaoGroup_comment);
  85.                    buy2_request.deviation=5;                                     // 允许价格偏差
  86.                    buy2_request.magic    =888001;                                // 订单幻数
  87.                   
  88.                 if(buycheck2=OrderSend(buy2_request,buy2_result))
  89.                   {
  90.                   buy2_ticket=buy2_result.order;
  91.                   Print(buy2_request.symbol,"BBS-2同步即时买ok,订单号:",buy2_result.order);
  92.                   }
  93.                 else
  94.                   {
  95.                   PrintFormat("BBS-2同步即时OrderSend error %d",GetLastError());     // 如果不能发送请求,输出错误代码
  96.                   }
  97.             }
  98.              //  Sleep(1*0.001*1000);
  99.         if( sellcheck3==false )
  100.             {
  101.            //卖3EUR_JPY
  102.            ///////////////////////////////////////////////////////////////////////////
  103.                 //--- 声明并初始化交易请求和交易请求结果
  104.                    MqlTradeRequest sell3_request={1};
  105.                    MqlTradeResult  sell3_result={1};
  106.                 //--- 请求参数
  107.                    sell3_request.action   =TRADE_ACTION_DEAL;                     // 交易操作类型
  108.                    sell3_request.symbol   =symbol_group[2];                              // 交易品种
  109.                    sell3_request.volume   =NormalizeDouble(px_middle*mylots/Bid_EUR_USD,2); //交易量
  110.                    sell3_request.type     =ORDER_TYPE_SELL;                       // 订单类型
  111.                 //   sell3_request.type_filling=ORDER_FILLING_IOC;              // 订单执行类型
  112.                    sell3_request.price    =SymbolInfoDouble(sell3_request.symbol,SYMBOL_BID); // 持仓价格
  113.                    ppoint    =SymbolInfoDouble(sell3_request.symbol,SYMBOL_POINT); // 持仓point
  114.                    ddigits   =(int)SymbolInfoInteger(sell3_request.symbol,SYMBOL_DIGITS); // 持仓digits
  115.                    sell3_request.sl       =0;
  116.                    sell3_request.tp       =0;
  117.                    sell3_request.comment  =IntegerToString(SanJiaoGroup_comment);
  118.                    sell3_request.deviation=5;                                     // 允许价格偏差
  119.                    sell3_request.magic    =888001;                                // 订单幻数
  120.                
  121.                 if(sellcheck3=OrderSend(sell3_request,sell3_result))
  122.                   {
  123.                   sell3_ticket=sell3_result.order;
  124.                   Print(sell3_request.symbol,"BBS-3同步即时卖ok,订单号:",sell3_result.order);
  125.                   }
  126.                 else
  127.                   {
  128.                   PrintFormat("BBS-3同步即时OrderSend error %d",GetLastError());     // 如果不能发送请求,输出错误代码
  129.                   }
  130.              }
  131.            //    Sleep(1*0.001*1000);
  132.            
  133.            check_total++;   
  134.           }
复制代码
举报

点赞 评论 使用道具

south
DD
 楼主 | 发表于 2024-7-29 17:12:53 | 显示全部楼层
交易量的调整,可以实现三币种的非平衡型
buy1_request.volume   =NormalizeDouble(px_big*mylots/Ask_EUR_USD,2); //交易量
buy2_request.volume   =NormalizeDouble(px_small*mylots,2);
sell3_request.volume   =NormalizeDouble(px_middle*mylots/Bid_EUR_JPY,2);
举报

点赞 1 评论 使用道具

koolyaaar
D
| 发表于 2024-7-29 22:05:41 | 显示全部楼层
Do you know much funds are required?
举报

点赞 评论 使用道具

south
DD
 楼主 | 发表于 2024-7-29 22:59:13 | 显示全部楼层
最好3000$
举报

点赞 评论 使用道具

south
DD
 楼主 | 发表于 2024-7-29 23:02:30 | 显示全部楼层
10000$,0.2手,3000$,0.06手,由于系数调整,有些币种可能为0.04手,故3000$比较合适
举报

点赞 评论 使用道具

qinan2212
D
| 发表于 2024-8-9 08:36:21 来自手机 | 显示全部楼层
Operation writeFile_my_comment failed, error 5004
举报

点赞 评论 使用道具

south
DD
 楼主 | 发表于 2024-8-10 13:53:12 | 显示全部楼层
qinan2212 发表于 2024-8-9 08:36
Operation writeFile_my_comment failed, error 5004

写入文件的命令打开了吗
举报

点赞 评论 使用道具

liuxiansheng
DDD
| 发表于 2024-8-22 21:07:39 | 显示全部楼层
朋友能不能分享下源码呢?
举报

点赞 评论 使用道具

jackyhu
DD
| 发表于 2024-8-22 21:12:22 | 显示全部楼层
支持源码 !!!!!!!
举报

点赞 评论 使用道具

feng3001
CC
| 发表于 2024-8-23 07:53:17 | 显示全部楼层
支持源码 !!
举报

点赞 评论 使用道具

DDSILT
D
| 发表于 2024-8-23 09:59:56 | 显示全部楼层
支持源码 !!!
举报

点赞 评论 使用道具

liguangxing2007
DDD
| 发表于 2024-8-23 10:11:39 | 显示全部楼层
关键不能赚钱啊
举报

点赞 评论 使用道具

south
DD
 楼主 | 发表于 2024-8-29 10:27:49 | 显示全部楼层
源码已经分享给大家了,欢迎批评
举报

点赞 评论 使用道具

FUNFUNEA
D
| 发表于 2024-8-31 16:50:14 | 显示全部楼层
支持源码,學習
举报

点赞 评论 使用道具

12下一页
发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)