欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 持仓盈亏

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有9001人关注过本帖树形打印复制链接

主题:持仓盈亏

帅哥哟,离线,有人找我吗?
c100010766
  61楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 老汉
等级:标准版用户 帖子:331 积分:0 威望:0 精华:0 注册:2016/2/26 10:19:03
  发帖心情 Post By:2016/7/18 11:20:27    Post IP:180.169.30.6[只看该作者]

好吧,,现在以螺纹1701为例,5分钟周期,,
价格2000时开多10手,
价格到2100,平5手,
价格到2050加仓10手,
然后持有到2200,全平
,,这个简单的例子里有,开仓,减仓,加仓,平仓,就按个死条件来求浮动盈亏吧,,,
 
当,持仓为0,,开现在开多,就是2000第一次开多10手时,,纪录下开仓量,和开仓价,
,,在2100平仓时,,纪录下,平仓量,和平仓价格,
,,在2050加仓时,,纪录下,加仓量,和加仓价格,
,,然后用最笨的方法,,加减浮动盈亏吧,,,,
 

还有一个方法,是求得所有平仓盈亏,然后用你们的函数OP,浮动盈亏来减,之前平仓盈亏,不知可行吗?              

这也是一个不错的方法,我也在考虑

,,这个方法我感觉很可行,,只是纪录下交易时,前一个K线的数据就行,,麻烦老师考虑一下,,

 回到顶部
帅哥哟,离线,有人找我吗?
fly
  62楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2016/7/18 11:48:56    Post IP:180.169.30.6[只看该作者]

现在以螺纹1701为例,5分钟周期,

请认真阅读我帖子中所说的并予以确认,这些跟策略实现都有直接关系。谢谢您的配合

//将会以简单均线开平仓(多头)为例来实现您说的情况

//我们本帖所说问题,都将在该示例下跟踪调试解决

 

ma5:ma(close,5);
ma15:ma(close,15);
ma20:ma(close,20);

 

num:=5;    //开仓数量
num1:=2;    //加仓数量
num2:=2;    //减仓数量


//5日均线 15日均线 20日均线多头排列,开多
buycon:=ma5>ma15 and ma15>ma20;
//5日均线 15日均线 20日均线空头排列,平多
sellcon:=ma5<ma15 and ma15<ma20;

//开多
if buycon and holding=0 then
begin
buy(1,num,market);
end

 

//加仓  在一次开仓后只要满足该条件,就加仓。如果连着几根K线同时都满足该条件,则每根K线都会加仓,加仓的数量不限制
//在加仓前要求到真实的持仓盈亏
if ma5>ma15 and ma5>ma20 and holding>0 then
begin
加:buy(1,num1,market);
end

 

//减仓  在一次开仓后只要满足该条件,就减仓。如果连着几根K线同时都满足该条件全部都会减仓,直到持仓为0
//在减仓前要求到真实持仓盈亏
if ma5<ma15 and ma5>ma20 and holding>0 then
begin
减:sell(1,num2,market);
end
 

//平多
if sellcon and holding>0 then
begin
sell(1,holding,market);
end

 

 此例在螺纹钢上的开平仓将如上所示,确实是您想要的吗?

不管是哪种计算方法,我要用全局变量来控制开平仓及记录开平仓时的价格,所以一定要在一个策略上确定大概的开平仓

你楼上所说的具体价格开平仓,适合用于确定如何计算,不通用,还是希望您回到通用的开平仓上来


此主题相关图片如下:qq图片20160718114422.jpg
按此在新窗口浏览图片


金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
c100010766
  63楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 老汉
等级:标准版用户 帖子:331 积分:0 威望:0 精华:0 注册:2016/2/26 10:19:03
  发帖心情 Post By:2016/7/18 14:01:50    Post IP:180.169.30.6[只看该作者]

好吧,,现在以螺纹1701为例,5分钟周期,,
价格2000时开多10手,
价格到2100,平5手,
价格到2050加仓10手,
然后持有到2200,全平
,,这个简单的例子里有,开仓,减仓,加仓,平仓,就按个死条件来求浮动盈亏吧,,,
 
