以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请高手帮忙编写止盈公式  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=5303)

--  作者:liboyi
--  发布时间:2011/2/26 13:09:22
--  请高手帮忙编写止盈公式

请高手帮忙编写止盈公式:

(注,这是用于图表交易的)

主要意思如下:

开多仓后,当最高价高于开仓价一定值后再回落一定值时平仓.

 

预先设定:

 高于开仓价 :=25;

 回落平仓价 :=15;

当开多仓条件合适后开多.

若运行到 最高价  -  开多仓价  > 高于开仓价 时出现条件一;

但这时最高价或许还没出现,还会不断向上,

 

之后若出现 最高价  - 最低价 > 回落平仓价 时出现条件二;

这时平仓.

 

最高价是开多仓价与平仓之间的最高价;

最低价为平仓这根K线的最低价.

 

不知我上面表达清楚了没?

在此先多谢了.

 

 

 

 

 


--  作者:liboyi
--  发布时间:2011/2/28 7:38:11
--  

请朋友们帮忙


--  作者:王锋
--  发布时间:2011/2/28 8:56:38
--  
该功能需要在逐K线模式下才能工作,逐K线模式只有标准版及其以上版本才支持,请回复告知是否正式用户,以节省工作人员的时间。
--  作者:阿火
--  发布时间:2011/2/28 8:57:09
--  

开多条件 buycond

开空条件 SELLcond

variable:maxh=0,kcj=0,zs=0,MINL=0;

IF L<ZS AND HOLDING>0 THEN BEGIN

   SELL(1,1,LIMITR,MIN(O,ZS));

   END

IF H>ZS AND HOLDING<0 THEN SELLSHORT(1,1,LIMITR,MAX(O,ZS)); 

 

IF BUYCOND AND HOLDING=0 THEN BEGIN

   BUY(1,1,LIMITR,BUYPRICE);

   MAXH:=BUYPRICE;

   ZS:=CHUSHIZHISUN ;//这里是初始止损,你没有说明初始止损

   END

 

IF SELLCOND AND HOLDING=0 THEN BEGIN

   BUYSHORT(1,1,LIMITR,SELLPRICE);

   MINL:=SELLPRICE;

   ZS:=CHUSHIZHISUN;

   END

 

IF H>=MAXH and holding>0 THEN BEGIN

    MAXH:=H;

    IF MAXH>KCJ+25 THEN ZS:=MAXH-15;

    END

 

IF L<=MINL and holding<0 THEN BEGIN

    MINL:=L;

    IF MINL<KCJ-25 THEN ZS:=MINL+15

    END

 

IF TIME=CLOSETIME(0) THEN BEGIN

   SELL(HOLDING>0,1,LIMITR,O);

   SELLSHORT(HOLDING<0,1,1LIMITR,O);

   END

 

[此贴子已经被作者于2011-2-28 9:08:46编辑过]

--  作者:liboyi
--  发布时间:2011/2/28 9:10:27
--  

我现在用的是2.34普通本的?

难道没有解决办法了吗?

 


--  作者:liboyi
--  发布时间:2011/2/28 9:13:26
--  

在试验中,现在还不想购买正式本.在序列模式没法解决么?


--  作者:admin
--  发布时间:2011/2/28 9:14:49
--  

序列模式无法执行。

请用户后面发帖求助时,告知是否正式用户,以节省我们工作人员的宝贵时间,谢谢合作


--  作者:liboyi
--  发布时间:2011/2/28 9:14:50
--  
以下是引用leevolvo在2011-2-28 8:57:09的发言:

开多条件 buycond

开空条件 SELLcond

variable:maxh=0,kcj=0,zs=0,MINL=0;

IF L<ZS AND HOLDING>0 THEN BEGIN

   SELL(1,1,LIMITR,MIN(O,ZS));

   END

IF H>ZS AND HOLDING<0 THEN SELLSHORT(1,1,LIMITR,MAX(O,ZS)); 

 

IF BUYCOND AND HOLDING=0 THEN BEGIN

   BUY(1,1,LIMITR,BUYPRICE);

   MAXH:=BUYPRICE;

   ZS:=CHUSHIZHISUN ;//这里是初始止损,你没有说明初始止损

   END

 

IF SELLCOND AND HOLDING=0 THEN BEGIN

   BUYSHORT(1,1,LIMITR,SELLPRICE);

   MINL:=SELLPRICE;

   ZS:=CHUSHIZHISUN;

   END

 

IF H>=MAXH THEN BEGIN

    MAXH:=H;

    IF MAXH>KCJ+25 THEN ZS:=MAXH-15;

    END

 

IF L<=MINL THEN BEGIN

    MINL:=L;

    IF MINL<KCJ-25 THEN ZS:=MINL+15

    END

 

IF TIME=CLOSETIME(0) THEN BEGIN

   SELL(HOLDING>0,1,LIMITR,O);

   SELLSHORT(HOLDING<0,1,1LIMITR,O);

   END

 

[此贴子已经被作者于2011-2-28 9:00:18编辑过]
在我不是正式本的,但还是要多谢你.


--  作者:阿火
--  发布时间:2011/2/28 9:16:11
--  

是的,序列模式无法做到,因为你的止损位是变动的。