Rss & SiteMap

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

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

标题:后台预警公示

1楼
wzsunshao 发表于:2015/9/11 14:59:53
老师们,今天试着把一图表交易公式修改为后台交易公示,在进行预警模式测试时发现没有预警信号,图标是有信号,进出仓条件没有修改,看看问题在哪里?

////////

ZH1:'600802';

PZ1:'IF09';

input:ss(1,1,100,1);

开多平空条件:=cross(aa,bb);

开空平多条件:=cross(bb,aa);

//交易系统

if开多平空条件THEN BEGIN

tsellshort(TSELLHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1);//平空

tbuy(TBUYHOLDINGEX(ZH1,PZ1,0)=0,ss,MKT,0,ZH1,PZ1);//开多

end

if开空平多条件THEN BEGIN

tsell(TBUYHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1);//平多

tbuyshort(TSELLHOLDINGEX(ZH1,PZ1,0)=0,ss,MKT,0,ZH1,PZ1);//开空

end

//止盈系统

INPUT:B1(45,30,100,5),B2(2,1,5,1);

variable:maxprofit=0;//有仓位时最大获利幅度

variable:win=0;//当前持仓状态下的最大盈利

variable:win2=0;//最大盈利后的回调幅度

if TBUYHOLDINGEX(ZH1,PZ1,0)>0 and enterbars>0 then begin

 win:=(c-enterprice)/enterprice*100; //记录最大盈利,开仓以来最高价(hhv(h,enterbars+1));

 if win>maxprofit then maxprofit:=win;

 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度

end

if TSELLHOLDINGEX(ZH1,PZ1,0)>0 and enterbars>0 then begin

 win:=(enterprice-c)/enterprice*100; //记录最大盈利,开仓以来最低价(llv(l,enterbars+1));

 if win>maxprofit then maxprofit:=win;

 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度

end

 

多仓盈利空间:=(hhv(h,enterbars+1)-enterprice)/enterprice*100

空仓盈利空间:=(enterprice-llv(h,enterbars+1)/enterprice*100

//出现最高盈利后,回落到盈利的60%平仓出场//

if win2 >=B1 then begin

止多赢:TSELL(多仓盈利空间>B2 AND TBUYHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1),COLORYELLOW;

止空赢:TSELLSHORT(空仓盈利空间>B2 AND TSELLHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1),COLORYELLOW;

maxprofit:=0;

win:=0;

win2:=0;

end

 

//止损系统

INPUT:k1(0.7,0.3,3,0.1);

IF TBUYHOLDINGEX(ZH1,PZ1,0)>0 AND (enterprice-c)/enterprice*100>k1 THEN  BEGIN

止多损:TSELL(TBUYHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1),COLORRED;

END

IF  TSELLHOLDINGEX(ZH1,PZ1,0)>0 AND (c-enterprice)/enterprice*100>K1 THEN BEGIN

止空损:TSELLSHORT(TSELLHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1),COLORGREEN;

END

 

//监控未成交单

WCJ:=TREMAINQTY(0,ZH1,PZ1);

IF WCJ<>0 THEN BEGIN

A:=WCJ;

END

 

//对未成交单撤单

IF WCJ>0 THEN BEGIN

TCANCELEX(1,0,ZH1,PZ1 );

DRAWTEXTEX(1 ,0 ,0 ,0 ,'提示:有未成交单撤单!'  ),COLORYELLOW ;

END

 

//监控持仓和资金状况

当前持仓量:=THOLDING;

当前可用资金:=TACCOUNT(19);

DEBUGOUT('当前持仓量%.2f',当前持仓量 );

DEBUGOUT('当前可用资金%.2f',当前可用资金 );

2楼
jinzhe 发表于:2015/9/11 15:08:44
像enterbars和enterprice你都要改成后台的tenterbars和tenterprice
3楼
wzsunshao 发表于:2015/9/11 15:15:39
这个错误仅存在止盈和止损模块中,去除这两个模块后,公式是否正确

////////

ZH1:'600802';

PZ1:'IF09';

input:ss(1,1,100,1);

开多平空条件:=cross(aa,bb);

开空平多条件:=cross(bb,aa);

//交易系统

if 开多平空条件 THEN BEGIN

tsellshort(TSELLHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1);//平空

tbuy(TBUYHOLDINGEX(ZH1,PZ1,0)=0,ss,MKT,0,ZH1,PZ1);//开多

end

if  开空平多条件 THEN BEGIN

tsell(TBUYHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,ZH1,PZ1);//平多

tbuyshort(TSELLHOLDINGEX(ZH1,PZ1,0)=0,ss,MKT,0,ZH1,PZ1);//开空

end


//监控未成交单

WCJ:=TREMAINQTY(0,ZH1,PZ1);

IF WCJ<>0 THEN BEGIN

A:=WCJ;

END

 

//对未成交单撤单

IF WCJ>0 THEN BEGIN

TCANCELEX(1,0,ZH1,PZ1 );

DRAWTEXTEX(1 ,0 ,0 ,0 ,'提示:有未成交单撤单!'  ),COLORYELLOW ;

END

 

//监控持仓和资金状况

当前持仓量:=THOLDING;

当前可用资金:=TACCOUNT(19);

DEBUGOUT('当前持仓量%.2f',当前持仓量 );

DEBUGOUT('当前可用资金%.2f',当前可用资金 );

4楼
jinzhe 发表于:2015/9/11 15:18:07

tsellshort(TSELLHOLDINGEX(ZH1,PZ1,0)>0,ss,MKT,0,0,ZH1,PZ1);//平空

并不只有平空,你所有的下单语句里面,都少了一个0

5楼
wzsunshao 发表于:2015/9/14 17:08:47
请问,后台程序化交易有自动持仓矫正功能吗,我在后台模拟交易中发现,手动平仓账户持仓后,后台程序会自动校正部分持仓,但是有些又不能矫正,这是什么原因造成的?
6楼
wzsunshao 发表于:2015/9/14 17:09:54
是不是预警信号栏里留存有预警信息的,会自动校正?
7楼
jinzhe 发表于:2015/9/14 17:19:09

具体什么情况,你需要调试一下才能知道,把所有的下单条件调试出来,都满足说明系统没错,

系统不会什么“矫正”,开仓下单,就是表示开仓条件满足

8楼
wzsunshao 发表于:2015/9/15 14:01:58
后台如果下单没能成交,后续的撤单和追单代码如何编写呢
9楼
jinzhe 发表于:2015/9/15 14:06:26
系统自带的功能就有
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
10楼
jinzhe 发表于:2015/9/17 9:43:23

后台代码里面这样写?

后台语句运行时又不会显示图表的信息,这样的代码要放在图表上才会有文字显示

[此贴子已经被作者于2015/9/17 9:43:35编辑过]
共11 条记录, 每页显示 10 条, 页签: [1] [2]


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