Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[原创]希望大家能把这个交易记录复盘公式优化。

1楼
默丘里 发表于:2012/2/13 15:05:23

{交易记录}
//***** 读文本 *****
市场:=MARKETLABEL;
代码:=STKLABEL;
//DRAWTEXTEX(1,0,1,0,MARKETNAME+' '+代码);
DRAWTEXT(BARPOS=SYSPARAM(2),H,MARKETNAME+' '+代码),COLOR999999,ALIGN4;

地址:='F:\交易记录\'+市场+'\'+代码 +'.txt';//按自己的情况修改
文本:='';
<%
UTXT=ffl.vardata("文本")
UDZ=ffl.vardata("地址")
  Dim fso, ts,s
  Const ForReading = 1
  On Error Resume Next
  path ="" & UDZ
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set ts = fso.OpenTextFile(path, ForReading)
  s = ts.ReadAll
  UTXT = s
  ts.Close
ffl.vardata("文本")=UTXT
%>
Z1:='成交数量';///起始字符串
Z2:='#####';/////终止字符串
起:=STRFIND(文本,Z1,1)+8;
止:=STRFIND(文本,Z2,起);
文本长:=止-起;
字符串:=STRMID(文本,起,文本长);
//***** 读文本结束 *****

//验证资料种类
F10:=IF(RANGE(STRFIND(文本,'###交易记录###',1),0,200),1,0);
IF NOT(F10=1) THEN BEGIN //非交易记录退出
  DRAWTEXT(SYSPARAM(2)=BARPOS,15,'          本公式不适合该种资料。'),COLOREEFF,ALIGN4;
  EXIT;
END;

//***** 数据提取 *****
FHS:=CEILING(文本长/51),LINETHICK;//数据行数
//设定各数组:日期   时间       开平      方向        成交价格    成交数量
VARIABLE:RQS[FHS]=0,SJS[FHS]=0,KP[FHS]=0,FXS[FHS]=0,CJJ[FHS]=0,SLS[FHS]=0;
HW:=0;
FOR j=1 TO FHS DO BEGIN
   HW:=STRFIND(文本,'成交',IF(j=1,起+10,HW+42));//取数据所在位置
   IF HW=0 THEN BREAK;//超出尾部行位置跳出循环
   LS1:=24;LS2:=14;LS3:=12;
//=== 提取各字符串 ===
   RQT:=LTRIM(STRMID(文本,HW-LS1,8));//取日期
   SJT:=LTRIM(STRMID(文本,HW-LS2,8))-':';//取时间
   KPT:=RTRIM(LTRIM(STRMID(文本,HW+5,6)));//开平仓
   FXT:=RTRIM(LTRIM(STRMID(文本,HW+8,6)));//取方向
   CJT:=STRMID(文本,HW+LS3,10);//取成交价
   SLT:=STRMID(文本,STRFIND(文本,' ',HW+LS3+STRLEN(CJT)),5);//取成交数量
//=== 提取字符串结束 ===

   IF j<FHS AND STRLEN(LTRIM(RTRIM(SJT)))>5 THEN BEGIN
      RQS[j]:=IF(STRTONUM(STRLEFT(RQT,4))<2000,0,1000000)+STRTONUM(STRRIGHT(RQT,6));//日期
      SJS[j]:=STRTONUM(SJT);//时间
      KP[j]:=IF(STRFIND(KPT,'开',1)>0,1,IF(STRFIND(KPT,'平',1)>0,2,0));
      FXS[j]:=IF(STRFIND(FXT,'买',1)>0,1,0);
      CJJ[j]:=STRTONUM(CJT);//成交价
      SLS[j]:=STRTONUM(SLT);//成交数
      IF RQS[j]=0 THEN BREAK;
   END;
END;
JS:=J-1;
成交笔数:JS,LINETHICK;

DD:=DATE;
TT1:=TIME;
TT2:=IF(DATATYPE=0,FLOOR(TT1/100)*100+61,TT1+IF(DATATYPE=1,100,IF(DATATYPE=2,500,60)));
XX:=C*0;KKP:=C*0;KFX:=C*0;KCJ:=C*0;KSL:=C*0;
JKQ:=(CROSS(RQS[1]=DD,0.5) or BARPOS=1)*10,LINETHICK;//交易记录日期起点
JKS:=BARSSINCE(JKQ);
起点Ks:=DATACOUNT-JKS[DATACOUNT];

