欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 关于VARIABLE定义的变量的问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2641人关注过本帖平板打印复制链接

主题:关于VARIABLE定义的变量的问题

帅哥哟,离线,有人找我吗?
lisunnyday
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:81 积分:0 威望:0 精华:0 注册:2016/3/22 16:42:57
  发帖心情 Post By:2016/3/31 11:41:16    Post IP:125.33.53.41[只看该作者]

左边的代码:  

//INPUT:P1(10,5,100,1),P2(30,5,100,1),P3(60,5,100,1);

INPUT:MAP1(10,5,100,1),MAP2(30,5,100,1),MAP3(60,5,100,1);


VARIABLE: flag = 0;  //1:已经开多了,-1:已经开空了    0:未持有多空交易单子

VARIABLE: 大盘信号 = 0;  //0:无信号状态  1:多头信号   -1:空头信号
VARIABLE: 大盘平仓信号 = 0;  //0:无信号状态  1:平空头信号   -1:平多头信号

EMA1: EMA(CLOSE, MAP1);
EMA2: EMA(CLOSE, MAP2);
EMA3: EMA(CLOSE, MAP3);

//大盘数据信号分析处理 start

//大盘数据获取
// 1分钟
HS300_CLOSE: CALLSTOCK('SH300',vtCLOSE,1),LINETHICK0;
HS300_OPEN: CALLSTOCK('SH300',vtOPEN,1),LINETHICK0;
HS300_EMA: EMA(HS300_CLOSE, MAP3),LINETHICK0;

//5秒数据
HS300_CLOSE_SECOND: CALLSTOCK('SH300',vtCLOSE,22,5),LINETHICK0;
HS300_OPEN_SECOND: CALLSTOCK('SH300',vtOPEN,22,5),LINETHICK0;



//本K开盘价大于于前K开盘价:= HS300_OPEN > REF(HS300_OPEN,1); 

//大盘多空趋势: IFELSE(CLOSE>HS300_EMA, 1, -1),LINETHICK0;

//大盘信号: IFELSE(HS300_CLOSE>HS300_EMA, 1, -1),LINETHICK0;
//HS300_MA: STKINDI(
 OpenRefOpen:= HS300_OPEN > REF(HS300_OPEN,1);

 CloseRefOpen_Second:= HS300_CLOSE_SECOND > REF(HS300_OPEN_SECOND, 6);
 
 BeforBarIsDown:= REF(HS300_CLOSE,1)< REF(HS300_OPEN,1);
 
 BeforBarIsUp:= REF(HS300_CLOSE,1)> REF(HS300_OPEN,1);
 
 
 //用于顺势(和均线方向相反的情况)交易信号的发出 的量化数据 start
 IsDownContiTwo := REF(ISDOWN(),1) and  REF(ISDOWN(),2);
 IsUpContinTwo:= REF(ISUP(),1) and  REF(ISUP(),2) ;
 //用于顺势(和均线方向相反的情况)交易信号的发出 的量化数据 end
 
 
 //用于逆势(和均线方向相反的情况)交易信号的发出 的量化数据 start
 //本K前面的K线是否连续收阴
 IsDownContinThree:= REF(ISDOWN(),1) and  REF(ISDOWN(),2) and REF(ISDOWN(),3);
 //阳线上穿前阴K 50%
 UPOverP50:= HS300_CLOSE>(REF(HS300_CLOSE,1)+ABS(REF(HS300_OPEN,1)-REF(HS300_CLOSE,1))/2);
 
  //本K前面的K线是否连续收阳
 IsUpContinThree:= REF(ISUP(),1) and  REF(ISUP(),2) and REF(ISUP(),3);
  //阴线下穿前阳K 50%
 DownOverP50:= HS300_CLOSE<(REF(HS300_CLOSE,1)-ABS(REF(HS300_OPEN,1)-REF(HS300_CLOSE,1))/2);
 
 //用于逆势(和均线方向相反的情况)交易信号的发出 的量化数据 end
 
 
 //平仓信号
 //如果前K是阴线则本K为阳线的时候发出平空信号
if BeforBarIsDown and ISUP() then 
begin
    大盘平仓信号:= 1;
end 

 //如果前K是阳线则本K为阴线的时候发出平多信号
if BeforBarIsUp and ISDOWN() then 
begin
    大盘平仓信号:= -1;
end 

 
 //K线在指定均线之上
 if HS300_CLOSE > HS300_EMA then 
 begin
      //由阴转阳
     if  BeforBarIsDown and  HS300_CLOSE > HS300_OPEN and IsDownContiTwo then 
     begin
    大盘信号 := 1;
    DRAWICON(TRUE,LOW-2,1);       
     end 
     else if IsUpContinThree and DownOverP50 then 
     begin 
    大盘信号 := -1;
    DRAWICON(TRUE,HIGH+2,2);        
     end 
 end 
 
 else
 //K线在指定均线之下
  if HS300_CLOSE < HS300_EMA then
  begin 
    //由阳转阴线
    if BeforBarIsUp and HS300_CLOSE < HS300_OPEN and IsUpContinTwo then 
    begin 
    大盘信号 := -1;
    DRAWICON(TRUE,HIGH+2,2);       
    end 
    else if IsDownContinThree and UPOverP50 then
    begin
    大盘信号 := 1;
    DRAWICON(TRUE,LOW-2,1);  
    end
    
  end 
  
  
  
 //大盘数据信号分析处理 end



//中间变量


个股方向:IFELSE(Close> EMA3, 1,-1),LINETHICK0; //1:多头,-1:空头

//如果大盘出现空头信号


//TIMESHOW:TIME,LINETHICK0;
//CURRENTTIMESHOW:CURRENTTIME,LINETHICK0;



//本K开盘价大于于前K开盘价:= HS300_OPEN > REF(HS300_OPEN,1); 

//大盘多空趋势: IFELSE(CLOSE>HS300_EMA, 1, -1),LINETHICK0;



//交易条件 
//开多条件:= 个股方向 = 1 AND 大盘信号 = 1 AND  TIME>094000 AND  TIME<145000;
//平多条件:= 大盘平仓信号 = -1 OR CROSS(EMA3,CLOSE) OR TIME>=145000;
开多条件:=  大盘信号 = 1 AND  TIME>094000 AND  TIME<145000;
平多条件:= 大盘平仓信号 = -1  OR TIME>=145000;

//开空条件:= 个股方向 = -1 AND 大盘信号 = -1  AND  TIME>094000 AND TIME<145000;
//平空条件:=  大盘平仓信号 = 1 OR CROSS(CLOSE, EMA3)OR TIME>=145000;
开空条件:=  大盘信号 = -1  AND  TIME>094000 AND TIME<145000;
平空条件:=  大盘平仓信号 = 1 OR TIME>=145000;



//交易系统
if   flag = 0 and 开多条件  then
BEGIN
BUY(开多条件 ,1000,marketR);//交易系统之开多操作
flag := 1;
end

if flag =1 and 平多条件  THEN
BEGIN
SELL(平多条件 ,1000,marketR); //交易系统之平多操作
flag := 0;
End


if flag =0 and 开空条件   THEN
BEGIN
BUYSHORT(开空条件 ,1000,marketR); //交易系统之开空操作
flag := -1;
End

if flag = -1 and 平空条件   THEN
BEGIN
SELLSHORT(平空条件 ,1000,marketR); //交易系统之平空操作
flag := 0;
End




 回到顶部
总数 17 1 2 下一页