IF DYNAINFO( 7) >A THEN BEGIN//MAKE A MAX
A:= DYNAINFO( 7);
END
IF A - DYNAINFO( 7) >10 * MINDIFF THEN BEGIN//IF BIGGER THEN SELL
SELL(1,HOLDER,MARKET);
A:=0;
END
以上代码表示的将 最高价格复制给变量a 当最新价格比最大价格未落10个价位时候 sell
但是测试的时候 有没有这段代码都是一个结果
出了 什么问题呢??
同你之前发的帖子一样,动态行情函数问题,不能用在图表交易里面
之前的那次其实是全局变量问题 不是dynainfo的问题
去掉 extgbdata 留着 dynainfo 是 可以测试的
但是这段就不行了
如果非要替换的话 用什么替换dynainfo(7)呢
谢谢
有值也不表示你写的就是对的,动态行情函数用在图表里面会出问题,不是表示动态行情在图表里面会没有值
variable:n=0;
if 开仓条件 and holding=0 then begin
buy.....;
n:=enterprice;
end
if h>n and holding>0 then n:=h;
if c<n-10 then sell.........;
[此贴子已经被作者于2016-11-3 9:55:15编辑过]
感谢解答 等下试试上面的代码
1.有没有什么好的方法能把 后台 和图表结合到一起呢
2.我改写的系统是双轨道 ,所以一定是 图表交易系统吗
1.怎么把我的双轨道 改写成 后台呢 具体要改哪部分代码呢?
//中间变量
INPUT:N(16,1,30,1),K1(0.4,0.1,1,0.1),K2(0.8,0.1,1,0.1),NMIN(6,1,10,1),SS(1000,100,1000,100);
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
LHIGH:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
LLOW:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
LCLOSE:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
TOPEN:=VALUEWHEN(CYC=1,OPEN);
HH:=HHV(LHIGH,N);//N日HIGH的最高价
HC:=HHV(LCLOSE,N);//N日CLOSE的最高价
LC:=LLV(LCLOSE,N);//N日CLOSE的最低价
LL:=LLV(LLOW,N);//N日LOW的最低价
MOVING:=MAX(HH-LL,HC-LL);//RANGE
T1:=TIME>=091000 AND TIME<=145200;
T2:=TIME>=145400 AND TIME<=150000;
HOLDER:=SS;
UP:TOPEN+K1*MOVING;
DOWN:TOPEN-K2*MOVING;
BUYCON:=C>UP AND HOLDING=0 ;
BUYSHORTCON:=C<DOWN AND HOLDING=0 ;
VARIABLE:A:=0;
VARIABLE:B:=0;
VARIABLE:MAXP:=0;
VARIABLE:P:=0;
VARIABLE:MAXP:=0;
VARIABLE:DOWN:=0;
///每天的 开盘的时候 持仓为0 且没有开过仓
IF TIME >=090000 AND TIME <=090200 THEN BEGIN
B:=0;//A 代表是否有仓位 b代表是否开过仓位
A:=0;
END
///
//持有空仓的情况
IF HOLDING=0 THEN BEGIN
IF T1 THEN BEGIN
IF BUYCON THEN BEGIN
BUY( B=0 AND A=0,HOLDER,MARKET);
A:=1;
B:=1;
P:=AVGENTERPRICE();
MAXP:=0;
END
IF BUYSHORTCON THEN BEGIN
BUYSHORT( B=0 AND A=0,HOLDER,MARKET);
A:=-1;
B:=1;
P:=0;
MAXP:=0;
END
END
END
IF HOLDING>0 THEN BEGIN
IF T1 THEN BEGIN
//最高价格 浮亏10跳 止盈操作
If ENTERBARS>0 then begin
{
IF h >p THEN BEGIN//MAKE A MAX
p:= h;
END
IF p - C >10 * MINDIFF THEN BEGIN//IF BIGGER THEN SELL
SELL(1,HOLDER,MARKET);
A:=0;
B:=1;
MAXP:=0;
p:=0;
END
}
//
////////+百分比止盈
{
P:=(O-AVGENTERPRICE())/AVGENTERPRICE() *100;
IF P>MAXP THEN BEGIN
MAXP=P;
DOWN:=(MAXP-P)/MAXP*100;
END
IF DOWN >=90 THEN BEGIN
SELL(1,HOLDER,MARKET);
MAXP:=0;
P:=0;
A:=0;
B:=1;
END
}
///////////////////////
//浮亏10跳 止损
IF ( AVGENTERPRICE()- DYNAINFO( 7)>10*MINDIFF) THEN BEGIN
SELL(1,HOLDER,MARKET);
A:=0;
B:=1;
END
end
//
END
IF T2 THEN BEGIN
SELL(1,HOLDER,MARKET);
A:=0;
B:=1;
END
END
IF HOLDING<0 THEN BEGIN
IF T1 THEN BEGIN
IF ( DYNAINFO( 7)-AVGENTERPRICE()>10*MINDIFF) THEN BEGIN
SELLSHORT(1,HOLDER,MARKET);
A:=0;
B:=1;
END
END
IF T2 THEN BEGIN
SELLSHORT(1,HOLDER,MARKET);
A:=0;
B:=1;
END
END
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值