以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  期权策略编写求助  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=154269)

--  作者:李熵影
--  发布时间:2017/5/26 21:08:15
--  期权策略编写求助
目前有这样一个期权交易思路, 不知哪位高手可以写一个范本供参考学习。

开仓条件: 期权当月第一天,取平值期权卖出跨式(卖出平值认购,卖出平值认沽)

止盈条件: 浮盈超过卖出所获权利金的50%,止盈

止损条件: 标的50etf价格的30分钟k线收盘价涨幅超过0.8%,平掉认购义务仓位,同时卖出同价认沽; 
               标的50etf价格的30分钟k线收盘价跌幅超过0.8%,平掉认沽义务仓位,同时卖出同价认购;
       标的50etf价格的回到开仓位置,则从调整后的仓位恢复到原来的跨式组合仓位; 
无条件平仓:到期前一天;

如此循环往复。

多谢!

--  作者:FexTel
--  发布时间:2017/5/27 14:05:26
--  
请等待工作人员处理
--  作者:李熵影
--  发布时间:2017/6/16 7:14:45
--  
这个思路可以实现么?
--  作者:wenarm
--  发布时间:2017/6/16 11:11:37
--  

需要使用后台程序化。

if MONTH<>ref(MONTH,1) then begin
 PZ:=ROUNDS(CALLSTOCK(\'QQ510050\',VTCLOSE,6),2);
 EXTGBSTRINGSET(\'PZ\',PZ );
 D1PG:=OPOBYPRIRCE(\'QQ510050\',PZ,0,1,1);//平值认购合约
 D1PM:=OPOBYPRIRCE(\'QQ510050\',PZ,1,1,1);
 EXTGBSTRINGSET(\'D1PG\',D1PG );
 EXTGBSTRINGSET(\'D1PM\',D1PM );
 TBUYSHORT(1,1,MKT,\'\',\'\',\'\',D1PG);
 TBUYSHORT(1,1,MKT,\'\',\'\',\'\',D1PM);
end

IF TOPENPROFIT/TENTERPRICE*10000>=0.5 then BEGIN
 TSELLSHORT(1,1,MKT,\'\',\'\',\'\',D1PG);
 TSELLSHORT(1,1,MKT,\'\',\'\',\'\',D1PM);
end
 
if (CALLSTOCK(\'QQ510050\',VTCLOSE,6)-CALLSTOCK(\'QQ510050\',VTCLOSE,6.-1))>0.008 then begin
 TSELLSHORT(1,1,MKT,\'\',\'\',\'\',D1PG);
 TBUYSHORT(1,1,MKT,\'\',\'\',\'\',D1PM); 
end
if (CALLSTOCK(\'QQ510050\',VTCLOSE,6)-CALLSTOCK(\'QQ510050\',VTCLOSE,6.-1))<0.008 then begin
 TSELLSHORT(1,1,MKT,\'\',\'\',\'\',D1PM);
 TBUYSHORT(1,1,MKT,\'\',\'\',\'\',D1PG); 
end

if EXTGBSTRING(\'PZ\')=ROUNDS(CALLSTOCK(\'QQ510050\',VTCLOSE,6),2) THEN BEGIN
 IF TSELLHOLDINGEX( \'\',\'D1PG\' ,2)>1 then TSELLSHORT(1,(TSELLHOLDINGEX( \'\',\'D1PG\' ,2)-1),MKT,\'\',\'\',\'\',D1PG);
 IF TSELLHOLDINGEX( \'\',\'D1PM\' ,2)>1 then TSELLSHORT(1,(TSELLHOLDINGEX( \'\',\'D1PM\' ,2)-1),MKT,\'\',\'\',\'\',D1PM);
 IF TSELLHOLDINGEX( \'\',\'D1PG\' ,2)=0 then TSELLSHORT(1,1,MKT,\'\',\'\',\'\',D1PG);
 IF TSELLHOLDINGEX( \'\',\'D1PM\' ,2)=0 then TSELLSHORT(1,1,MKT,\'\',\'\',\'\',D1PM);
END


if (date,OPTIONINFO2(7 ,EXTGBSTRING(\'D1PG\'))<=1 then begin
 TSELLSHORT(1,1,MKT,\'\',\'\',\'\',D1PG);
 TSELLSHORT(1,1,MKT,\'\',\'\',\'\',D1PM);
end


 


--  作者:李熵影
--  发布时间:2017/6/17 20:42:47
--  
非常感谢,帮助非常大 

这一句是不是有点错误?这里程序编译 过不了 
if (date,OPTIONINFO2(7 ,EXTGBSTRING(\'D1PG\'))<=1

第二个问题,后台程序已经 抓取平值期权,那么运行这个后台程序时候 还需要设定监控品种吗?

当前月份期权的第一天,并不是日历月份的第一天 ,有相应的函数来判断吗?

再次感谢 

--  作者:wenarm
--  发布时间:2017/6/19 8:17:07
--  

if (date,OPTIONINFO2(7 ,EXTGBSTRING(\'D1PG\')))<=1

少了半个括号。

没有直接可用的函数,不知道你说的当前月份的第一天要怎么定义?


--  作者:小不点
--  发布时间:2017/6/20 11:37:51
--  
期权当月第一天的定义, 我的理解是上证50ETF 价格档出现了新的价格,就会出现新的期权合约。比如当前期权最上一档是2.5,当现货价上涨,上面就会出现2.55,或2.6的这种平值期权。不知道作者是不是要表述这个。