五千年(敝帚自珍)

主题:【原创】写了个交易落地的飞狐公式 -- 平方°

共:💬2 🌺12
全看分页树展 · 主题
家园 【原创】写了个交易落地的飞狐公式

经常有一种冲动把自己历史操作在股软走势图上都标示出来的想法,这个对于自我认识并提高有着深远的影响。

还可以把高手的操作记录都标识出来,学习高手的操作方法,对股票操作提高更是一个巨大的飞跃,但是这样的东西只有专业的交易软件也许才会有,现在,飞狐能变通的得到这些了:

点看全图

外链图片需谨慎,可能会被源头改

公式说明:运行时会读取当前股票对应的交易数据文件在K线图上标识出来,还能计算成本,历史盈利等数据,类似通达信里的BS交易落地标识。本公式支持1,5,15,30,60,日,周,月,年周期。当几笔交易在某个K线时间内时,会自动合并所有数据,可能存在的bug是所有交易都落于同一个K线时,可能会出问题,这个bug是刚刚想到的,以后再修正了,还有由于没研究出飞狐前复权公式,本公式暂时不支持分红配股复权等,使用过程中有除权股票且当前复权选项为复权时,成本价和交易价会移位,请使用时多注意。

安装公式的步骤:

0.下载pf.dll,下载用zip工具解压缩为pf.dll

爱坛的同学到这里:

http://www.aswetalk.org/bbs/thread-25684-1-1.html

1.拷贝pf.dll到飞狐的FmlDLL目录里

2.准备您想查看的交易记录文件,格式如下:(分割线中间的文本,位置必须位于<飞狐运行目录>\User\TradeRecord下,一个股票一个文件,文件命名为"股票编码.txt")

日期,时间,交易价格,交易数量(负值为卖出)

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

20100727,13:55:00,22.62,1700

20100728,13:04:40,22.2,500

20100728,13:39:31,22.45,-500

20100729,11:01:45,22.52,800

20100729,14:32:53,23.94,-800

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

3.创建公式,注意选择主图叠加,主图选项

公式正文:

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

kline(o,h,l,c,1);

stickline(DATAPERIOD=6 and c/ref(c,1)>=1.097,o,c,8,1),coloryellow;

// 价格有效范围 <999999

// 成交量有效范围 <>-0.1 (不等于-0.1)

// 有任何问题和需求欢迎联系QQ:1480445585

价格:="pf@price";

成本价:="pf@cost";

仓位:="pf@position";

历史盈亏:="pf@profit"(1);

交易数量:="pf@transVol";

新仓位:=仓位+交易数量;

VARIABLE:width=12;

显示位置:=IF(SYSPARAM(1)+width>SYSPARAM(3),SYSPARAM(1)-width,SYSPARAM(1)+1);

当日盈亏:=(C-价格)*交易数量;

开仓盈亏:=IF(交易数量>0,(C-成本价)*仓位,IF(仓位>0,(C-成本价)*(仓位+交易数量)+(成本价-价格)*(交易数量),0));

stickline(价格>0,价格,价格,10,1),COLORMAGENTA;

stickline(成本价>0 and not( 交易数量>0 and 仓位 =0),成本价,成本价,10,1),COLORwhite;

t:='数 量 = '+NUMTOSTR(交易数量[SYSPARAM(1)],0)+'\n价 格 = '+NUMTOSTR(价格[SYSPARAM(1)],2)+'\n仓 位 = '+NUMTOSTR(仓位[SYSPARAM(1)],0)+'\n成 本 价 = '+NUMTOSTR(成本价[SYSPARAM(1)],2)+'\n当日盈亏 = '+NUMTOSTR(当日盈亏[SYSPARAM(1)],2)+'\n开仓盈亏 = '+NUMTOSTR(开仓盈亏[SYSPARAM(1)],2)+'\n累计盈利 = '+NUMTOSTR(历史盈亏[SYSPARAM(1)],2) align5;

DRAWTEXT(BARPOS=SYSPARAM(1) and 交易数量<> -0.1,SYSPARAM(6),t),pxdn40,shift1;

drawtext(交易数量>0 and 仓位 =0,H,'建'), pxup120,colorred;

stickline(交易数量>0 or 交易数量<-0.1,H,H*1.1,0.6,0),color505050,linedot;

drawnumber(交易数量>0 and 仓位 =0 and C>价格,H,价格,2), pxup94,colorred;

drawnumber(交易数量>0 and 仓位 =0 and C<价格,H,价格,2), pxup94,colorgreen;

drawnumber(交易数量>0 and 仓位 =0 and C=价格,H,价格,2), pxup94,colorwhite;

//-------------------------------------------------------------------------

drawtext(交易数量>0 and 仓位 >0,H,'买'), pxup120,colorred;

drawnumber(交易数量>0 and 仓位 >0 and C<价格,H,价格,2), pxup94,colorgreen;

drawnumber(交易数量>0 and 仓位 >0 and C>价格,H,价格,2), pxup94,colorred;

//-------------------------------------------------------------------------

drawtext(交易数量<-0.1 and 新仓位>0and 价格>成本价,H,'卖+'), pxup120,colorgreen;

drawtext(交易数量<-0.1 and 新仓位>0and 价格<=成本价,H,'卖-'), pxup120,colorgreen;

drawnumber(交易数量<-0.1 and 新仓位>0 and C<价格,H,价格,2), pxup94,colorred;

drawnumber(交易数量<-0.1 and 新仓位>0 and C>=价格,H,价格,2), pxup94,colorgreen;

//-------------------------------------------------------------------------

drawtext(交易数量<-0.1 and 新仓位=0 and 开仓盈亏>0 ,H,'清'), pxup120,coloryellow;

drawtext(交易数量<-0.1 and 新仓位=0 and 开仓盈亏<=0,H,'清'), pxup120,colorcyan;

drawnumber(交易数量<-0.1 and 新仓位=0 and 价格 > C,H,价格,2), pxup94,colorred;

drawnumber(交易数量<-0.1 and 新仓位=0 and 价格 < C,H,价格,2), pxup94,colorgreen;

//-------------------------------------------------------------------------

drawtext(交易数量=0 and 开仓盈亏<0 and 开仓盈亏>-99999,H,'T'), pxup120,colorgreen;

drawtext(交易数量=0 and 开仓盈亏>0,H,'T'), pxup120,colorred;

drawtext(交易数量=0 and 开仓盈亏=0,H,'T'), pxup120,colorwhite;

有什么问题可以加QQ:1480445585

--------------------2013-10-13 补记

目前公式对股指期货支持不太好,30F,60F数据因为股指期货30f,60FK

线计算时间规则与股票一样,公式数据处理会不正常,而且目前没法处理期货的4中操作,懂编程的朋友可以通过变通处理数据问题来解决,即把数据文件里的交易数量数字分为两个部分,比如17手卖空 1701,17手买多为1702,然后在飞狐公式里再把标识卖空买多的个位数十位数和交易数量再分开,再自己计算成本等数据(仅限1分钟,如果你交易不频繁的一根K线内没有两笔交易,则可以计算正确,这个原因是两笔交易落入同一根K线时,会进行平均成本的计算,如果交易量包含其他意义的数据,则计算会出错)

通宝推:不会飞的鱼儿,

本帖一共被 1 帖 引用 (帖内工具实现)
全看分页树展 · 主题
  • 相关回复 上下关系2
    • 🙂【原创】写了个交易落地的飞狐公式 O



有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河