飞狐公式系统指南Word格式.docx

上传人:b****6 文档编号:19745973 上传时间:2023-01-09 格式:DOCX 页数:15 大小:24.83KB
下载 相关 举报
飞狐公式系统指南Word格式.docx_第1页
第1页 / 共15页
飞狐公式系统指南Word格式.docx_第2页
第2页 / 共15页
飞狐公式系统指南Word格式.docx_第3页
第3页 / 共15页
飞狐公式系统指南Word格式.docx_第4页
第4页 / 共15页
飞狐公式系统指南Word格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

飞狐公式系统指南Word格式.docx

《飞狐公式系统指南Word格式.docx》由会员分享,可在线阅读,更多相关《飞狐公式系统指南Word格式.docx(15页珍藏版)》请在冰豆网上搜索。

飞狐公式系统指南Word格式.docx

FFL.MsgBox(strMsg)

显示信息提示对话框,strMsg为字符串类型的变量或常量

实例

1、交易系统:

背景:

假定买入信号发生的条件是创200天新高,第一次达到条件时发出买入信号,略去随后的买入信号,利润目标是10%,最大亏损是8%,达到止赢止损点发出止损卖出信号,这样的交易系统在原公式系统中无法实现,而用脚本语言就解决了这样的问题。

该实例综合应用了循环语句、条件语句和数组操作,请注意变量数据是怎样被转入、转出的。

请看代码:

{买入信号临时变量:

收盘创200天新高}

BUY:

=CLOSE=HHV(CLOSE,200);

{初始化卖出信号临时数组变量给下面的脚本用,任意赋给一个有效数值起始位置为0的数组变量即可,注意,若SELL:

=0则表示SELL为数值而非数组}

SELL:

=BUY;

{初始化收盘价临时数组变量给下面的脚本用}

CLOSEPRICE:

=CLOSE;

{用<

%......%>

嵌入脚本语言,类似编写ASP}

<

%

'

将公式系统变量转入VBScript

