Rss & SiteMap

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

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

标题:后台程序化移动止损的问题

1楼
chyhao 发表于:2017/5/17 14:03:55
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//该模型运行于后台程序化模式

ZH1:'1000';
PZ1:'IF00';
VARIABLE:A=0;

//条件判断
MA5:MA(CLOSE,5);
MA10:MA(CLOSE,10);
CONDBUY:=CROSS(MA5,MA10);
CONDSELL:=CROSS(MA10,MA5);

//开仓和平仓
TBUY(CONDBUY AND TBUYHOLDINGEX( ZH1,PZ1 ,0 )<10,1,LMT,CLOSE,0,ZH1,PZ1 );
TSELL(CONDSELL,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1);



//移动止损模块部分*******************************
//A有三种数值状态:1,0,最新价;
//当A=1时表示当前有持仓,A=0时表示移动止损执行完毕,A=最新价时用于比较价格是否回落

//将A赋值为1,表示当前有持仓
IF TBUYHOLDINGEX( '','' ,0 )>0 AND EXTGBDATA('a' )=0 THEN BEGIN
EXTGBDATASET( 'a',1 );
END

//使A始终表示监控开始后的最高价
IF DYNAINFO(  7)>EXTGBDATA('a' ) and EXTGBDATA('a' )>0 THEN BEGIN
EXTGBDATASET( 'a',DYNAINFO(  7));
END

//发现价格回落止损,并将A赋值为0表示移动止损动作完成
IF EXTGBDATA('a' )-DYNAINFO(  7)>5*MINDIFF and EXTGBDATA('a' )>0 THEN BEGIN
TSELL(1,1,MKT );
EXTGBDATASET( 'a',0);
END
//*******************************


我用系统自带的后台移动止损进行测试,测试IF00,1分钟周期,2017年1月1日到2017年5月15日,测试结果显示有交易,但是我把
TSELL(CONDSELL,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1);这个语句删除之后,只想用移动止损平仓,发现居然没有交易信号,请问是什么问题呢?
2楼
FexTel 发表于:2017/5/18 8:59:05
TBUY(CONDBUY AND TBUYHOLDINGEX( ZH1,PZ1 ,0 )<10  //开仓里面有个条件,是仓位小于10.你看下你账户栏对应品种的仓位是不是大于10手哦
3楼
chyhao 发表于:2017/5/18 16:20:29
TBUY(CONDBUY AND TBUYHOLDINGEX( ZH1,PZ1 ,0 )=0,1,LMT,CLOSE,0,ZH1,PZ1 );

我把改成TBUYHOLDINGEX( ZH1,PZ1 ,0 )=0,发现连续几次开多,没有平仓出现,貌似就是止损不发生作用,是什么问题呢?
4楼
wenarm 发表于:2017/5/18 16:30:22
你可以使用debugfile 将有疑问的地方的条件输出看下,它是不是满足当时的触发条件。
5楼
chyhao 发表于:2017/5/18 16:35:28
后台精细化回测的哦
6楼
wenarm 发表于:2017/5/18 17:21:47
那你用debugfile2,应该是可以输出历史的条件值的
7楼
chyhao 发表于:2017/5/19 9:59:22
debugfile2('D:\TEST.TXT','开仓条件%.2f',CONDBUY,1);
我尝试了,不能输出历史值

8楼
wenarm 发表于:2017/5/19 13:32:12

你把全局变量中保留的历史值清空以后在执行测试看下

工具--数据管理器--全局变量中

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


Powered By Dvbbs Version 8.3.0
Processed in 0.07813 s, 3 queries.