以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  A框架放此平空止赢系绕(只能K线模式下运行) B框架放开空单系统(只能序列模式下运行)所从这两个系统不能写在一起-------请高手实现序列模式下运行的当浮动盈亏大于500元时且出现最高盈利后,回落到盈利的50%平仓出场  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=9778)

--  作者:lyt369
--  发布时间:2012/1/31 12:22:58
--  A框架放此平空止赢系绕(只能K线模式下运行) B框架放开空单系统(只能序列模式下运行)所从这两个系统不能写在一起-------请高手实现序列模式下运行的当浮动盈亏大于500元时且出现最高盈利后,回落到盈利的50%平仓出场


MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);

 

 

PK开空:=CROSS(MA2,MA1);

 

 

//当浮动盈亏大于500元时且出现最高盈利后,回落到盈利的50%平仓出场

{

代码工作在图表自动交易模式下

当出现开仓后,开仓价格相比,最大损失超过2%止损

当出现盈利后,与最大盈利价格相比,回落到50%幅度后止赢离场

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

//开空
IF PK开空 THEN
BEGIN
 BUYSHORT(1,1,thisclose);
 maxprofit:=0;
END

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

if holding < 0 and enterbars > 0 then
begin
 win:=(enterprice-c)/enterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
 
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

 
平空止赢:SELLSHORT(openprofit>=浮动盈亏大于几元 and win2>=回落幅度百分比,0,market);
//当浮动盈亏大于500元时且出现最高盈利后,回落到盈利的50%平仓出场
 


--  作者:fly
--  发布时间:2012/1/31 13:16:10
--  

序列模式下运行的公式,当然也可以逐K线下运行.

 

variable定义的全局变量,必须逐K线下运行.


--  作者:lyt369
--  发布时间:2012/1/31 15:03:00
--  

 
XDE:=CONST(LLV(L,90));//CONST---只能在序列计算--而新交易系统有市价但只能在逐K线计算
XJI:=CONST(HHV(H,90))-XDE;
XDE_K:=XDE+XJI/3*2;
XJI_K:=XJI/2;
XRSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
XDE_A:=CONST(LLV(XRSV,90));
XDD_A:=CONST(HHV(XRSV,90))-XDE_A;
XR:=(XRSV-XDE_A)/XDD_A;
XRSV1:=XR*XJI_K+XDE_K;
XK:=SMA(XRSV1,3,1);
XD:=SMA(XK,3,1);

XJ100:=3T100*XK-2*XD;

XJ80:=3T80*XK-2*XD;

XL_80:=XJI_K*4/5+XDE_K;
XL_100:=XJI_K+XDE_K;


XPKL_100线:=CROSS(XL_100,XJ100);// XJ100 向下穿越 XL_100 之时---开仓卖出

XPKL_80线:=CROSS(XL_80,XJ80);// XJ80 向下穿越XL_80 之时---开仓卖出

 

PK开空:=XPKL_100线 OR XPKL_80线;

 

 

//当浮动盈亏大于500元时且出现最高盈利后,回落到盈利的50%平仓出场

{

代码工作在图表自动交易模式下

当出现开仓后,开仓价格相比,最大损失超过2%止损

当出现盈利后,与最大盈利价格相比,回落到50%幅度后止赢离场

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

//开空
IF PK开空 THEN
BEGIN
 BUYSHORT(1,1,thisclose);
 maxprofit:=0;
END

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

if holding < 0 and enterbars > 0 then
begin
 win:=(enterprice-c)/enterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
 
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

 
平空止赢:SELLSHORT(openprofit>=500 and win2>=50,0,market);
//当浮动盈亏大于500元时且出现最高盈利后,回落到盈利的50%平仓出场----------------------------------过不了测试
 


--  作者:jinzhe
--  发布时间:2012/2/1 9:35:58
--  
公式里面的3T100和3T80是什么?
--  作者:jinzhe
--  发布时间:2012/2/1 9:45:54
--  

不管3T100的问题,如果要改的话,需要在逐k线模式下运行,就是不要用const这个函数了

XDE:=CONST(LLV(L,90));

XJI:=CONST(HHV(H,90))-XDE;

改成

XDE:=LLV(L,90);

XJI:HHV(H,90)-XDE;

 

 

XDE_A:=CONST(LLV(XRSV,90));
XDD_A:=CONST(HHV(XRSV,90))-XDE_A;

改成:

XDE_A:=LLV(XRSV,90);
XDD_A:=HHV(XRSV,90)-XDE_A;


--  作者:lyt369
--  发布时间:2012/2/1 10:26:32
--  
IF(A88<=CONST(A882),CLOSE,DRAWNULL)---怎样改

--  作者:jinzhe
--  发布时间:2012/2/1 10:30:24
--  
A882是什么?不考虑其他,最简单的改法是if (a88<=a882,close,drawnull);
--  作者:阿火
--  发布时间:2012/2/1 11:28:24
--  

2个系统为何不能写在一起?

你不会写而已

 

金字塔很强大的,大部分都可以写。


--  作者:lyt369
--  发布时间:2012/2/2 7:37:44
--  

请leevolvo哥帮忙写一下以下段------求求了

 

 

 

 

XDE:=CONST(LLV(L,90));//CONST---只能在序列计算--而新交易系统有市价但只能在逐K线计算
XJI:=CONST(HHV(H,90))-XDE;
XDE_K:=XDE+XJI/3*2;
XJI_K:=XJI/2;
XRSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
XDE_A:=CONST(LLV(XRSV,90));
XDD_A:=CONST(HHV(XRSV,90))-XDE_A;
XR:=(XRSV-XDE_A)/XDD_A;
XRSV1:=XR*XJI_K+XDE_K;
XK:=SMA(XRSV1,3,1);
XD:=SMA(XK,3,1);

XJ100:=3*XK-2*XD;

XJ80:=3*XK-2*XD;

XL_80:=XJI_K*4/5+XDE_K;
XL_100:=XJI_K+XDE_K;


XPKL_100线:=CROSS(XL_100,XJ100);// XJ100 向下穿越 XL_100 之时---开仓卖出

XPKL_80线:=CROSS(XL_80,XJ80);// XJ80 向下穿越XL_80 之时---开仓卖出

 

PK开空:=XPKL_100线 OR XPKL_80线;

 

 

//当浮动盈亏大于500元时且出现最高盈利后,回落到盈利的50%平仓出场

{

代码工作在图表自动交易模式下

当出现开仓后,开仓价格相比,最大损失超过2%止损

当出现盈利后,与最大盈利价格相比,回落到50%幅度后止赢离场

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

//开空
IF PK开空 THEN
BEGIN
 BUYSHORT(1,1,thisclose);
 maxprofit:=0;
END

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

if holding < 0 and enterbars > 0 then
begin
 win:=(enterprice-c)/enterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
 
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

 
平空止赢:SELLSHORT(openprofit>=500 and win2>=50,0,market);
//当浮动盈亏大于500元时且出现最高盈利后,回落到盈利的50%平仓出场