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


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

   

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


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

主题:持仓盈亏

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2016/7/12 15:51:07    Post IP:180.169.30.6[显示全部帖子]

openprofit计算原理为 (市价-开仓成本)*持仓手数*交易单位

开仓成本会随着减仓发生变化

 

沿用的是股票里的开仓成本的计算方法,股票开仓成本计算举例如下

股票减仓之后,要看你卖出的时候股票价格是比你的成本高还是低
要是低的话,卖出之后成本会变高;反之,要是高的话,成本就会变低
比如说,在不计算买卖的费用情况下
10元买1000股股票,总的成本就是10000元
你在12元卖出500股,那么得到6000元,剩下的500股成本为4000元,每股成本就是8元
要是你在8元卖出500股,剩下500股的成本就是6000元,每股成本就是12元

[此贴子已经被作者于2016-7-12 16:12:57编辑过]


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

客户服务部

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

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

service@weistock.com

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2016/7/12 17:20:17    Post IP:180.173.198.10[显示全部帖子]

openprofit计算原理为 (市价-开仓成本)*持仓手数*交易单位

开仓成本会随着减仓发生变化

 

具体到期货中,在以IF为例子,不计算买卖的费用情况下,计算如下
开仓成本,如果10手IF,开仓价全部为3200(多头),如果不减仓,openprofit值为:(市价-3200)*holding*MULTIPLIER
(1)若平掉5手,平掉的5手 平仓价全部为3220
   则剩余5手开仓成本:(10*3200-5*3220)/5=3180

   减仓后剩余5手的openprofit值为:(市价-3180)*holding*MULTIPLIER
(2)若平掉5手,平掉的5手 平仓价全部为3170
  则剩余5手开仓成本:(10*3200-5*3170)/5=3230

   减仓后剩余5手的openprofit值为:(市价-3230)*holding*MULTIPLIER

 

您结合本地情况,自己尝试写写



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

客户服务部

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

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

service@weistock.com

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2016/7/13 17:01:40    Post IP:180.169.30.6[显示全部帖子]

您的诉求是:
if a=1   and holding=0,,,,,,then 
  开多:10手
end 
减仓前要求到真实持仓盈亏
if   ,,,,,,,,and holding>0,,
减仓:5手
end 
加仓前要求到真实的持仓盈亏
if ,,,,,,,,,ang holding>0
加仓:10手
end

 

1.图表程序化都是虚拟的,虚拟的持仓,虚拟的开仓价格。所以真实的持仓盈亏求不到

 

 

2.openprofit计算原理为 (市价-开仓成本)*持仓手数*交易单位

开仓成本会随着减仓发生变化

 

昨天我们谈到的,金字塔openprofit的计算原理您明白了吗?您认可这种计算盈亏的方式吗?这种计算盈亏计算出来的本质也是图表上的一个虚拟的持仓盈亏,希望您能理解图表虚拟的这个本质

 

具体到期货中,在以IF为例子,不计算买卖的费用情况下,计算如下
开仓成本,如果10手IF,开仓价全部为3200(多头),如果不减仓,openprofit值为:(市价-3200)*holding*MULTIPLIER
(1)若平掉5手,平掉的5手 平仓价全部为3220
   则剩余5手开仓成本:(10*3200-5*3220)/5=3180

   减仓后剩余5手的openprofit值为:(市价-3180)*holding*MULTIPLIER
(2)若平掉5手,平掉的5手 平仓价全部为3170
  则剩余5手开仓成本:(10*3200-5*3170)/5=3230

   减仓后剩余5手的openprofit值为:(市价-3230)*holding*MULTIPLIER

[此贴子已经被作者于2016-7-13 17:01:58编辑过]


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

客户服务部

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

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

service@weistock.com

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2016/7/14 16:03:58    Post IP:180.173.198.10[显示全部帖子]

真的很抱歉,昨天一直在忙,没有持续跟进您的帖子。程序化的下单执行结果和盈亏的计算,可简化为手工下单的情况

 

由于期货和股票对盈亏/开仓成本等有不同的计算方式,为了防止有误解而返工重来,

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

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

 

(1)加仓2手,开仓价为3205,之后 持仓盈亏:(市价-3200)*5*MULTIPLIER + (市价-3205)*2*MULTIPLIER    同意吗

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

 

如果我理解的有误,请您更正

以上加仓和减仓,如果变成了隔夜仓,持仓盈亏的计算依然不变吧

[此贴子已经被作者于2016-7-14 16:24:43编辑过]


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

客户服务部

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

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

service@weistock.com

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2016/7/15 11:17:55    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

      

持仓盈亏只和开仓价有关,和过不过夜没关 

[此贴子已经被作者于2016-7-18 11:00:39编辑过]


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

客户服务部

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

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

service@weistock.com

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

 回到顶部
帅哥哟,离线,有人找我吗?
fly
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 回到顶部
帅哥哟,离线,有人找我吗?
fly
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 回到顶部