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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 关于平仓后资金和盈利的问题

   

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


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

主题:关于平仓后资金和盈利的问题

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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/8/24 18:11:13
关于平仓后资金和盈利的问题  发帖心情 Post By:2017/11/4 14:54:50    Post IP:113.246.159.171[只看该作者]

//根据金字塔的例子程序改编:20日新高进场,然后高于20日新高的0.5N处加仓一次,10日新低离场。程序可编译,运行正常。
//本程序的问题是,当程序加仓过程存在,则对总盈利的计算不正确,不符合 资产(ASSET)=原始资产(缺省为100万)+总盈利(LPROFIT) 的公式。
//如果从程序中去掉程序加仓过程,则总盈利的计算正确。

//声明变量
VARIABLE : MYENTRYPRICE = 0 ; //开仓价格
VARIABLE : MYEXITPRICE = 0 ; //平仓价格

VARIABLE : POSITION =0 ; //仓位状态,0表示空仓,1表示持仓
VARIABLE : LOTSATU = 10 ;       //每次交易所包含的手数

VARIABLE : T20HI = CLOSE ;
T20HI := REF(HHV(H,20),1) ;   //20周期的高点

VARIABLE : T10LO = CLOSE ;
T10LO := REF(LLV(L,10),1) ;   //10周期的低点

AVGTR :=  REF(MA(TR,20),1) ;  //计算20天的真实波幅

VARIABLE : LASSET0 = ASSET ;  //多头开仓前账户数值
VARIABLE : LASSET1 = ASSET ;  //多头平仓后账户数值
VARIABLE : LPROFITAR = 0 ;    //多头平仓后本轮多头的盈利 LPROFITAR等于 LONG PROFIT A ROUND 等于 LASSET1-LASSET0 负数代表亏损。
VARIABLE : LPROFIT = 0 ;      //当前盈利


//如果当前是没有持仓的状态
IF POSITION=0 AND BARPOS>T20 AND H>L THEN BEGIN
  
//进场
IF  H>T20HI  THEN BEGIN
MYENTRYPRICE := IF(OPEN>T20HI+MINDIFF ,OPEN ,T20HI+MINDIFF ) ;
BUY( 1,LOTSATU,LIMITR,MYENTRYPRICE);
POSITION := 1 ;     //修改持仓状态
N := AVGTR ;      
                LASSET0 := ASSET ;  //记录进场时资产值
END
END  //IF
 
IF POSITION=1 AND BARPOS>T20 AND H>L THEN BEGIN       

        //加仓过程
IF HIGH>MYENTRYPRICE+0.5*N THEN BEGIN
MYENTRYPRICE := IF(OPEN>MYENTRYPRICE+0.5*N ,OPEN ,MYENTRYPRICE+0.5*N ) ;
MYENTRYPRICE := CEILING(MYENTRYPRICE/MINDIFF)*MINDIFF ;
BUY( 1, LOTSATU, LIMITR, MYENTRYPRICE); 
                LASSET0 := ASSET ;  //记录加仓时资产值
        END
        //问题:如果去掉上面这个加仓过程,则对总盈利LPROFIT的计算误差在可接受范围。
    
//离场
IF LOW<T10LO THEN BEGIN
MYEXITPRICE := IF(OPEN<T10LO-MINDIFF ,OPEN ,T10LO-MINDIFF ) ;
SELL( 1 ,0,LIMITR,MYEXITPRICE);
POSITION := 0 ;                //修改持仓状态
LASSET1 := ASSET ;            //记录离场后资产值
LPROFITAR := LASSET1-LASSET0 ;  //计算本次交易盈利
LPROFIT := LPROFIT+LPROFITAR ; //计算总盈利
END //离场结束

END  //IF

//显示账户状态
CONTINUELINE@ 资产:ASSET,NOAXIS,COLORGRAY;
总盈利: LPROFIT,NOAXIS ;
可用现金:CASH(0),LINETHICK0;
POS:HOLDING,LINETHICK0;
交易次数:TOTALDAYTRADE, LINETHICK0 ;
[此贴子已经被作者于2017/11/4 14:56:20编辑过]

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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/8/24 18:11:13
  发帖心情 Post By:2017/11/4 15:05:49    Post IP:113.246.159.171[只看该作者]

为什么增加加仓后,对总盈利LPROFIT的计算就完全错了??

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/11/6 13:06:01    Post IP:180.169.30.6[只看该作者]

你怎么能拿平仓和第二次加仓时候的资金做比对呢,第一次开仓的时候被你完全忽略掉了

不建议你去自己做统计,直接用平仓盈亏现成的函数不好吗


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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/8/24 18:11:13
  发帖心情 Post By:2017/11/6 14:47:45    Post IP:113.246.166.98[只看该作者]

平仓盈亏现成的函数是哪一个???如果上面的程序是多空双向的,这个平仓现成的函数还能用吗??

我不知道我的思路错在什么地方,我用的就是你们金字塔的例子程序,如果要改的话怎么修改???

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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/8/24 18:11:13
  发帖心情 Post By:2017/11/6 14:55:47    Post IP:113.246.166.98[只看该作者]

你怎么能拿平仓和第二次加仓时候的资金做比对呢,第一次开仓的时候被你完全忽略掉了
==============================
不明白你这句话的意思,加仓之后,我记录下总的ASSET,然后平仓之后记录下总的ASSET,两者相减不是盈利吗???
第一次开仓的ASSET,不影响这个啊???

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/11/6 15:00:38    Post IP:180.169.30.6[只看该作者]

图表不支持锁仓,只能单边持仓。

盈利你要记录从第一次建仓前的资金,然后平仓后的资金相见

不是中间建仓的资金


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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/8/24 18:11:13
  发帖心情 Post By:2017/11/7 10:28:06    Post IP:113.246.165.36[只看该作者]

图表不支持锁仓,只能单边持仓。
=========================
我的多空双向其实每次只是单边,应该没关系。


盈利你要记录从第一次建仓前的资金,然后平仓后的资金相见,不是中间建仓的资金

======================

我明白你说的要怎么做了,可是我还是不是很懂你说的这段话,按照软件里面对ASSET的说明,ASSET是资产的值,包括了所使用的保证金,软件的函数说明里面写的是:

客户账户的净自有资产(ASSET) = 可用现金+占用保证金-融资(现金+品种市值-融资) 


因为包括了保证金,应该也是能够计算出加仓后和平仓后两者之间的盈利的,但是软件给出的盈利数字很不合理。


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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/11/7 11:31:10    Post IP:180.169.30.6[只看该作者]

你的一次盈利是从开仓到平仓,不是加仓到平仓

这个中间需要您自己理解了,不是那么好解释的


 回到顶部