此主题相关图片如下:未命名2.jpg
前K大30均线:IF(REF(CLOSE,1)>A3,1,0),LINETHICK0;
当K大30均线:IF(CLOSE>A3,1,0),LINETHICK0; //A3为30单位线
sellshort(前K大30均线=1 AND 当K大30均线=1,持仓,MARKET);
平仓条件为连续2根阳线收盘价大于30单位线,图中绿线为30单位线,
为什么不是第二根收盘价大于30单位线的阳线平仓,而是第三根呢,最郁闷的是30单位线上第一根,前K大30均线的值居然为0
很明显的是大于30单位线,值为1嘛,而在这之前,已经有连续的2根阳线收盘价大于30单位线了,但是也不平仓,才轮到现在
这个位置平仓,郁闷至极啊
看了楼主的意思大概是要当连续两个K线是阳线并且这两根K线的收盘价都要大于30均线的时候平仓是吧。
那么你的条件可以试试这样写:
if all(c>o,2) and all(c>ma30,2) then sellshort();
刚试过了,一样是在同位置平仓,并且这种方式不太适合我,因为我的平仓条件实在太多,这样写不太方便
我刚又上传了一张大图,更能看清楚,这种平仓方式,是指连续2根收盘价与开盘价都大于30单位线的阳线,
而不是单指收盘价
那再加一个条件就可以了
if all(c>o,2) and all(c>ma30,2) and all(o>ma30,2) then sellshort();
那再加一个条件就可以了
if all(c>o,2) and all(c>ma30,2) and all(o>ma30,2) then sellshort();
我是说,我发的图中的程序是按收盘价与开盘价都大于30均线来平仓的,
而我是只想以收盘价来平仓,我写的程序也是以收盘价来平仓的。
把你前面提到的公式,贴一个完整的上来,并说明使用的周期,具体那个品种,以及你提到的问题是哪一天,我们来测试看看
A1:=MA(C,5);
A2:=MA(C,10);
A3:=MA(C,30);
持仓:=holding;
IF 持仓>=0 THEN
BEGIN
开仓:=IF(C<A1 AND C<A2 AND C<A3,1,0);
BUYSHORT(开仓=1,2,MARKET);
END
前阳:IF(REF(CLOSE,1)>REF(OPEN,1),1,0),LINETHICK0;
前K大30均线:IF(REF(CLOSE,1)>A3,1,0),LINETHICK0;
当K大30均线:IF(CLOSE>A3,1,0),LINETHICK0;
sellshort(前阳=1 AND 前K大30均线=1 AND 当K大30均线=1,持仓,MARKET);
使用1分钟周期,品种CU07
开仓时间--3月28号14:04
应该平仓时间--3月29号09:31
实际平仓时间--3月29号09:55
谢谢大家,辛苦了
肯定不会看错,那就应该是数据不全所至,我也在想不可能软件出这样的问题,我补过数据的,但不知道对不对,麻烦您说一下详细的步骤,我再补一次试试,谢谢