for i=起点Ks to datacount do begin
  if DD[i]>=RQS[1] and DD[i]<=RQS[Js] then begin
     for ii=1 to JS do begin
        if DD[i]=RQS[ii] and RANGE(SJS[ii],TT1[i]-1,TT2[i]+1) then begin
           XX[i]:=1;
           KKP[i]:=KP[ii];
           KFX[i]:=FXS[ii];
           KCJ[i]:=CJJ[ii];
           KSL[i]:=SLS[ii];
           if ii>1 and RANGE(SJS[ii-1],TT1[i]-1,TT2[i]+1)&&KP[ii]=KP[ii-1]&&FXS[ii]=FXS[ii-1]&&CJJ[ii]=CJJ[ii-1]
              then KSL[i]:=SLS[ii]+SLS[ii-1];
           if ii>=3 then begin
              if RANGE(SJS[ii-1],TT1[i]-1,TT2[i]+1) and RANGE(SJS[ii-2],TT1[i]-1,TT2[i]+1)
                &&KP[ii]=KP[ii-1]&&KP[ii]=KP[ii-2]&&FXS[ii]=FXS[ii-1]&&FXS[ii]=FXS[ii-2]&&CJJ[ii]=CJJ[ii-1]&&CJJ[ii]=CJJ[ii-2]
              then KSL[i]:=SLS[ii]+SLS[ii-1]+SLS[ii-2];
           end;
        end;
     end;
  end;
end;
成交价:REF(KCJ,BARSLAST(XX)),COLORAAAAAA,LINETHICK;
成交数:REF(KSL,BARSLAST(XX)),COLORAAAAAA,LINETHICK;
开空:=XX and KKP=1 and KFX=0;平空:=XX and KKP=2 and KFX=1;
STICKLINE(开空,KCJ,KCJ,20,0),COLORFF8800,LINETHICK2;
DRAWNUMBER(开空,KCJ,KSL,0),COLORFF8800,ALIGN,PXDN10;
DRAWNUMBER(开空,KCJ,KCJ,2),COLORFF8800,ALIGN,PXUP30;
DRAWTEXT(开空,L,'开 \n空'),COLORFF8800,ALIGN5,PXUP30;
STICKLINE(平空,KCJ,KCJ,20,0),COLOREEFF,LINETHICK2;
DRAWNUMBER(平空,KCJ,KSL,0),COLOREEFF,ALIGN,PXUP30;
DRAWNUMBER(平空,KCJ,KCJ,2),COLOREEFF,ALIGN,PXDN10;
DRAWTEXT(平空,L,'平 \n空'),COLOREEFF,ALIGN5,PXUP30;
开多:=XX and KKP=1 and KFX=1;平多:=XX and KKP=2 and KFX=0;
STICKLINE(开多,KCJ,KCJ,20,0),COLOR3FFF,LINETHICK2;
DRAWNUMBER(开多,KCJ,KSL,0),COLOR3FFF,ALIGN,PXUP30;
DRAWNUMBER(开多,KCJ,KCJ,2),COLOR3FFF,ALIGN,PXDN10;
DRAWTEXT(开多,L,'开 \n多'),COLOR3FFF,ALIGN5,PXUP30;
STICKLINE(平多,KCJ,KCJ,20,0),COLORFF00,LINETHICK2;
DRAWNUMBER(平多,KCJ,KSL,0),COLORFF00,ALIGN,PXDN10;
DRAWNUMBER(平多,KCJ,KCJ,2),COLORFF00,ALIGN,PXUP30;
DRAWTEXT(平多,L,'平 \n多'),COLORFF00,ALIGN5,PXUP30;
{

2楼
fly 发表于:2012/2/13 16:09:24
这是哪个软件用的公式?
3楼
默丘里 发表于:2012/2/15 10:59:08
飞狐上用的。
共3 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.01465 s, 3 queries.