以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于全局变量的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=43966)

--  作者:yekaicong
--  发布时间:2013/1/1 23:07:02
--  关于全局变量的问题
我的模型思路很简单,在H1和L1之间,做震旦交易,向上突破H1做空,向下突破L1做多;一旦价格向上突破H2,空翻多;价格向下突破L2,多翻空。

用的是1秒轮询,而不是等K线走完

我现在的问题是E点会多翻空,但我想E点应该是继续持有多单的,求高手看看我的程序是不是有问题!

variable:x:=0;

if h>H2 then x:=1;

if l<l2 then x:=-1;

if h>h1 and x:=-1 then x:=0;

if l<l1 and x:=1 then x:=0;

//开头条件

long:=h>H2 and time>093000 and time<150500;

if long then
begin
sellshort(holding<0,0,mkt);
buy(holding=0,1,mkt);
end

long2:=l<l1 and l>L2 and x=0 and time>093000 and time<150500;

if long2 then
begin
sellshort(holding<0,0,mkt);
buy(holding=0,1,mkt);
end



//开空条件
short:=l<l2 and time>093000 and time<150500;

if short then
begin
sell(holding>0,0,mkt);
buyshort(holding=0,1,mkt);
end

short2:=h>h1 and h<H2 and x=0 and time>093000 and time<150500;

if short2 then
begin
sell(holding>0,0,mkt);
buyshort(holding=0,1,mkt);
end

//收盘前平仓
if time>151000 then
begin
x:=0;
sell(holding>0,0,thisclose);
sellshort(holding<0,0,thisclose);
end

--  作者:guotx2010
--  发布时间:2013/1/3 10:35:53
--  
你每一段都是直接反手啊,如果要同时持有多、空两种单,需要使用后台策略才行吧。