共13 条记录, 每页显示 10 条, 页签:
[1]
[2]
[浏览完整版]
标题:映射下单数量总不对,总是按源品种来计算仓位,请教如何按照目标品种来计算仓位,谢谢
1楼
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
2楼
qq代人发帖 发表于:2016/4/13 14:07:34

此主题相关图片如下:myf2a5(gh$hr)_4ael9ojj.jpg
3楼
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,使用当前周期
引用数据时,需要实现确认被引用品种周期数据齐全,再首次使用或者在不确定时,请手工进行数据补充工作.
所属函数组:行情函数
4楼
yukizzc 发表于:2016/4/13 14:40:18
用上面这个函数去引用自己所下单品种的价格,然后用这个价格去计算你的ss
num:=callstock();
ss:=asset/num;
5楼
唐方一战 发表于: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
6楼
yukizzc 发表于:2016/4/13 15:35:00
ss就是你的开仓手数了啊,你下面开仓部分也要改
开多:=BUY(开仓条件 ,ss,LIMITR,上轨);
7楼
唐方一战 发表于: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
老师,您看这样对吗??谢谢
8楼
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
9楼
唐方一战 发表于:2016/4/13 19:28:36
不好意思,显示变量名重复,麻烦您再帮忙看看哪出问题了,谢谢!!!!!!!!!!!!!!!!!!!!!!!

此主题相关图片如下:6666666.png
10楼
yukizzc 发表于:2016/4/13 20:17:53
把上面表格那边定义的ss删掉,软件已经提示你了重复定义,那么你就可以看下ss这个名字是不是哪里被占用了然后去掉就ok
共13 条记录, 每页显示 10 条, 页签:
[1]
[2]