以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2)
---- 映射下单数量总不对,总是按源品种来计算仓位,请教如何按照目标品种来计算仓位,谢谢 (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=96227)
|
-- 作者:qq代人发帖
-- 发布时间:2016/4/13 14:06:52
-- 映射下单数量总不对,总是按源品种来计算仓位,请教如何按照目标品种来计算仓位,谢谢
下单数量总是按100W/6413来计算,161股 ,我是想按100W/6.57,152200股
我的源品种是股票指数399905,目标品种是具体的股票510500,这是我使用的程序,目前映射设定好后一直不成功(一直按指数下单,以指数计算开仓数量)帮我看看如何修改才可以完成映射(看指数,以目标品种开仓,计算仓位),
万分感谢!
INPUT:M1(0.1,0.1,0.5,0.01),M2(0.15,0.1,0.5,0.01),ss(0,0,100000000,1);//参数值
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//昨高 昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//昨低 昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//昨收 今日开盘价:=Valuewhen(date<>ref(date,1),open);
S1:=max(昨收-昨低,昨高-昨收);//中间变量 S:=max(昨收*0.008,S1);//中间变量
上轨:今日开盘价+M1*S;//求上轨 下轨:今日开盘价-M2*S;//求下轨
手数:=SS; //条件 开仓条件:=high>=上轨 ;//开多条件 平仓条件:=low<=下轨 ;//平仓条件
//交易系统 IF TIME>090000 AND HOLDING = 0 THEN BEGIN 开多:=BUY(开仓条件 ,手数,LIMITR,上轨); 开仓日期:=date; END IF date>开仓日期 AND HOLDING > 0 THEN BEGIN 平仓:=sell(平仓条件 ,手数,LIMITR,下轨); END
|
-- 作者:qq代人发帖
-- 发布时间:2016/4/13 14:07:34
-- 图片在这里
此主题相关图片如下:myf2a5(gh$hr)_4ael9ojj.jpg
|
-- 作者:yukizzc
-- 发布时间:2016/4/13 14:39:30
--
引用同期的其他证券数据
推荐使用V3.02版本推出的Callstockex函数,能极大的提高运行效率。
用法: CALLSTOCK(CODE,TYPE,CYC,N), CODE指定品种代码,
TYPE 数据类型 TYPE的值可为 VTOPEN(开盘) VTHIGH(最高) VTLOW(最低) VTCLOSE(收盘) VTVOL(成交量) VTAMOUNT(成交额) vtOPENINT(持仓量) VTADVANCE(涨数,大盘有效) VTDECLINE(跌数,大盘有效)
CYC 数据周期 CYC范围为0-24,分别表示 0:分笔成交、1:1分钟、2:5分钟、3:15分钟、4:30分钟、5:60分钟 6:日、7:周、8:月、9:年、10:多日、11:多分钟、12:多秒 13:多小时、14:季度线、15:半年线、16:节气线、17:3分钟、18:10分钟、19:多笔线、20:N日线、21:N分钟线、22:N秒线、23:N笔线、24:N小时线;
N表示偏移,N若不填则视为0, N变量有2种用途 1、当CYC周期<=19时,为左右偏移周期个数(可选)0表示引用当前数据,<0为引用之前数据,>0为引用之后数据。 2、当CYC周期>=20时,为自定义N周期的具体数字 如果找不到同期数据,那么将返回最近的一个。
例如:CALLSTOCKEX(\'1A0001\',VTCLOSE,6,-1)表示引用日线周期的1A0001 的日线昨收盘价 CALLSTOCK(\'SH600000\',VTOPEN,-1,0)表示引用最近100K线SH市场的600000,使用当前周期 引用数据时,需要实现确认被引用品种周期数据齐全,再首次使用或者在不确定时,请手工进行数据补充工作. 所属函数组:行情函数
|
-- 作者:yukizzc
-- 发布时间:2016/4/13 14:40:18
--
用上面这个函数去引用自己所下单品种的价格,然后用这个价格去计算你的ss
num:=callstock();
ss:=asset/num;
|
-- 作者:唐方一战
-- 发布时间:2016/4/13 15:05:06
--
老师,是这样修改吗?您邦我看看呢,谢谢 INPUT:M1(0.1,0.1,1.8,0.01),M2(0.1,0.1,1.8,0.01),ss(0,0,100000000,1);//参数值
num:=CALLSTOCK(\'SH510500\',VTOPEN,0,0);
ss:=asset/num;
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//昨高 昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//昨低 昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//昨收 今日开盘价:=Valuewhen(date<>ref(date,1),open);
S1:=max(昨收-昨低,昨高-昨收);//中间变量 S:=max(昨收*0.008,S1);//中间变量
上轨:今日开盘价+M1*S;//求上轨 下轨:今日开盘价-M2*S;//求下轨;
//条件 开仓条件:=high>=上轨 ;//开仓条件 平仓条件:=low<=下轨 ;//平仓条件
//交易系统 IF TIME>090000 AND HOLDING = 0 THEN BEGIN 开多:=BUY(开仓条件 ,手数,LIMITR,上轨); 开仓日期:=date; END IF date>valuewhen(开仓条件,date) AND HOLDING > 0 THEN BEGIN 平仓:=sell(平仓条件 ,手数,LIMITR,下轨);
END
|
-- 作者:yukizzc
-- 发布时间:2016/4/13 15:35:00
--
ss就是你的开仓手数了啊,你下面开仓部分也要改
开多:=BUY(开仓条件 ,ss,LIMITR,上轨);
|
-- 作者:唐方一战
-- 发布时间:2016/4/13 16:49:48
--
INPUT:M1(0.1,0.1,1.8,0.01),M2(0.1,0.1,1.8,0.01),ss(CALLSTOCK,0,100000000,1);//参数值
CALLSTOCK(\'SZ159915\',VTOPEN,2,0);
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//昨高 昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//昨低 昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//昨收 今日开盘价:=Valuewhen(date<>ref(date,1),open);
S1:=max(昨收-昨低,昨高-昨收);//中间变量 S:=max(昨收*0.008,S1);//中间变量
上轨:今日开盘价+M1*S;//求上轨 下轨:今日开盘价-M2*S;//求下轨; 手数:=SS;
//条件 开仓条件:=high>=上轨 ;//开仓条件 平仓条件:=low<=下轨 ;//平仓条件
//交易系统 IF TIME>090000 AND HOLDING = 0 THEN BEGIN 开多:=BUY(开仓条件 ,SS,LIMITR,上轨); 开仓日期:=date; END IF date>valuewhen(开仓条件,date) AND HOLDING > 0 THEN BEGIN 平仓:=sell(平仓条件 ,SS,LIMITR,下轨);
END
老师,您看这样对吗??谢谢
|
-- 作者:yukizzc
-- 发布时间:2016/4/13 17:12:40
--
INPUT:M1(0.1,0.1,1.8,0.01),M2(0.1,0.1,1.8,0.01);
num:=CALLSTOCK(\'SH510500\',VTOPEN,0,0);
ss:=asset/num;
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//昨高
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//昨低
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//昨收
今日开盘价:=Valuewhen(date<>ref(date,1),open);
S1:=max(昨收-昨低,昨高-昨收);//中间变量
S:=max(昨收*0.008,S1);//中间变量
上轨:今日开盘价+M1*S;//求上轨
下轨:今日开盘价-M2*S;//求下轨;
//条件
开仓条件:=high>=上轨 ;//开仓条件
平仓条件:=low<=下轨 ;//平仓条件
//交易系统
IF TIME>090000 AND HOLDING = 0 THEN BEGIN
开多:=BUY(开仓条件 ,ss,LIMITR,上轨);
开仓日期:=date;
END
IF date>valuewhen(开仓条件,date) AND HOLDING > 0 THEN BEGIN
平仓:=sell(平仓条件 ,ss,LIMITR,下轨);
END
|
-- 作者:唐方一战
-- 发布时间:2016/4/13 19:28:36
--
不好意思,显示变量名重复,麻烦您再帮忙看看哪出问题了,谢谢!!!!!!!!!!!!!!!!!!!!!!! 此主题相关图片如下:6666666.png
|
-- 作者:yukizzc
-- 发布时间:2016/4/13 20:17:53
--
把上面表格那边定义的ss删掉,软件已经提示你了重复定义,那么你就可以看下ss这个名字是不是哪里被占用了然后去掉就ok
|