当,持仓为0,,开现在开多,就是2000第一次开多10手时,,纪录下开仓量,和开仓价,
,,在2100平仓时,,纪录下,平仓量,和平仓价格,
,,在2050加仓时,,纪录下,加仓量,和加仓价格,
,,然后用最笨的方法,,加减浮动盈亏吧,,,,


这有什么不好理解的吗?,,条件A成立,,开多,,,条件B成立了减仓,,条件C成立加仓,,,,,就开一次,,减一次,,加一次,,可以吧,,,,怎么这么累呀,,,,

 

 

价格在2000时,开多10手,,定死了,,,好吧,,到2100平5手,,,然后持有5手,,一直等,,,到2050加10手,,,,,中间不变了,,,没有那么多事,,好吧,,,

 回到顶部
帅哥哟,离线,有人找我吗?
fly
  64楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2016/7/19 14:08:32    Post IP:180.173.43.114[只看该作者]

{以手工开仓为例,对持仓盈亏的计算,先从计算方法上达成共识

具体到期货中,在以IF为例子,不计算买卖的费用情况下,计算如下
多头:5手IF,开仓价为3200,如果不减仓,持仓盈亏:(市价-3200)*5*MULTIPLIER

 

(1)加仓2手,开仓价为3205,

       之前的5手多仓浮动盈利锁死,为:a=(3205-3200)*5*MULTIPLIER  // 这里的加仓时前一根K线收盘价,简化为加仓2手的开仓价

       之后 持仓盈亏:(市价-3205)*HOLDING*MULTIPLIER + a     //b=(市价-3205)*HOLDING*MULTIPLIER     其中HOLDING=7

(2)减仓1手,平仓价/成交价为3210,减仓后 持仓盈亏

        减仓1手所产生的平仓盈亏不计入浮动盈亏,舍弃不管

        之后 持仓盈亏:(市价-3205)*HOLDING*MULTIPLIER + a     //c=(市价-3205)*HOLDING*MULTIPLIER     其中HOLDING=6

}

 

//由于减仓的平仓盈亏不计入,减仓后的持仓盈亏只与持仓数有关

//图表程序化,走完一根K线

variable:o1=0,aprf=0,profit=0,hold=0;   //o1-开仓价,aprf锁定的加仓前的盈亏,profit持仓盈亏

 

ma5:ma(close,5);
ma15:ma(close,15);
ma20:ma(close,20);

 

num:=10;    //开仓数量
num1:=5;    //加仓数量
num2:=5;    //减仓数量

 

buycon:=cross(ma5,ma15); //开多
bcon2:=ma5>ma15 and ma15>ma20; //加仓--5日均线 15日均线 20日均线多头排列
bcon3:=not(ref(bcon2,1));


//平多
sellcon:=cross(ma15,ma5);

 

//开多条件
if buycon and holding=0 then
begin
buy(1,num,market);
o1:=open;   //开仓价
aprf:=0;    //初始化为0
hold:=0;    //初始化为0
end

 

profit:=(c-o1)*HOLDING*MULTIPLIER+aprf*hold*MULTIPLIER;//持仓盈亏

//加仓条件---5日均线 15日均线 20日均线多头排列
//在加仓前要求到真实的持仓盈亏
if bcon2 and bcon3 and holding>0 and enterbars>1 then
begin
hold:=holding;        //加仓前持仓
aprf:=open-o1;        //锁定的加仓前的盈亏,只加仓一次,直接用了本次加仓的开仓价-上次开仓价;若加仓多次,要重点修改
加:buy(1,num1,market);
o1:=open;             //加仓后的开仓价
end
 

//平多
if sellcon and holding>0 then
begin
sell(1,holding,market);
end



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
c100010766
  65楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 老汉
等级:标准版用户 帖子:331 积分:0 威望:0 精华:0 注册:2016/2/26 10:19:03
  发帖心情 Post By:2016/7/19 16:07:38    Post IP:103.43.185.130[只看该作者]

谢谢老师,辛苦了,我先试一下,,

 回到顶部
总数 65 上一页 1 2 3 4 5 6 7