欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 我现在想编写套利程序

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2764人关注过本帖树形打印复制链接

主题:我现在想编写套利程序

帅哥哟,离线,有人找我吗?
qq代人发帖
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
我现在想编写套利程序  发帖心情 Post By:2018/12/11 10:20:54    Post IP:180.169.30.6[只看该作者]

您好!我现在想编写套利程序:

豆粕套利要求:
                开盘价差:=合约1开盘价-合约2开盘价
                最新价差:=合约1最新价-合约2最新价
开仓条件:
最新价差-开盘价差>=10  开10手合约1空单 10手合约2 多单;
最新价差-开盘价差>=30  开10手合约1多单 10手合约2 空单;

最新价差-开盘价差<=-10  开10手合约1多单 10手合约2空单;
最新价差-开盘价差<=-30 开10手合约1空单 10手合约2多空单;

平仓条件:
进去的每10手,每获利10个点平10手,亏损则持有!
该持仓可以隔夜。
这个条件要怎么写?


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/12/11 11:02:59    Post IP:180.169.30.6[只看该作者]

 
1. 套利的代码建议先参考下系统范例里面的代码:

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看


2.“进去的每10手,每获利10个点平10手,亏损则持有!”

这个实现不了的。因为开得仓的盈亏都是汇总的,就如同你账户栏看到的一样。不会因为你分批下的单就可以区分开来一样。你只能按照总的盈亏来执行止损操作。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
zerool
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:28 积分:0 威望:0 精华:0 注册:2018/9/14 15:56:11
  发帖心情 Post By:2018/12/11 11:24:17    Post IP:59.53.20.113[只看该作者]

我想实现价差>10点,开一笔,而且只开一笔,价差大于50手开一笔也只开一笔,80手也是这样,这个要怎样设置?

 回到顶部
帅哥哟,离线,有人找我吗?
zerool
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:28 积分:0 威望:0 精华:0 注册:2018/9/14 15:56:11
  发帖心情 Post By:2018/12/11 11:42:49    Post IP:59.53.20.113[只看该作者]

//砍仓
IF TSELLHOLDINGEX(账户,套利品种1,0 )=1 AND TBUYHOLDINGEX(账户,套利品种2,0 )=0 AND TREMAINQTY(1,账户,套利品种2)=1 THEN BEGIN
TSELLSHORT(1,1,MKT ,0,0,账户,套利品种1 );
END

另外,不论是空单还是多单,这个里面我想设置获利10个点平仓要怎么设置。

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/12/11 14:24:34    Post IP:180.169.30.6[只看该作者]

 套利品种1:='rb00';
套利品种2:='ag00';
账户:=‘’;//账号自行定义下
JC1:CALLSTOCK(套利品种1,vtOPEN,6,0)-CALLSTOCK(套利品种2,vtOPEN,6,0);//开盘价差
JC2:dynainfo2(7,套利品种1)-dynainfo2(7,套利品种2);//最新价差

if jc2>=10*MINDIFF and jc2<50*MINDIFF then //价差在10到50之间
begin
TBUYSHORT(1,1,MKT ,0,0,账户,套利品种1);
TBUY(1,1,MKT ,0,0,账户,套利品种2);
end

if jc2>=50*MINDIFF and jc2<80*MINDIFF then //价差在50到80之间
begin
TBUYSHORT(1,1,MKT ,0,0,账户,套利品种1);
TBUY(1,1,MKT ,0,0,账户,套利品种2);
end

if jc2>=80*MINDIFF then //价差大于80
begin
TBUYSHORT(1,1,MKT ,0,0,账户,套利品种1);
TBUY(1,1,MKT ,0,0,账户,套利品种2);
end

这是针对你3楼的。 但是这个只是一个方向的,反方向的套利单可以仿照这个处理下。另外上面代码都是后台的,在图表上上面代码是不行的。
[此贴子已经被作者于2018/12/11 14:40:41编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
zerool
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:28 积分:0 威望:0 精华:0 注册:2018/9/14 15:56:11
  发帖心情 Post By:2018/12/11 20:43:10    Post IP:59.53.25.216[只看该作者]

谢谢:上面的开仓,我要盈利10个点平仓,要怎么写?

 回到顶部
帅哥哟,离线,有人找我吗?
zerool
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:28 积分:0 威望:0 精华:0 注册:2018/9/14 15:56:11
  发帖心情 Post By:2018/12/12 13:43:50    Post IP:59.53.25.216[只看该作者]

 套利品种1:='rb00';
套利品种2:='ag00';
账户:=‘’;//账号自行定义下
JC1:CALLSTOCK(套利品种1,vtOPEN,6,0)-CALLSTOCK(套利品种2,vtOPEN,6,0);//开盘价差
JC2:dynainfo2(7,套利品种1)-dynainfo2(7,套利品种2);//最新价差
jc:jc2-jc1;

time4:=time<=105000 or (time<130500 and time>120000);//开盘五分钟

//开多单

if time4=1 and jc>=8*MINDIFF then //价差在10到50之间
begin
    TBUYSHORT(1,10,MKT ,0,0,账户,套利品种2);
    TBUY(1,10,MKT ,0,0,账户,套利品种1);
end

if jc>=8*MINDIFF and jc<50*MINDIFF then //价差在10到50之间
begin
    TBUYSHORT(1,10,MKT ,0,0,账户,套利品种1);
    TBUY(1,10,MKT ,0,0,账户,套利品种2);
end

 就上面买点,我要获利10个点平仓,要怎么写?

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/12/12 16:01:45    Post IP:180.169.30.6[只看该作者]

 后台可以直接读取指定方向指定品种的持仓均价再根据最新价来计算盈亏。

TBUYHOLDINGEX
tsellholdingex

分别用这2个函数来读取持仓均价,这个持仓均价就是你在账户栏上看的值。然后对2个品种分别计算盈亏,再汇总。

最新价可以用DYNAINFO2(7,code)取,code是品种代码。
这个是代码思路,你可以先尝试下。





命数如织,当如磐石。
 回到顶部