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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 请老师帮忙编译下 谢谢了

   

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


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

主题:请老师帮忙编译下 谢谢了

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


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
请老师帮忙编译下 谢谢了  发帖心情 Post By:2016/1/28 14:49:06 [显示全部帖子]

 w=windmatlab;    %连接万德

Feb_list_call=w.wset('OptionChain','date=20160127;us_code=510050.SH;option_var=510050OP.SH;month=201602;call_put=call;field=option_code');    %读取2月认购合约代码
n=length(Feb_list_call);   
interval=0;      %设置合约间隔
fee=12;        %策略固定费用
pos=0;    %开平仓标识,1为开,0为平
SUMMARY=cell(1,9);    %设置输出变量title
SUMMARY{1,1}='时间';SUMMARY{1,2}='低行权价合约代码';SUMMARY{1,3}='低行权价合约价格';SUMMARY{1,4}='居中行权价合约代码';SUMMARY{1,5}='居中行权价合约价格';SUMMARY{1,6}='高行权价合约代码';SUMMARY{1,4}='高行权价合约价格';SUMMARY{1,5}='浮动盈亏';SUMMARY{1,6}='开平标识';
summary=[];

t1=datenum('2015-12-03 09:30:00');
t2=datenum('2015-12-03 11:30:00');
t3=datenum('2015-12-03 13:00:00');
t4=datenum('2015-12-03 14:32:00');
starttimenum1=rem(t1,1);
endtimenum1=rem(t2,1);
starttimenum2=rem(t3,1);
endtimenum2=rem(t4,1);
while (rem(now,1)>=starttimenum1&&rem(now,1)<=endtimenum1)||(rem(now,1)>=starttimenum2&&rem(now,1)<=endtimenum2)
for interval=0:fix((n-3)/2)
for i=1:n-(interval*2+2)
    Price=w.wsq(Feb_list_call,'rt_bid1,rt_ask1');     %读取实时行情价格
    T=w.wsq('510050.SH','rt_time');     %读取时间
    if pos>0               %若有开仓
        C2_call_buy=Price(i+interval,2);        %记录中间行权价合约价格
        C2_call_code=Feb_list_call(i+interval);    %记录中间行权价合约代码
        C1_call_sell=Price(i,1);         %记录低行权价合约价格
        C1_call_code=Feb_list_call(i);     %记录低行权价合约代码
        C3_call_sell=Price(i+2*interval,1);         %记录高行权价合约价格
        C3_call_code=Feb_list_call(i+2*interval,1);         %记录高行权价合约代码
        Profit_or_Loss=C1_call_sell-C1_call_buy+C2_call_sell-C2_call_buy+C3_call_sell-C3_call_buy;       %记录浮动盈亏
        if Price(i+interval,2)-0.5*Price(i,1)-0.5*Price(i+2*interval,1)-fee<0     %若满足平仓条件
        pos=0;     %更新pos
        end
        summary=[summary;T,C1_call_code,C1_sell,C2_call_code,C2_buy,C3_call_code,C3_sell,Profit_or_Loss,pos];     %记录行情
    end
        
    if pos==0 && Price(i+interval,1)-0.5*Price(i,2)-0.5*Price(i+2*interval,2)-fee>0     %若满足开仓条件
        pos=1;     %更新pos
        C2_call_sell=Price(i+interval,1);   %同上
        C2_call_code=Feb_list_call(i+interval);
        C1_call_buy=Price(i,2);
        C1_call_code=Feb_list_call(i);
        C3_call_buy=Price(i+2*interval,2);
        C3_call_code=Feb_list_call(i+2*interval,1);
        Profit_or_Loss=0;    %开仓时浮动盈亏为0
        summary=[summary;T,C1_call_code,C1_call_buy,C2_call_code,C2_call_sell,C3_call_code,C3_call_buy,Profit_or_Loss,pos];   %记录行情
    end     
end
    interval=interval+1;    %更新合约间隔
end
end

S=num2cell(summary);   %修改矩阵类型
SUMMARY=[SUMMARY;S];   


就是随便写了一个简单的认购期权凸性套利的策略的例子,主要是想看看PEL是怎么实现这些matlab函数的
 不过写的比较简单,如果老师比较熟悉期权的话,能完善一下“全市场扫描合约”这样的过程就更好了~
其实就是期权凸性套利了
老师搜一下这个套利原理也可以,就一个公式


 回到顶部