Rss & SiteMap

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

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

标题:[求助] 关于止盈止损的编写

1楼
庄村 发表于:2012/2/23 9:14:16

各位版主,早上好!

 

        以下是我自己编写的一段代码,由于是新手,有好多地方不是很懂,还烦请多多指教:

        目前遇到的主要问题是:我在公式测评中发现,开多和平多可以正常运行,

        但是每次开空后,没有按照我设计的平空条件和止盈止损条件运行,

        而是直接以开空的价格,马上在本周期就平掉,

        我自己的想法是,可能是我设置的买入均价AVGENTERPRICE,只对开多和开空有效,

        所以才产生错误,但又不知道怎么去修改.......... 

 

        以下是我的代码:

       

INPUT:N1(10,1,100),N2(200,20,200);

 

MA10:=MA(C,N1);
MA200:=MA(C,N2);

 

IF CROSS(MA10,MA200) then
begin
BUY(holding=0,3,thisclose);            //开多
SELLSHORT(holding<0,3,thisclose);      //平空
end

 

IF CROSS(MA200,MA10) then
begin
SELL(holding>0,3,thisclose);            //平多
BUYSHORT(holding=0,3,thisclose);        //开空
end

 

IF (CLOSE-AVGENTERPRICE)>=70 THEN       //止盈
BEGIN
SELL(HOLDING>0,3,MARKET);             
end

 

IF (CLOSE-AVGENTERPRICE)<=70 THEN
BEGIN
SELLSHORT(HOLDING<0,3,MARKET);               
end  

 

IF (AVGENTERPRICE-CLOSE)>=20 THEN         //止损
BEGIN

SELL(HOLDING>0,3,MARKET);              
end  

 

IF (AVGENTERPRICE-CLOSE)<=20 THEN
BEGIN
SELLSHORT(HOLDING<0,3,MARKET);              
end  

2楼
fly 发表于:2012/2/23 9:21:11
不想在开仓那根K线平仓,加入以下条件:enterbars>1
3楼
庄村 发表于:2012/2/23 11:39:32

FLY版主,您好,多谢您的指导!

我按照您的指导,把enterbars>1,加进去了,

我的设计时在5分钟均线下运行,但是结果是,10分钟后,

不管什么任何情况,都会自动平仓,还请指教!

 

INPUT:N1(10,1,100),N2(200,20,200);

MA10:=MA(C,N1);
MA200:=MA(C,N2);

 

IF CROSS(MA10,MA200) then
begin
BUY(holding=0,3,thisclose);            //开多
 IF enterbars>1 then
 SELLSHORT(holding<0,3,thisclose);      //平空
end

 

IF CROSS(MA200,MA10) then
begin
SELL(holding>0,3,thisclose);            //平多
BUYSHORT(holding=0,3,thisclose);        //开空
end

 

IF (CLOSE-AVGENTERPRICE)>=70 THEN       //止盈
BEGIN
SELL(HOLDING>0,3,MARKET);             
end

 

IF (CLOSE-AVGENTERPRICE)<=70 THEN
BEGIN
 IF enterbars>1 then
 SELLSHORT(HOLDING<0,3,MARKET);               
end  

 

IF (AVGENTERPRICE-CLOSE)>=20 THEN         //止损
BEGIN
SELL(HOLDING>0,3,MARKET);              
end  

 

IF (AVGENTERPRICE-CLOSE)<=20 THEN
BEGIN
 IF enterbars>1 then
 SELLSHORT(HOLDING<0,3,MARKET);              
end  

4楼
fly 发表于:2012/2/23 14:33:55

如果弄不清那么多关系,就写的规整和简单点

 

INPUT:N1(10,1,100),N2(200,20,200);

MA10:MA(C,N1);
MA200:MA(C,N2);

 

IF CROSS(MA10,MA200) then
begin
SELLSHORT(holding<0,3,thisclose); //平空
BUY(holding=0,3,thisclose);            //开多   
end

 

IF CROSS(MA200,MA10) then
begin
SELL(holding>0,3,thisclose);            //平多
BUYSHORT(holding=0,3,thisclose);        //开空
end

 

IF CLOSE>=ENTERPRICE+70 AND ENTERBARS>1 AND HOLDING>0 THEN       //多盈
多盈:SELL(1,3,MARKET);         

    

IF CLOSE<=ENTERPRICE-70 AND ENTERBARS>1 AND HOLDING<0 THEN
空盈:SELLSHORT(1,3,MARKET);  

             

IF CLOSE<=ENTERPRICE-20 AND ENTERBARS>1 AND HOLDING>0 THEN         //多损
多损:SELL(HOLDING>0,3,MARKET);   

             

IF CLOSE>=ENTERPRICE+20 AND ENTERBARS>1 AND HOLDING<0  THEN
空损:SELLSHORT(1,3,MARKET);

5楼
庄村 发表于:2012/2/23 14:54:23
多谢!这次正确了!难道还和格式有关么!我去琢磨琢磨!
共5 条记录, 每页显示 10 条, 页签: [1]


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