以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  用指数映射具体合约下单,委托价格超出涨停价?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=166207)

--  作者:小布丁
--  发布时间:2018/10/30 11:18:18
--  用指数映射具体合约下单,委托价格超出涨停价?
PRICE:=CALLSTOCK(\'.......\',VTCLOSE,1,0);
BPRICE:IFELSE(ISLASTBAR,PRICE,C);
SPRICE:IFELSE(ISLASTBAR,PRICE,C);

IF BUYCOND THEN BUY(1,1,LIMITR,BPIRCE);

首先,引用下单合约的最新价PRICE
然后,用IFESLE(ISLASTBAR 对信号和下单价格进行转换,当出信号的时候用下单合约的价格进行委托,历史信号显示用加载的指数合约价格C。

启动图表程序化交易时,在下单品种映射打勾,并且设置好指数和具体的下单合约 映射。

采用的是“走完K线模式”

当触发买入条件时,委托价格却是指数的价格,然后因为指数价格太高,超过下单合约的涨停价,这是怎么回事???
[此贴子已经被作者于2018/10/30 11:19:48编辑过]

--  作者:FireScript
--  发布时间:2018/10/30 14:11:10
--  
 1.切换成固定轮询模式下单
2.或者直接用市价,会对应到映射品种进行市价下单
3.其实是代码问题。走完K的发单的时候BPRICE 的计算结果是上一个K指数的收盘价。因此出现你这种情况了。代码做下修改如下:

PRICE:CALLSTOCK(\'AG00\',VTCLOSE,1,0);
BPRICE:=IFELSE(DATACOUNT-BARPOS<2,PRICE,C);


if  buycond then buy(1,1,LIMIT,BPRICE),IGNORECHECKPRICE;

--  作者:小布丁
--  发布时间:2018/10/30 14:45:28
--  
谢谢!