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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 股票计算的OPENPROFIT不准?或我的计算错误在哪?

   

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


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

主题:股票计算的OPENPROFIT不准?或我的计算错误在哪?

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


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
股票计算的OPENPROFIT不准?或我的计算错误在哪?  发帖心情 Post By:2021/4/8 11:24:09 [只看该作者]

目的:想通过开仓后不同K的openprofit计算出开仓的手续费率Xopen与平仓的手续费率(含印花税率等)Xsell
方法:1、获取策略出现开仓(Close价,买入)信号后任意间隔的两根K1,K2的动态盈亏openprofit1与openprofit2,收盘价CLOSE1,CLOSE2
         2、设定开仓的费率为Xopen与平仓的手续费率(含印花税率等)Xsell,动态收盘(平仓)价即为两根K1,K2的动CLOSE1,CLOSE2
         3、Xopen与平仓的手续费率(含印花税率等)Xsell的计算
              开仓费用:Close*Xopen
              动态平仓费用:
                                K1为:CLOSE1*Xsell
                                K2为:CLOSE2*Xsell
              各根K动态盈亏(方程):
                                K1为:(CLOSE1-Close)-(Close*Xopen+CLOSE1*Xsell)=openprofit1
                                K2为:(CLOSE1-Close)-(Close*Xopen+CLOSE1*Xsell)=openprofit2
问题:通过该法计算出的开仓的费率为Xopen与平仓的手续费率(含印花税率等)Xsell是变动的,请问老师我的计算方法错误在哪?
谢谢      

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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2021/4/8 13:11:43 [只看该作者]

openprofit 这个函数只包括了开始手续费,并未包括平仓的手续费,所以你开仓手续费可以通过这个得出,平仓费用不行

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


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
  发帖心情 Post By:2021/4/8 13:24:34 [只看该作者]

谢谢您
图表平仓手续费呢?如何得出?

[此贴子已经被作者于2021/4/8 13:25:26编辑过]

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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2021/4/8 13:33:37 [只看该作者]

直接用这个函数 :GEGCHARGE 

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


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
  发帖心情 Post By:2021/4/8 15:10:21 [只看该作者]

谢谢老师,但是我采用GEGCHARGE 计算某根K1的openprofit1结果与图表给出的openprofit不一致,请老师指点,方法如下:
1、获取策略出现开仓(Close价,买入)信号后任意间隔的两根K1,K2的动态盈亏openprofit1与openprofit2,收盘价CLOSE1,CLOSE2
2、openprofit1=(CLOSE1-Close)-GEGCHARGE ('',CLOSE1,1,0)
结果:openprofit1<>openprofit
错误在哪?
谢谢

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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2021/4/8 15:11:26 [只看该作者]

你发下你计算的完整代码,我本地试试看

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


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
  发帖心情 Post By:2021/4/8 15:39:06 [只看该作者]

指标:
VARIABLE:mholding=0,BuyP=0,ExtP=0,OpenP=0,entB=0,ExtB=0,buyFee=0,totalProfit=0,NtotalProfit=0;
EMA5:=EMA(CLOSE,5);REMA5:=REF(EMA5,1);
EMA10:=EMA(CLOSE,10);REMA10:=REF(EMA10,1);
EMA20:=EMA(CLOSE,20);REMA20:=REF(EMA20,1);
EMA120:=EMA(C,120);

if mholding>0 then  OpenP:=(mholding*(C-buyP)+(buyFee));//股票利润mholding*C*17.95/10000+
OPPROFIT:Openp,LINETHICK0;
//交易条件:
KDPK0:if(CROSS(EMA5,EMA20) and mholding<=0 ,1,0);//,LINETHICK0
KKPD0:if(((CROSS(EMA20,EMA5) and OpenP>0)  and holding>=0,1,0);//,LINETHICK0
//*************************************
if  KDPK0=1  then BEGIN//
            //buy(1,1,THISCLOSE);//开多&&MA60>MA90,IGNORECHECKPRICE;
            mholding:=mholding+1;           
            entB:=entB+1; 
            extB:=0;    
            BuyP:=Close;
            OpenP:=0;
            //buyFee=0;
      //buyFee=(BuyP+0.2)*300*0.23/10000'股指期货开仓手续费
      buyFee:=GEGCHARGE('',Close,1,0);//股票开仓手续费                                                
end 
if  KKPD0 then BEGIN        
            //sell(1,mholding,THISCLOSE);//平多
            mholding:=0;              
            entB:=0; 
            extB:=extB+1;                                          
            extP:=CLOSE;
            BuyP:=0;
            OpenP:=0;
            //buyFee=0;
            //sellFee=sellFee+mholding*C*11.24/10000;//'股票平仓手续费mholding*extP*(1.24/10000+10/10000)   
      //buyFee=(BuyP+0.2)*300*0.23/10000'股指期货开仓手续费
      buyFee:=0;
      NtotalProfit:=totalProfit;                                 
end
策略:
VARIABLE:mholding=0,BuyP=0,ExtP=0,OpenP=0,entB=0,ExtB=0,buyFee=0,totalProfit=0,NtotalProfit=0;
EMA5:=EMA(CLOSE,5);REMA5:=REF(EMA5,1);
EMA10:=EMA(CLOSE,10);REMA10:=REF(EMA10,1);
EMA20:=EMA(CLOSE,20);REMA20:=REF(EMA20,1);
EMA120:=EMA(C,120);

if mholding>0 then  OpenP:=(mholding*(C-buyP)+(buyFee));//股票利润mholding*C*17.95/10000+
OPPROFIT:OpenProfit,LINETHICK0;
//交易条件:
KDPK0:if(CROSS(EMA5,EMA20) and mholding<=0 ,1,0);//,LINETHICK0
KKPD0:if(((CROSS(EMA20,EMA5) and OpenProfit>0)  and holding>=0,1,0);//,LINETHICK0
//*************************************
if  KDPK0=1  then BEGIN//
            buy(1,1,THISCLOSE);//开多&&MA60>MA90,IGNORECHECKPRICE;
            mholding:=mholding+1;           
            entB:=entB+1; 
            extB:=0;    
            BuyP:=Close;
            OpenP:=0;
            //buyFee=0;
      //buyFee=(BuyP+0.2)*300*0.23/10000'股指期货开仓手续费
      buyFee:=GEGCHARGE('',Close,1,0);//股票开仓手续费                                                 
end 
if  KKPD0 then BEGIN        
            sell(1,mholding,THISCLOSE);//平多
            mholding:=0;              
            entB:=0; 
            extB:=extB+1;                                          
            extP:=CLOSE;
            BuyP:=0;
            OpenP:=0;
            //buyFee=0;
            //sellFee=sellFee+mholding*C*11.24/10000;//'股票平仓手续费mholding*extP*(1.24/10000+10/10000)   
      //buyFee=(BuyP+0.2)*300*0.23/10000'股指期货开仓手续费
      buyFee:=0;
      NtotalProfit:=totalProfit;                                 
end

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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2021/4/8 17:29:54 [只看该作者]

上面的代码里好多错误,你那边能编译通过啊?  我们这边先看下晚点回复您

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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2021/4/9 9:50:50 [只看该作者]

股指期货手续费你算的不对,应该是CLOSE * 300 * 0.005%,按软件默认的费率来计算的,您按下面的代码修改试试

buyFee11:=BuyP*300*0.00005;//'股指期货开仓手续费
buyFee:=GEGCHARGE('',Close,1,0);//股票开仓手续费    

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

 回到顶部