以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于仓位管理  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=10414)

--  作者:zhujun182
--  发布时间:2012/3/5 13:30:59
--  关于仓位管理

比如开仓了10手,赚了5%后减仓5手,剩下5手如果行情下跌开仓位平,行情上涨打算赚了10%走。

如何写成语言


--  作者:董小球
--  发布时间:2012/3/5 13:40:33
--  
稍后我们的员工为您回复!

--  作者:just
--  发布时间:2012/3/5 14:15:57
--  

cond:=cross(ma(c,5),ma(c,10));
if cond and holding=0 then buy(1,10,market);
if c>=enterprice*(1+0.05) then sell(holding=10,5,market);
if (c>=enterprice*(1+0.1) or c=enterprice) then sell(holding=5,5,market);

--  作者:rushtaotao
--  发布时间:2012/3/5 14:18:07
--  

仅供参考

没有开多条件,开多条件需要自己添加

 

盈利:=(c-ENTERPRICE)/ENTERPRICE;//计算盈利

 

 

//赚了5%后减仓5手
if 盈利>0.05 then  begin
     sell(holding>0,5,market);
     if c<ref(c,1) then sell(holding>0,0,limit,ENTERPRICE);//剩下5手如果行情下跌开仓位平
     if c>ref(c,1) and 盈利=0.1 then sell(holding>0,0,limit,ENTERPRICE);//行情上涨打算赚了10%走
end

[此贴子已经被作者于2012-3-5 14:36:17编辑过]

--  作者:zhujun182
--  发布时间:2012/3/6 11:42:44
--  

谢谢提供

这公式能否改进下

盈利平仓点不一定是收盘价,只要账户中到过要求了就发出指令,


--  作者:zhujun182
--  发布时间:2012/3/6 11:43:20
--  
以下是引用rushtaotao在2012-3-5 14:18:07的发言:

仅供参考

没有开多条件,开多条件需要自己添加

 

盈利:=(c-ENTERPRICE)/ENTERPRICE;//计算盈利

 

 

//赚了5%后减仓5手
if 盈利>0.05 then  begin
     sell(holding>0,5,market);
     if c<ref(c,1) then sell(holding>0,0,limit,ENTERPRICE);//剩下5手如果行情下跌开仓位平
     if c>ref(c,1) and 盈利=0.1 then sell(holding>0,0,limit,ENTERPRICE);//行情上涨打算赚了10%走
end

[此贴子已经被作者于2012-3-5 14:36:17编辑过]

谢谢提供

这公式能否改进下

盈利平仓点不一定是收盘价,只要账户中到过要求了就发出指令,

[此贴子已经被作者于2012-3-6 11:43:48编辑过]

--  作者:zhujun182
--  发布时间:2012/3/6 11:47:58
--  

有开仓信号,开仓10手,同时固定止损8个点(40元一手),如股价安开仓方向10个点(50元一手)走,先固定止盈4手,同时6手以开仓价加3个点保本止盈(设条件单),(6手继续安开仓方向走)用软件内设的要求平仓
测试的话品种用橡胶1205

 

ma5:ma(c,5);
ma10:ma(c,10);//这里开仓条件是5日均线金叉10日均线开多,反之开空

long:=cross(ma5,ma10) and time<145700;//开仓条件:金叉,14点57前开仓
if long then begin
sellshort(holding=-6,holding,thisclose);//满足条件后先平所有空单
buy(holding=0,10,thisclose);//然后开10手多单
end
longx:=c<enterprice-40 and holding>0;//止损条件8个点全平
if longx then begin
sell(1,0,market);
end
longx2:=c=enterprice+50;//盈利了10点平4手
if longx2 then begin
sell(holding=10,4,market);
end
longx3:=c=enterprice+15 and holding=6;//保本
if longx3 then begin
sell(1,6,market);
end
//下面是做空
short:=cross(ma10,ma5) and time<145700;
if short then begin
sell(holding=6,holding,thisclose);
buyshort(holding=0,10,thisclose);
end
shortx:=c>enterprice+40 and holding<0;
if shortx then begin
sellshort(1,0,market);
end
shortx2:=c=enterprice-50;//盈利了10点平4手
if shortx2 then begin
sellshort(holding=-10,4,market);
end
shortx3:=c=enterprice-15 and holding=6;//保本
if shortx3 then begin
sellshort(1,6,market);
end

 

 

这个公式好像有点问题,高手帮忙改进下  止损止盈只要账户到过就平,最好引用账户数据,不要用close

[此贴子已经被作者于2012-3-6 11:50:31编辑过]

--  作者:zhujun182
--  发布时间:2012/3/6 12:11:40
--  
前面试过了,用于分笔图正常。也就是说只能用于每个周期的数据点是固定的才能这么写,现在问题要用于5分钟线的话这样写就有问题
[此贴子已经被作者于2012-3-6 12:12:45编辑过]

--  作者:just
--  发布时间:2012/3/6 13:39:51
--  

楼主的意思应该是止损止盈一单触发就进行操作。因此你用走完K线模式是无法达到你所要的效果的,用分笔当然就可以。你可以参考http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=9439

里面的走完K线与盘中模式并存的写法试试。