以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  尾盘平仓问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=165283)

--  作者:sunjach
--  发布时间:2018/8/31 0:10:09
--  尾盘平仓问题
//请老师帮助修改

做多力度:=SMA((CLOSE - LLV(LOW,15)) / (HHV(HIGH,15) - LLV(LOW,15)) * 100,15,1)-8 ;
做空力度:=SMA((HHV(HIGH,30) - CLOSE) / (HHV(HIGH,30) - LLV(LOW,30)) * 100,30,1);
多空差:做多力度-做空力度,NODRAW;
多空差2:=REF(多空差,1);
标红:=多空差>=REF(多空差,1);
标绿:=多空差<=REF(多空差,1);
cc:=cross (多空差,0);
dd:=cross(0,多空差);
阳:=c>o;
阴:=c<o;
缩头:=多空差<多空差2;
缩脚:=多空差>多空差2;
yy:=多空差>0;
tt:=多空差<0;
扣底空15:=c<=ref(CLOSE,15);
扣底空30:=c<=ref(CLOSE,30);
扣底多15:=c>=ref(CLOSE,15);
扣底多30:=c>=ref(CLOSE,30);
haha:=阴 and 缩脚 and 标红 and 扣底多15 and 扣底多30;//开仓条件A 开仓以这个条件为准开仓
wawa:=阳 and 缩头 and 标绿 and 扣底空15 and 扣底空30;//开仓条件B 开仓以这个条件开仓
//haha1:=阴 and 缩脚 and 标红 and 扣底多15;//平仓条件A  以这个条件平仓,再满足条件时,只开与上面开仓条件方向的单。
//wawa1:=阳 and 缩头 and 标绿 and 扣底空15;//平用条件B  以这个条件平仓,再满足条件时,只开与上面开仓条件方向的单。

//止损条件:开仓完成后,以平仓条件前一个信号所对应的时间对应的K线价格设置止损条件。
//例如:卖出开仓后,止损为平仓条件的上一个买入条件对应的K线价格最高点作为止损条件。买入条件相反即可。
cond1:=haha;
cond2:=wawa;
if cond1 and ref(BARSLAST(cond1),1)>ref(BARSLAST(cond2),1) then //平空开多
begin
sellshort(holding<0,1,market);
buy(holding=0 and (time>=090000 and time<=145800)or (time>210000 or time<=023000),1,market);
end
if cond2 and ref(BARSLAST(cond2),1)>ref(BARSLAST(cond1),1) then //平多开空
begin
sell(holding>0,1,market);
buyshort(holding=0 and (time>=090000 and time<=145800)or (time>210000 or time<=023000),1,market);
end

//if  holding>0 and hhv(h,ENTERBARS+1)-ENTERPRICE>20*MINDIFF and c-ENTERPRICE<=15*MINDIFF  then  sell(holding>0,holding,market);//多头保本
//if  holding<0 and ENTERPRICE-llv(l,ENTERBARS+1)>20*MINDIFF and ENTERPRICE-c<=15*MINDIFF  then  sellshort(holding<0,holding,market);//空头保本

if time=145900 then //老师,不知道哪里写的不对,当日尾盘14.59分强制全平的指令,没有执行,请老师帮助修改下。
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);
end


--  作者:FireScript
--  发布时间:2018/8/31 8:42:54
--  
 你什么周期下运行的程序呢?那个判断和周期以及你用的时区都有关联的。你是否使用的是金字塔时区?
--  作者:sunjach
--  发布时间:2018/8/31 9:27:24
--  
我用的是北京时间
--  作者:FireScript
--  发布时间:2018/8/31 9:29:57
--  
什么周期下运行的?

--  作者:sunjach
--  发布时间:2018/8/31 10:12:03
--  
分钟级别的
--  作者:FireScript
--  发布时间:2018/8/31 10:21:51
--  
 几分钟呢?1分钟和5分钟 关于time的判断是有区别的。
比如五分钟周期情况下,上面那个判断肯定失效的。
[此贴子已经被作者于2018/8/31 10:26:05编辑过]

--  作者:sunjach
--  发布时间:2018/8/31 11:30:45
--  
哦,是多分钟级别,2分钟
--  作者:FireScript
--  发布时间:2018/8/31 13:08:19
--  
 如果是2分钟,倒数第二个K就是145800了,你改成这个试下。

--  作者:sunjach
--  发布时间:2018/8/31 13:54:10
--  
好的,还有其它文字标明的,开仓和平仓条件,老师帮我改一下,弄了半天,搞不定
--  作者:FireScript
--  发布时间:2018/8/31 13:59:45
--  
 “还有其它文字标明的,开仓和平仓条件”  这个需求是要做什么。没太明白。