新浪博客

[转载]关于文华财经软件的一些常见代码编写4(源于金鹰)

2018-11-17 21:37阅读:


11、

//常用K线根数的逻辑判断2
MA10:MA(C,10),LINETHICK2,COLORRED;//定义10周期均线用线性为2的红色线表示
MA20:MA(C,20),LINETHICK2,COLORWHITE;//定义20周期均线用线性为2的白色线表示
MA60:=MA(C,60),LINETHICK2,COLORGREEN;//定义60周期均线用线性为2的绿色线表示
CROSSDOWN(MA10,MA20),ICON(1,'ICO4');
AA:=CROSSUP(MA10,MA20)&&COUNT(CROSSUP(MA10,MA20),
BARPOS);//从起始K线以来第一次满足10周期均线上穿20周期均线
TA:=BARSLAST(AA)+1,NODRAW;//从起始K线以来第一次满足10周期均线上穿20周期均线到当前的K线周期到当前的K线周期
BB:=CROSSUP(MA20,MA60)&&COUNT(CROSSUP(MA20,MA60),BARPOS);////从起始K线以来第一次满足20周期均线上穿60周期均线
TB:=BARSLAST(BB)+1,NODRAW;//从起始K线以来第一次满足20周期均线上穿60周期均线到当前的K线周期到当前的K线周期
N1:=BARSLAST(CROSSUP(MA10,MA60))+1,NODRAW;//满足10周期均线上穿60周期均线到当前的周期数
N2:BARSLAST(CROSSDOWN(MA10,MA20))+1,NODRAW;//满足10周期均线下穿20周期均线到当前的周期数
HH:REF(N2,N2)+N2-1,NODRAW;//倒数第二次10周期均线和20周期均线死叉到当前周期数
HH1:REF(N2,HH+1)+HH,NODRAW;////倒数第三次10周期均线和20周期均线死叉到当前周期数
N4:REF(N2,HH1+2)+HH1+1,NODRAW;
//注意倒数第二次,第三次的写法,N4不就表示倒数第四次了吗
GJ:REF(H,HH),NODRAW;//倒数第二次死叉的最高价
GJ2:REF(H,HH1),NODRAW;//倒数第三次死叉的最高价

12、
//常用K线逻辑编写3
//对应模型仅供参考风险自负!
N1:=BARSLAST(WEEKDAY<</span>REF(WEEKDAY,1)&&WEEKDAY<</span>REFX(WEEKDAY,1))+1;//代表的当前的星期数
N2:=BARSLAST(WEEKDAY<</span>REF(WEEKDAY,1)&&REF(WEEKDAY,1)>REF(WEEKDAY,2))+1;//代表的当前的星期数
//以上两行的相同表示方法
//不同月份的表示方法就相应可以表示了
一周内的最高价:=HHV(H,N1);
一周内的最低价:=LLV(L,N1);
上周最高价:=REF(HHV(H,N1),N1);
//每次开多距离上次开多大于10根K线

//以下编写示例开仓后或者平仓后多少根新开仓问题
MA5:MA(C,5);
MA10:MA(C,10);
ISUP&&VOL>REF(VOL,1)&&(NOT(BARSBK>0)||BARSBK>10),BK;//每次买入开仓距离前一次买入开仓的K线根数要大于10
CROSSDOWN(MA5,MA10)&&ISDOWN&&(NOT(BARSSK>0)||BARSSK>10),SK;//每次卖出开仓距离前一次卖出开仓的K线根数要大于10
ISDOWN&&VOL>MA(VOL,5)&&(NOT(BARSSP>0)||BARSBK>20),SP;//每一次卖出平仓距离上一次买入开仓的K线根数要大于20
CROSSUP(MA5,MA10)&&ISUP&&H>HV(H,2)&&(NOT(BARSBP>0)||BARSSK>10),BP;//每一次买入平仓距离上一次卖出开仓的K线根数要大于20
H>=HHV(H,20)&&(NOT(BARSSK>0)||BARSBK>10),SPK;//每次开空距离上次开多大于10K线
L<=LLV(L,20)&&(NOT(BARSBK>0)||BARSSK>20),BPK;
C>BKPRICE+20*MINPRICE||C<=BKPRICE-5*MINPRICE,SP;
C<=SKPRICE-20*MINPRICE||C>SKPRICE+5*MINPRICE,BP;
AUTOFILTER;
//NOT(BARSBK>0)代表的意思是当前第一次满足的开多、开空。

13、//K线常用逻辑4
//连续亏损的编写和日内多空的限制
//模型仅供参考,风险自负!
AA:=C>O&&VOL>REF(VOL,1);//简单开多条件
BB:=C<</span>O&&VOL>REF(MA(VOL,5),1);//简单开空条件
//日内限制多空间隔交易,隔天则不限制,也就是日内就多空间隔交易,
//到第二天在重新开始循环,但第一个信号可以和昨天的最后一次开仓同向
//AA&&((DATE=REF(DATE,MIN(BARSBK,BARSSK))&&BARSSP>=1&&BARSBP>=1&&ISLASTBP)||(NOT(BARSSP>=1)&&LASTSIG<>SP)||(REF(DATE,MIN(BARSSK,BARSBK))
//当天开仓并且上一次为BP信号或者当根K线为BP信号或者前一个日期存在BK或者SK,选择BK。
//BB&&((DATE=REF(DATE,MIN(BARSBK,BARSSK))&&BARSBP>=1&&BARSSP>=1&&ISLASTSP)||(NOT(BARSBP>=1)&&LASTSIG<>BP)||(REF(DATE,MIN(BARSSK,BARSBK))
//LASTSIG<>BP代表的意思是上一个信号不是BP,相应条件就是为SP
N1:=BARSLAST(DATE<>REF(DATE,1))+1,NODRAW;//当日的K线根数从第一根K线开始到当前的周期数
N2:IFELSE(NOT(BARSSP>=1),1,BARSSP+1),NODRAW;//如果上一次是卖平仓的话取卖平位置到当前的周期数
N3:=IFELSE(BARSBP>=1,BARSBP+1,1),NODRAW;//如果上一次是买平仓的话取买平位置到当前的周期数
N4:MIN(N2,N3),NODRAW;//最近一次平仓到当前K线的周期
N5:REF(N4,N4)+N4-1,NODRAW;//倒数第二次平仓到当前K线的周期
N6:REF(N4,N5+1)+N5,NODRAW;//倒数第三次平仓到当前K线的周期
N7:=IFELSE(N6>N1,N1,N6);//如果在开盘前还有持仓取当天的分钟周期如果是开盘后的持仓取开盘后的周期
KK:=COUNT(CROSS(REF(OFFSETPROFIT,1),

我的更多文章

下载客户端阅读体验更佳

APP专享