以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]请教版主一个加仓问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=61148)

--  作者:imbaroe
--  发布时间:2014/1/21 9:44:09
--  [求助]请教版主一个加仓问题
感谢版主关注, 首先这是我的交易模块:

//无仓位开仓
IF (HOLDING=0) THEN BEGIN
    IF (HIGH>=今日买点) THEN
        BUY(HOLDING=0,1,LIMITR,MAX(OPEN,今日买点)); 
    IF (LOW<=今日卖点) THEN
        BUYSHORT(HOLDING=0,1,LIMITR,MIN(OPEN,今日卖点));
END

//多单反手开空
IF (HOLDING>0) AND (LOW<=今日卖点) THEN BEGIN
SELL(HOLDING>0,HOLDING,LIMITR,MIN(OPEN,今日卖点));
BUYSHORT(HOLDING=0,1,LIMITR,MIN(OPEN,今日卖点));
END

//空单反手开多
IF (HOLDING<0) AND (HIGH>=今日买点)  THEN BEGIN
SELLSHORT(HOLDING<0,HOLDING,LIMITR,MAX(OPEN,今日买点));
BUY(HOLDING=0,1,LIMITR,MAX(OPEN,今日买点));
END




请教版主如何在这个交易模块增加一个加仓功能,以持有多单为例,如:
1,首次满足开多的条件(也就是 HIGH>=今日买点 )后开仓持有多单1手,这个已有;
2,在下一个交易日再次满足开多的条件(此交易日的今日买点已与昨日不同,每天都有一个不同的买点)后加仓一手;
3,以此类推,直至//多单反手开空 后开空仓,进入同样的循环.

其实自己也研究了很久,写出来的都是在同一交易日再次穿越买点时就加仓了,这样在买点附近不断震荡穿越就会不断加仓,想得到的是下一交易日再次向上穿越才加,
谢谢版主,为你们的工作表示感谢!

--  作者:jinzhe
--  发布时间:2014/1/21 9:59:56
--  
加仓?不管当前持仓是什么样的只要满足条件就加仓?
如果当前是有空头,满足多头就要开多头?
 

--  作者:imbaroe
--  发布时间:2014/1/21 10:20:48
--  
版主的问题很到位,这些我都是没考虑到的,我的思路是出现反向信号,无论目前是持有几手,都是要反手的,反手后进入一手的仓位,然后再次进入循环

还是以多单为例:

1, 首日       最高价上穿了"今日买点",开了一手,如果今天再次上穿并不加仓,(但是如果下穿了今日卖点,要反手开空的,如果出现这种情况,下边的以空单反向类推);
2, 次日       最高价上穿了当天的"今日买点(已与昨日不同,是重新计算过的买点),加仓一手,今天再次上穿并不加仓了;
3, 次次日    最高价上穿了当天的"今日买点(已与昨日不同,是重新计算过的买点),加仓一手,今天再次上穿并不加仓了;
......(如果趋势完好(就是2跟3的情况),一直加仓)
4, 次次次日 最低价下穿了当天的"今日卖点",则平掉全部的多单(此例是3手),反手开空一手,再次进入1234这样的循环.


感谢版主的回复,谢谢!

--  作者:imbaroe
--  发布时间:2014/1/21 10:30:45
--  
好像版主2楼说的就是我3楼说的........图片点击可在新窗口打开查看
--  作者:imbaroe
--  发布时间:2014/1/21 13:34:57
--  
图片点击可在新窗口打开查看等待版主回复
--  作者:jinzhe
--  发布时间:2014/1/21 13:39:13
--  
稍等
--  作者:fly
--  发布时间:2014/1/21 14:19:56
--  
以下以多头加仓为例,空头加仓类似,请理解透彻后, 尝试编写 

 

variable:flag=0;// 全局变量,买开仓时赋值为1


if cond1 and holding=0 then//第一次开仓时,直接赋值为1,这个条件往你的条件里套,如果你是平仓反手的,就加到反手开仓里

   begin

   buy(1,1,market);

   flag:=1;

   end


if cond2 and holding>0 and flag=0 then 

   begin

   buy(1,1,market);//第2天满足条件,则加仓

   flag:=1;

   end

 

if  time=CLOSETIME(0)  then flag:=0;//收盘的同时,flag赋值为0