close=FFL.VarData("

CLOSEPRICE"

buy=FFL.VarData("

BUY"

sell=FFL.VarData("

SELL"

该变量保存买入价,也表示开仓、平仓状态。

如为0则表示空仓(平仓)

lastbuyprice=0

遍历数组

fori=0toUBound(close)

sell(i)=0

若已买入而且未平仓略去随后的买入信号

if(lastbuyprice>

0)then

buy(i)=0

endif

若满足买入条件取买入价,也用于设置开仓

if(lastbuyprice=0)AND(buy(i)=1)then

lastbuyprice=close(i)

若已买入且满足卖出条件,产生卖出信号并平仓

if(lastbuyprice>

0)AND((close(i)>

(1.1*lastbuyprice))OR(close(i)<

(0.92*lastbuyprice)))then

sell(i)=1

next

将VBScript变量转出为公式系统变量

FFL.VarData("

)=buy

)=sell

%>

ENTERLONG:

BUY;

EXITLONG:

SELL;

有兴趣的用户可以将这段代码扩充为同时考虑回落、横盘平仓点的情况。

2、技术指标

在达到某个条件时弹出信息提示对话框,请注意公式参数和常数变量是怎样被转入VB脚本中的。

(已设置一参数P缺省5,2,60)

MA1:

MA(C,P);

N:

=3;

p=FFL.VarData("

p"

n=FFL.VarData("

n"

ma=FFL.VarData("

MA1"

nFirst=FFL.VarStartIndex("

ma1"

nLast=UBound(ma)

fori=nFirsttonLast

ma(i)=ma(i)/p

next

'

判断最后一个数是否满足条件

if(ma(nLast)>

n)then

str="

大于3"

MsgBox(str)

endif

)=ma

设置有效起始位置示例

)=nFirst

类似地,运用脚本语言强大的语法、函数,当然也可以在技术指标、条件选股、五彩K线中实现原来不可想象的计算和处理。

指标函数

COST(X)支持序列数组

ZIG类函数支持序列数组:

函数:

ZIG(X,N)

参数:

X为序列数组或常数,为常数时表示0:

开盘价,1:

最高价,2:

最低价,3:

收盘价,N为常数

返回:

返回序列数组

说明:

当序列或K线变化量超过N%时转向

示例:

ZIG(3,5)表示收盘价的5%的ZIG转向

ZIG(MA(C,20),5)表示20日平均线的5%的ZIG转向

PEAK(X,N,M)

X为序列数组或常数,N为常数,M为大于等于1的整数

表示之字转向ZIG(X,N)的前M个波峰的数值

PEAK(1,5,1)表示%5最高价ZIG转向的上一个波峰的数值

PEAK(MA(C,20),5,1)表示均线的5%的ZIGVAR转向的上一个波峰的数值

PEAKBARS(X,N,M)

表示之字转向ZIG(X,N)的前M个波峰到当前的周期数

PEAKBARS(0,5,1)表示%5开盘价ZIG转向的上一个波峰到当前的周期数

PEAKBARS(MA(C,20),5,1)表示线的5%的ZIGVAR转向的上一个波峰到当前的周期数

TROUGH(X,N,M)

表示之字转向ZIG(X,N)的前M个波谷的数值

TROUGH(2,5,2)表示%5最低价ZIG转向的前2个波谷的数值

TROUGH(MA(C,20),5,2)表示均线的5%的ZIGVAR转向的前2个波谷的数值

TROUGHBARS(X,N,M)

表示之字转向ZIG(X,N)的前M个波谷到当前的周期数

TROUGHBARS(2,5,2)表示%5最低价ZIG转向的前2个波谷到当前的周期数

TROUGHBARS(MA(C,20),5,2)表示均线的5%的ZIGVAR转向的前2个波谷到当前的周期数

这样扩展后,ZIG类函数可用于判断RSI等指标的M头W底。

绘图函数

DRAWNUMBER(COND,PRICE,NUMBER,PRECISION)

当COND条件满足时,在PRICE位置书写数字NUMBER(可以为常数或数组序列),PRECISION为精度(取值范围0-3),即显示到小数点后PRECISION位。

该函数可用于显示指标数值。

例如:

DRAWNUMBER(CLOSE/OPEN>

1.05,HIGH,(CLOSE-OPEN)/OPEN*100,1)表示当日涨幅大于5%时在最高价位置显示涨幅(相对于开盘价的百分比,取一位小数);

DRAWYITEXT(COND,PRICE,CODE,TYPE)

在图形上显示干支、64卦文字。

当COND条件满足时,在PRICE位置书写TYPE类型的CODE的对应文字。

TYPE为常数,取0--1,分别表示显示的是干支、64卦,CODE为对应的代码。

DRAWYITEXT(CLOSE/OPEN>

1.05,LOW,GANZHI(DATE,0,2),0)表示当日涨幅大于5%时在最低价位置显示日干支;

DRAWYITEXT(REF(CLOSE,2)>

REF(OPEN,2)ANDREF(CLOSE,1)>

REF(OPEN,1)ANDCLOSE>

OPEN,LOW,KGUA(1,1),1)表示连续三阳线时在最低价位置显示K线卦象。

易理函数

LDAY

返回有效值范围为(1-30).

取得该周期的农历日期。

LMONTH

返回有效值范围为(1-12)

取得该周期的农历月份。

LYEAR

返回有效值范围为(1970-2038)

取得该周期的农历年份。

LSOLARTERM(X)

X为序列变量,格式与DATE同,有效值范围为(700101-1341231),表示19700101-20341231

返回有效值范围为(0-24).0表示该周期不在节气日中,1-24分别表示小寒、大寒、立春、雨水、惊蛰、春分、清明、谷雨、立夏、小满、芒种、夏至、小暑、大暑、立秋、处暑、白露、秋分、寒露、霜降、立冬、小雪、大雪、冬至

取得该周期所在的二十四节气。

LSOLARTERM(DATE)表示求当前周期节气

ZQDMNUM

用法:

ZQDMNUM

返回证券代码数,如0001返回1,600001返回600001,指数返回0

ZQDMSUM

ZQDMSUM

返回证券代码各位数字之和,如0001返回1,600001返回7,指数返回3

NUMBERSUM(NUMBER,N)

NUMBER为待计算的数据,N表示小数点后取几位

各位数字之和

NUMBERSUM(CLOSE,2)则收盘价为9.53时返回17

GANZHI(DATE,TIME,TYPE)

DATE为数组或常数,有效值范围(年月日80010100-130123123)

TIME为数组或常数,有效值范围(时分秒000000-235959)

TYPE为常数,取0--3,分别表示计算的是年、月、日、时的干支

返回六十甲子代码,有效值范围为(0-59),依次表示甲子、乙丑.....癸亥

取得日期的年、月、日、时的干支代码

GANZHI(DATE,0,2)取得该周期的日干支代码

GANZHI(DATE,TIME,3)取得该周期的时干支代码

GANZHI(1010901,0,0)取得2001年9月1日的年干支代码

这样:

MOD(GANZHI(DATE,0,2),10)即可得到该周期的对应的日天干代码。

0-9分别表示甲、乙...癸

MOD(GANZHI(DATE,0,1),12)即可得到该周期的对应的月地支代码。

0-11分别表示子、丑...亥

INTPART(GANZHI(DATE,0,2)/10)即可得到该周期的旬代码(0-5),依次表示甲子旬、…、.甲寅旬

(5-INTPART(GANZHI(DATE,0,2)/10))*2即可得到该周期的第一个旬空地支代码

(5-INTPART(GANZHI(DATE,0,2)/10))*2+1即可得到该周期的第二个旬空地支代码

WUXING(X,TYPE)

TYPE为常数,取0--2,分别表示计算的是天干、地支、八卦对应的五行,X为对应的代码,数组或常数

返回五行代码,有效值范围为(0-4),依次表示金水木火土

取得天干、地支、八卦对应的五行代码

WUXING(MOD(GANZHI(DATE,0,2),12),1)取得该周期的日地支对应的五行代码

WXGX(WX1,WX2)

WX1,WX2为五行代码的数组或常数,有效值范围为(0-4),依次表示金水木火土

返回五行生克关系代码,有效值范围为(0-3),依次表示WX1无关WX2、WX1生WX2、WX1克X2、WX1反克WX2

取得五行相生相克反克的关系

WUXING(0,1)返回1,表示金生水

五行序数的相生次序:

0-1-2-3-4-0

五行序数的相克次序:

0-2-4-1-3-0

五行序数的反克次序:

0-3-1-4-2-0

WXLD(JI,LD)

LD为五行四季力度代码,有效值范围为(4-0),依次表示旺(4)、相(3)、休

(2)、囚

(1)、死(0);

JI为四季数代码,有效值范围为(0-4),依次表示春、夏、秋、冬、四季土

返回五行代码,依次表示金水木火土

取得不同时间的力度(旺相休囚死)对应的五行代码

WXLD(0,4)=2,表示春季木旺

WXSS(WX,SS)

WX为五行代码的数组或常数,SS五行盛衰十二阶段代码,有效值范围为(0-11),依次表示绝、胎、养、长生、沐浴、冠带、临官、帝旺、衰、病、死、墓

地支代码,0-11分别表示子、丑...亥

取得五行盛衰十二阶段(原生旺死绝)对应的地支代码

WXSS(1,0)返回2,金绝于寅

DZGX(DZ1,DZ2)

DZ1,DZ2为地支代码的数组或常数,有效值范围为(0-11)

返回地支关系代码,有效值范围为(0-5),依次表示无关(0)、DZ1生DZ2

(1)、DZ1克DZ2

(2)、相冲(3)、相害(4)、DZ1刑DZ2(5)

地支间的关系

DZGX(0,6)返回3,表示子与午冲

 

DZXH(DZ1,DZ2,DZ3,DZ4)

DZ1,DZ2,DZ3,DZ4为地支代码的数组或常数,有效值范围为(0-11),若求六合,则DZ3为-1,DZ4除算申子辰化合成水局外为-1

返回合成的无行代码,有效值范围为(-1-4),-1表示无相合关系

地支间的相合关系

DZXH(0,1,-1,-1)返回4,表示子丑合而化土

DZXH(8,0,4,-1)返回1,表示申子辰化合成水局

KGUA(TYPE,N)

TYPE取爻次序,为0表示以第一个周期为初爻,当前周期为上爻,不为0则反之

N为所取的周期数,为0取3个周期,不为0表示取6个周期

K线卦象,若N为0,返回八卦代码(1-8),否则返回六十四卦代码(11-88),请参考易卦代码表

取得K线卦象

KGUA(1,1)以当前周期为初爻,取6个周期组成的某个六十四卦

升为阳,跌为阴,平盘则相对前收盘(如果也相等?

反日k线:

若改为阳线为阴爻,阴线为阳爻,则可写成99-KGUA(1,1)

附:

易卦代码表

将八纯卦及64别卦按先天数编排:

(1)、兑

(2)、离(3)、震(4)、巽(5)、坎(6)、艮(7)、坤(8)

(1)、泽

(2)、火(3)、雷(4)、风(5)、水(6)、山(7)、地(8)

譬如上卦为艮,就7,下卦为乾,就1,这样,山天大畜就可以用71来表示,所以64卦的最大范围为坤卦纯卦,为88,纯乾卦为最小,为11

"

乾为天"

(11),"

天泽履"

(12),"

天火同人"

(13),"

天雷无妄"

(14),"

天风姤"

(15),"

天水讼"

(16),"

天山"

(17),"

天地否"

(18),

泽天夬"

(21),"

兑为泽"

(22),"

泽火革"

(23),"

泽雷随"

(24),"

泽风大过"

(25),"

泽水困"

(26),"

泽山咸"

(27),"

泽地萃"

(28),

火天大有"

(31),"

火泽睽"

(32),"

离为火"

(33),"

火雷噬嗑"

(34),"

火风鼎"

(35),"

火水未济"

(36),"

火山旅"

(37),"

火地晋"

(38),

雷天大壮"

(41),"

雷泽归妹"

(42),"

雷火丰"

(43),"

震为雷"

(44),"

雷风恒"

(45),"

雷水解"

(46),"

雷山小过"

(47),"

雷地豫"

(48),

风天小畜"

(51),"

风泽中孚"

(52),"

风火家人"

(53),"

风雷益"

(54),"

巽为风"

(55),"

风水涣"

(56),"

风山渐"

(57),"

风地观"

(58),

水天需"

(61),"

水泽节"

(62),"

水火既济"

(63),"

水雷屯"

(64),"

水风井"

(65),"

坎为水"

(66),"

水山蹇"

(67),"

水地比"

(68),

山天大畜"

(71),"

山泽损"

(72),"

山火贲"

(73),"

山雷颐"

(74),"

山风蛊"

(75),"

山水蒙"

(76),"

艮为山"

(77),"

山地剥"

(78),

地天泰"

(81),"

地泽临"

(82),"

地火明夷"

(83),"

地雷复"

(84),"

地风升"

(85),"

地水师"

(86),"

地山谦"

(87),"

坤为地"

(88),

三、DLL扩展程序调用接口

分析家现有的DLL接口只能调用4个参数,其中只能有一个序列,飞狐对分析家DLL调用接口信息数据结构进行了扩展,使扩展程序调用的参数不限数量,且每个参数都可为数值或序列。

/////////////////////////////////////////////////////////////////////////////

//调用接口信息数据结构

typedefstructtagCALCINFO

{

DWORDm_dwSize;

//结构大小

DWORDm_dwVersion;

//调用软件版本

DWORDm_dwSerial;

//调用软件序列号

char*m_strStkLabel;

//股票代码

BOOLm_bIndex;

//大盘

intm_nNumData;

//数据数量(pData,pDataEx,pResultBuf数据数量)

STKDATA*m_pData;

//常规数据,注意:

当m_nNumData==0时可能为NULL

STKDATAEx*m_pDataEx;

//扩展数据,分笔成交买卖盘,注意:

可能为NULL

intm_nParam1Start;

//参数1有效位置

float*m_pfParam1;

//调用参数1

float*m_pfParam2;

//调用参数2

float*m_pfParam3;

//调用参数3

float*m_pfParam4;

float*m_pResultBuf;

//结果缓冲区

intm_dataType;

//数据类型

float*m_pfFinData;

//财务数据

//以上与分析家兼容,所以沿用其结构和名称

//以下为FoxTrader扩展

DWORDm_dwReserved;

//保留,将来用于设置标志

intm_nNumParam;

//调用参数数量

CALCPARAM*m_pCalcParam;

//调用参数数组

}CALCINFO;

/////////////////////////////////////////////////////////////

//调用参数项结构

typedefstructtagCALCPARAM

union{

float*m_pfParam;

//

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1