以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  恳请高人指点,感谢  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=9707)

--  作者:lizhaozhao
--  发布时间:2012/1/19 11:33:03
--  恳请高人指点,感谢

请教高手,我的想法是这样的,开仓是用人工手动开仓(按照个人的主观判断,不用程序化),但平仓(止盈或者止损)就用程序化交易,我想到了用后台程序化交易,自己写了一个简单的测试代码

程序策略是:手动开仓后,多单或者空单盈利100元就平仓

自己写了一个代码(如下),可以编译,不报错,我测试这段代码的过程是这样的,自己先手工下一个单,之后把后台程序化交易启动起来,但是每次打到止盈平仓的条件的时候老是不执行平仓,请问高人,我的这个想法是不是有错行不通,或者是我的代码写错了(代码在下面,请检查)

 

kdzq:= tenterbars(0)+1; //从上次开仓到现在经历的k线周期数目
zgj:=hhv(high,kdzq); //从上次开仓的时间作为起始点,到目前为止的最高价
zdj:=llv(low,kdzq); //从上次开仓的时间作为起始点,到目前为止的最低价

if holding>0 then begin  //当持仓是多头时
kdj:=tenterprice; // 获取上次开多仓的价格
if zgj-kdj>=100 then begin  //当多头获利100元时平仓
tsell(1,holding,mkt);
end
end

 

if holding<0 then begin  //当持仓是空头时
kkj:=tenterprice; //获取上次开空仓的价格
if kkj-zdj>=20 then begin //当空头获利100元时平仓
tsellshort(1,holding,mkt);
end
end


--  作者:jinzhe
--  发布时间:2012/1/19 13:08:05
--  
holding是虚拟持仓,如果你是手工下单,自动平单的话,用实际持仓进行判断THOLDING2。
--  作者:fly
--  发布时间:2012/1/19 13:53:36
--  
得到当前位置的上次开仓价
用法:TENTERPRICE
该函数返回常数,并且只有在后台程式化交易运行中有效
该函数依赖TBUY等交易语句或者在交易监控中的手工干预的成交记录。(注意这里的手工干预最好是后台监测一个品种)