Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共4 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[原创]轮询交易,信号反复,导致多次开平。我参考了个程序,看看能否行?

1楼
wang550099 发表于:2014/1/4 20:45:46

WARNING_DISABLE:4;
ss:=1; //手数
extgbdataset('t1_position',0);
//0表示没有仓位,1表示持有多头, -1表示持有空头
extgbdataset('t1_holding',0);
//0表示没有仓位,>0表示持有多头, <0表示持有空头
extgbdataset('t1_enterbarpos',0);//记录其开仓的K线

maa:ema(c,10);
bpk:=cross(c,maa);
spk:=cross(maa ,c);
//非最后一根K线退出
if not(islastbar) or workmode<>1 then exit;

//如果当是最后一根k线,执行
IF islastbar and  time<151000 then begin

 // 如果最后一根k线发生过开仓信号,则那一根k线不再交易
 if extgbdata('t1_enterbarpos') = barpos then begin
  goto continueline ;
 end
 
//没有持仓状态
if extgbdata('t1_position')=0  and extgbdata('t1_holding')=0 then begin
     if  bpk then begin
      
        buy(1,ss,c);
        extgbdataset('t1_position',1);
        extgbdataset('t1_holding',ss);
        extgbdataset('t1_enterbarpos',barpos);
        goto continueline ;
      
      end

      if spk then begin
     
         buyshort(1,ss,c);
         extgbdataset('t1_position',-1);//程序化交易 www.cxh99.com
         extgbdataset('t1_holding',-ss);
         extgbdataset('t1_enterbarpos',barpos);
         goto continueline ;
       
      end
end//没有持仓状态
   
//持有仓位状态
   //持有空头
if bpk and extgbdata('t1_position')=-1   and  extgbdata('t1_holding')<0 then begin

       sellshort(1,ss,c);
       buy(1,ss,c);
       extgbdataset('t1_position',1);
       extgbdataset('t1_holding',ss);
       extgbdataset('t1_enterbarpos',barpos);
       goto continueline ;
     
end
    //持有多头
if spk and extgbdata('t1_position')=1    and  extgbdata('t1_holding')>0  then begin

        sell(1,ss,c);
        buyshort(1,ss,c);
        extgbdataset('t1_position',-1);
        extgbdataset('t1_holding',-ss);
        extgbdataset('t1_enterbarpos',barpos);
        goto continueline ;
      
end
END//if  ISLASTBAR

if  time>=151300 then begin

             sell(extgbdata('t1_holding')>0,ss,c);
             sellshort(extgbdata('t1_holding')<0,ss,c);
             extgbdataset('t1_position',0);
             extgbdataset('t1_holding',0);
                    
end

continueline@ 资产:tasset,linethick0;
position:=extgbdata('t1_position');
t1holding:=extgbdata('t1_holding');
debugfile('d:\debug\803555.txt','position=%.0f' ,position) ;
debugfile('d:\debug\803555.txt','t1holding=%.0f' ,t1holding) ;

 

 

以上代码能在金子塔里测试吗?我用了,不能出信号。

2楼
王锋 发表于:2014/1/4 22:14:59
要学会自己测试+调试
3楼
wang550099 发表于:2014/1/6 8:14:58

这也算是回答吗?

4楼
RogarZ 发表于:2014/1/6 8:48:06

extgbdataset 函数永远只有1个值  一般用于后台,不能进行测试。

从你的注册时间来看,您可能并没有完整的学习过金字塔的程序。

 

随便拿一套别人的东西过来硬套是不行的。

共4 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.00000 s, 2 queries.