如果您需要代写技术指标公式, 请联系我。
龙哥QQ:591438821
龙哥微信:Long622889
也可以把您的通达信,文华技术指标改成TB交易开拓者、金字塔、文华8的自动交易量化策略
定义一个变量,名为AA,出收盘价与开盘价的差,要求指标线以独立坐标方式显示,指定指标线颜色为红色。
麦语言编写方式:
AA..CO,彩色;
宽语言改编:
瓦尔斯
数字 AA;
开始
AA=闭-开;
PlotLine("AA",AA,红色,Linethick1,4,0);
结尾
使用的公式总结
收盘取得K线图的收盘价。
1、当盘中k线没有走完的时候,取得最新价。
2、不支持简写为C。
写成Close的形式,公式编写平台才能变蓝
写成CLOSE也不行,在公式编写平台上还是黑色的不会变蓝。
尝试写成close,公式编写平台也能识别并且变蓝
数值型临时变量
练习2
当根k线最高价是五个周期内最高价的值,在最低价的位置标注最高文字涨价。
麦语言
AA:HHV(H,5);
DRAWTEXT(AA,L,'涨');
宽语言
瓦尔斯
数字 HH;
开始
HH=HHV(高,5);
DrawText(High==HH,Low,"涨",红色,16,Align0,Valign0);
结尾
Alignx、Valignx是创建后缀x改为数字,例如Align0,而不是在Alignx的后面加上数字,Alignx0的写法,平台识别不出来
Align0,Valign0代表文字居左,居上对齐
练习3
定位前一天最后一根k线,并在这根k线最高价的位置标记图标
麦语言
DRAWICON(REFX(DATE<>REF(DATE,1),1),H,'ICO1');
宽语言
开始
DrawIcon(Date!=REF(Date,1)&&IsLastKLine==1,High,"ICO16");
结尾
函数总结
DrawIcon(Cond,价格,图标,Alignx,Valignx);
- 当Cond条件满足时,
- 在价格位置画图标Icon,
- 图标位置按照Alignx、Valignx写入的方式对齐。
//Wh8的不等于是<>,Wh9的不等于!=;
//Wh8的等于操作符是=,Wh9的等于操作符是==;
练习4
在当前k线上返回昨日最高价
麦语言
N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,当日K线数。
//由于条件成立的当根K线上BARSLAST(COND)的返回值为0,所以“+1”才是当日K线根数。
AA:REF(HHV(H,N),N);//返回当前k线上的昨日最高价
宽语言
瓦尔斯
数字 N;
数字 AA;
开始
N=BarsLast(Date!=Ref(Date,1))+1;//分钟周期,当日k线数。
AA=Ref(HHV(高,N),N);
PlotNumeric("昨晚高",AA);
结尾
练习5
将满足当前k线的最高价为前后五个周期的最高点k线,在最高价的位置标记图标
麦语言
AA1:H>HV(H,5);//K线的最高价是前五个周期的最高点
AA2:H>REFX(HV(H,5),5);//K线的最高价为后五个周期的最高点
DRAWICON(VALUEWHEN(ISLASTBAR,AA1&&AA2)=1,H,'ICO1');
宽语言
// 宽语言中无法刚性引用,无法完整编写此题
瓦尔斯
数字 AA1
开始
AA1=High>HV(High,5);//K线的最高价是前五个周期的最高点
结尾
练习6
编写一个指标AA,要求连续三根以上(包含3根)的k线不是阴线
麦语言
AA:EVERY(C>=O,3)=1;//连续3根以上的k线是平线或者阳线
宽语言
瓦尔斯
数字 AA;
开始
AA=每个(收盘>=开盘,3)==1;
结尾
练习7
取倒数第二次阳线的最高价
麦语言
AA:=REF(VALUEWHEN(ISUP,H),1);//如果上一根K线是阳线,取上一根阳线的最高价;
//只有当根是阳线的情况下,上一根阳线才资格倒数第二次阳线;
VALUEWHEN(ISUP,AA); //如果当根是阳线,取得上一根一根,一根倒数第二次阳线的最高价
宽语言
瓦尔斯
数字 AA;
数字 AA1;
开始
AA=Ref(ValueWhen(IsUp,High),1);
AA1=ValueWhen(IsUp,AA);
PlotNumeric("倒数第二次阳线的最高价",AA1);
结尾
练习8
最新一次满足5周期均线上穿10周期均线的k线最高价的位置标注金叉
麦语言
MA5:MA(C,5);
MA10:MA(C,10);
AA:=交叉(MA5,MA10);
BB:=BACKSET(ISLASTBAR,BARSLAST(AA)+1);
DRAWTEXT(CROSS(BB,0.5),H,'金叉');
宽语言
瓦尔斯
数字 MA5;
数字 MA10;
数字 JC;
数字 AA;
开始
MA5=Ma(收盘价,5);
MA10=Ma(收盘价,10);
JC=十字(MA5,MA10);
DrawText(BarsLast(JC)==0,High,"金叉");
结尾
//WH9里面没有未来函数,用不了backset函数。
练习9
5周期均线和10周期均线,在金叉的位置用红色箭头标记,在死叉的位置用绿色箭头标记。
麦语言
MA5:MA(C,5);
MA10:MA(C,10);
JC:交叉(MA5,MA10);
SC:交叉(MA10,MA5);
DRAWICON(JC,MA5,'ICO4');
DRAWICON(SC,MA5,'ICO5');
宽语言
瓦尔斯
数字 MA5;
数字 MA10;
数字 JC;
数字 SC;
开始
MA5=Ma(收盘价,5);
MA10=Ma(收盘价,10);
JC=十字(MA5,MA10);
SC=CrossDown(MA5,MA10);
DrawIcon(JC,MA5,"ICO4");
DrawIcon(SC,MA5,"ICO5");
结尾
练习10
5个周期均线,如果该均线连续2个周期,向上均线显示为红色;连续两个周期均线向下,显示为绿色。
麦语言
MA5:MA(C,5);
AA:=EVERY(MA5>REF(MA5,1),2);//均线是否连续周期两个向上
PARTLINE(AA,MA5,COLORRED);//如果连续2个周期向上,5个周期均线显示为红色
BB:=EVERY(MA5<REF(MA5,1),2);//均线是否连续周期两个下一代
PARTLINE(BB,MA5,COLORGREEN);//如果连续两个周期均线持续,5个周期均线显示为绿色
宽语言
瓦尔斯
数字 MA5;
数字 MA10;
开始
MA5=Ma(收盘价,5);
MA10=Ma(收盘价,10);
PartLine(Every(MA5>Ref(MA5,1),2),MA5,红色);
PartLine(Every(MA5<Ref(MA5,1),2),MA5,绿色);
结尾
练习11
如果K线实体部分在5周期均线上方,则K线显示为红色实心,如果K线实体部分在5周期均线下方,则K线显示为绿色实心,如果实体部分穿越该均线,则K线显示为黄色实心。
麦语言
MA5:MA(C,5);//5周期均线
AA:=MIN(C,O)>=MA5;//收盘价和开盘价同时大于5周期均线,说明K线实体部分在5周期均线之上
BB:=MAX(C,O)<=MA5;//收盘价和开盘价同时小于5周期均线,说明K线实体部分在5周期均线下方
CC:=(C>MA5&&O<MA5)||(C<MA5&&O>MA5);//当开盘价小于收盘价时,开盘价小于5周期均线,且收盘价大于5周期均线;当开盘价大于收盘价时价时,开盘价大于5个周期均线,并且收盘价小于5个周期均线,这两种情况都有一种成立,则说明部分实体突破该线
DRAWCOLORKLINE(AA,COLORRED,0);//如果K线实体部分在5周期均线之上,则K线显示为红色实心
DRAWCOLORKLINE(BB,COLORGREEN,0);//若K线实体部分在5周期均线下方,则K线显示为绿色实心
DRAWCOLORKLINE(CC,COLORYELLOW,0);//如果实体部分该突破均线,则K线显示为黄色实心
宽语言
瓦尔斯
数字 MA5;
数字 MA10;
数字 aa;
数字 bb;
开始
MA5=Ma(收盘价,5);
MA10=Ma(收盘价,10);
aa=Min(收盘,开盘)>=MA5;
bb=Max(收盘价,开盘价)<=MA5;
DrawColorKLine(aa,红色,0);
DrawColorKLine(bb,绿色,0);
DrawColorKLine(aa==0&&bb==0,黄色,0);
结尾
练习12
有夜盘的显示,在夜盘K线上5根周期均线,白盘K线不显示均线。K线根数不足5根的时候,按照实际的K线根数计算均线的数值。
麦语言
N:BARSLAST(DATE<>REF(DATE,1))+1;//当日实际K线根数
AA:=IF(N>=5,MA(C,5),MA(C,N));//若满足K线根数大于等于5,按照5计算均线的数值;若满足K线根数小于5,按照当日实际K线根数计算均线的数值
BB:=TIME<=2400&&TIME>=2100||TIME>=2400&&TIME<=0900;//夜盘时间
MA5或n:IF(BB,AA,NULL);//符合AA条件的均线只在夜盘显示
宽语言
瓦尔斯
数字 N;
数字 aa;
数字 bb;
开始
N=BarsLast(Date!=Ref(Date,1))+1;//分钟周期,当日k线数。
如果(N>=5)
{
aa=Ma(收盘价,5);
}
别的
{
aa=Ma(收盘价,N);
}
bb=时间<=2400&&时间>=2100||时间>=2400&&时间<=0900;
PartLine(bb,aa,红色);
结尾
练习13
在周期分钟上,画当日的黄金分割率线。分别取前一天的最高价、最低价作为黄金分割的两个基点,在这两个基点之间分别做黄金分割,画出比例为0.618、 0.382、0.5的水平线,以及两个基点的水平线。
麦语言
N:=BARSLAST(DATE<>REF(DATE,1))+1;//当日K线根数固定表达方式
H1:=REF(HHV(H,N),N);//前一日的最高价
H2:=REF(LLV(L,N),N);//前一日的最低价
H3:=H1-(H1-H2)*0.382;//在前一日的最高价和前一日的最低价之间做比例为0.382的黄金分割
H4:=H1-(H1-H2)*0.5;//在前一日的最高价和前一日的最低价之间做比例为0.5的黄金分割
H5:=H1-(H1-H2)*0.618; //前一日的最高价和前一日的最低价之间做比例为0.618的黄金分割
DRAWSL(ISLASTBAR,H1,0,1,1,COLORRED);//向左延伸,画前一日的最高价的1个周期长的水平线
DRAWSL(ISLASTBAR,H2,0,1,1,COLORRED);//向左延伸,画前一日的最低价的1个周期长的电平线
DRAWSL(ISLASTBAR,H3,0,1,1,COLORRED);//向左延伸,画前一日的比例为0.382的1个周期长的水平线
DRAWSL(ISLASTBAR,H4,0,1,1,COLORRED);//向左延伸,画前一行的比例为0.5的1个周期长的水平线
DRAWSL(ISLASTBAR,H5,0,1,1,COLORRED);//向左延伸,画前一日的比例为0.618的1个周期长的水平线
宽语言
瓦尔斯
数字 h1;
数字 h2;
数字 h3;
数字 h4;
数字 h5;
开始
h1=Ref(HHV(最高价,DayBarPos),DayBarPos);
h2=Ref(LLV(低,DayBarPos),DayBarPos);
h3=h1-(h1-h2)*0.382;
h4=h1-(h1-h2)*0.5;
h5=h1-(h1-h2)*0.618;
DrawSL(BarStatus==2,h1,0,1,1,红色);
DrawSL(BarStatus==2,h2,0,1,1,红色);
DrawSL(BarStatus==2,h3,0,1,1,红色);
DrawSL(BarStatus==2,h4,0,1,1,红色);
DrawSL(BarStatus==2,h5,0,1,1,红色);
结尾
函数总结
// 宽语言中没有islastbar
BarStatus 返回K线图当根K线的状态值。
方式:BarStatus 返回K线替换当根K线的状态值。
返回值0表示为第一根K线,返回1表示为中间的普通的K线,返回值为2表示最后一根K线。
我用BarStatus==2代替islastbar
练习14
IF合约,30分钟周期上,把每日的最高价最低价框起来。
麦语言
N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,当日K线数。
DRAWLINE(DAYBARPOS=1,REFX(HHV(H,N),18),DAYBARPOS=1,REFX(LLV(L,N),18),COLORBLUE),LINETHICK1;//第一条竖线,条件是每天的第一根K线,画线的位置是当日的最高价到最低价。
DRAWLINE(ISLASTKLINE=1,HHV(H,N),ISLASTKLINE=1,LLV(L,N),COLORBLUE),LINETHICK1;//第二条竖线,是每天的最后一根细K线
DRAWSL(ISLASTKLINE=1,HHV(H,N),0,-(N-1),0,COLORBLUE),LINETHICK1;//第一条横线
DRAWSL(ISLASTKLINE=1,LLV(L,N),0,-(N-1),0,COLORBLUE),LINETHICK1;//第二条横线
宽语言
开始
DrawLine(BarStatus==2,HHV(High,daybarpos),BarStatus==2,LLV(low,DayBarPos),blue);
DrawSL(BarStatus==2,LLV(Low,DayBarPos),0,-(DayBarPos-1),0,蓝色);
结尾
//宽语言无法在定位当天第一根k线的前提条件下,刚性取当天最高价和最低价,所以我只画生长右侧和下面的线条,没有完全框起来。
练习15
当MACD死叉后,
判断本次死叉到金叉之间DIFF的顶峰、K线最高价,
和上次死叉到金叉之间的DIFF顶点、K线最高价作比较。
如果K线创新高,但是DIFF值没有创新高,
现在认为顶背离条件成立。
麦语言
DIFF..EMA(CLOSE,12)-EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动干做差。
DEA..EMA(DIFF,9);//DIFF的M个周期指数平滑移动平均
MACD:2*(DIFF-DEA),NODRAW;//定义MACD,不画线
JC: CROSS(DIFF,DEA);//MACD金叉
SC:CROSSDOWN(DIFF,DEA);//MACD死叉
N:=BARSLAST(JC)+1;
HDIFF1:VALUEWHEN(JC,HHV(DIFF,BARSLAST(SC)+1));//本次死叉到金叉之间DIFF的顶点、
HH1:VALUEWHEN(JC,HHV(H,BARSLAST(SC)+1));//本次死叉到金叉之间K线最高价
HDIFF2:REF(HHV(DIFF,N),N);//上次死叉到金叉之间的DIFF顶部 死叉,金叉,死叉,金叉
HH2:REF(HHV(H,N),N);//上次死叉到金叉之间的K线顶部;
DBL:HDIFF1<=HDIFF2&&HH1>=HH2;//如果K线创新高,但DIFF值没创新高,则认为顶背离条件成立。
宽语言
参数
数字短长度(12);
数字 LongLength(26);
数字 M(9);
瓦尔斯
数字差异;
数值 DEA;
数字 jc;
数字 sc;
数字N1;
数字N2;
数字 HH1;
数字 HH2;
数字 HDIFF1;
数字 HDIFF2;
数字 DBL;
开始
DIFF = Ema(Close, ShortLengh) - Ema(Close, LongLength);//短周期与长周期的收盘价的指数平滑移动干做差。
DEA = Ema(DIFF,M);//DIFF的M个周期指数平滑移动平均
jc=交叉(DIFF,DEA);
sc=CrossDown(DIFF,DEA);
N1=最后一根柱(jc)+1;
N2=最后的柱数(sc)+1;
HDIFF1=ValueWhen(jc,HHV(DIFF,N2));
HH1=ValueWhen(jc,HHV(高,N2));
HDIFF2=Ref(HHV(高,N1),N1);
HH2=Ref(HHV(高,N1),N1);
DBL=HDIFF1<=HDIFF2&&HH1>=HH2;
PlotNumeric("顶背离",DBL);
结尾
练习16
当价格同时向上突破5周期均线、10周期均线、20周期均线以及这三条均线多头排列的时候,买开仓
当价格同时向下突破5周期均线、10周期均线、20周期均线以及这三条均线空头排列的时候,卖开仓
5周期均线下穿10周期均线,卖平仓
5周期均线穿10周期均线,买平仓
麦语言
MA5:MA(C,5);
MA10:MA(C,10);
MA20:MA(C,20);
AA:MA5>MA10&&MA10>MA20;//多头排列
BB:CROSSUP(C,MA5)&&CROSSUP(C,MA10)&&CROSSUP(C,MA20);//价格同时向上突破5周期均线、10周期均线、20周期均线
AA&&BB,BK(1);//当价格同时向上突破5周期均线、10周期均线、20周期均线并且这三条均线多头排列的时候,买开仓
CC:MA5<MA10&&MA10<MA20;//空头排列
DD:CROSSDOWN(C,MA5)&&CROSSDOWN(C,MA10)&&CROSSDOWN(C,MA20);//价格同时向下突破5周期均线、10周期均线、20周期均线
CC&&DD,SK(1);//当价格同时向下突破5周期均线、10周期均线、20周期均线并且这三条均线空头排列的时候,卖开仓
CROSSDOWN(MA5,MA10),SP(1);//5个周期均线穿下10个周期均线,卖平仓
CROSSUP(MA5,MA10),BP(1);//5个周期均线上穿10个周期均线,买平仓
宽语言
瓦尔斯
数字 MA5;
数字 MA10;
数字MA20;
开始
MA5=Ma(收盘价,5);
MA10=Ma(收盘价,10);
MA20=Ma(收盘价,20);
if(MA5>MA10&&MA10>MA20&&交叉(收盘价,MA5)&&交叉(收盘价,MA10)&&交叉(收盘价,MA20))
{
BK(1);
}
if(MA5<MA10&&MA10<MA20&&CrossDown(收盘价,MA5)&&CrossDown(收盘价,MA10)&&CrossDown(收盘价,MA20))
{
SK(1);
}
if(CrossDown(MA5,MA10))
{
SP(1);
}
如果(交叉(MA5,MA10))
{
血压(1);
}
结尾
练习17
K值在20以下,金叉开多。
K值突破65平仓,
K值在20到65之间无论金叉死叉都不平仓。
K在65以上,死叉空仓,
K值到20,平仓。
在20到65之间,无论死叉金叉都不开平仓。
麦语言
RSV:=(收盘-LLV(低,9))/(HHV(高,9)-LLV(低,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
K>20&&CROSS(K,D),BK;
K>65,SP;
K>65&&交叉(K,D),SK;
K<20,BP;
自动过滤器;
宽语言
参数
数字长度(9);
数字长度1(3);
数字长度2(3);
瓦尔斯
数字 RSV;
数字K;
数字 D;
开始
RSV = (Close - LLV(Low,Length)) / (HHV(High,Length) - LLV(Low,Length)) * 100;//收盘价与N周期最低值做差,N最高周期值与N周期最低做差值,做比值之间的两差定义为RSV
K = Sma(RSV,Length1,1);//RSV的移动平均
D = Sma(K,Length2,1);//K值的移动平均值
如果(K<20&&交叉(K,D))
{
BK;
}
如果(K>65)
{
SP;
}
如果(K>65&&CrossDown(K,D))
{
SK;
}
如果(K<20)
{
血压;
}
结尾
练习18
5,10周期均线金叉,开仓1手多单
目前的5均线连续2个周期上涨开多仓3手,
未平仓前
价格每上涨2个点加仓1手
5,10均线死叉同时KD死叉平仓
麦语言
MA5:MA(C,5);
MA10:MA(C,10);
MASC:CROSSDOWN(MA5,MA10);//5,10周期均线死叉
MAJC:CROSS(MA5,MA10);//5,10周期均线金叉
BKVOL=0&&MAJC,BK(1);//多头理论持仓为0且5,10周期均线金叉时,开仓1手多单
BB:EVERY(MA5>REF(MA5,1),2)=1//当前的5均线连续2个上涨周期
BKVOL=1&&BB,BK(3);//多头理论持仓为1且当前的5均线连续2周期上涨时,开多仓3手
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;//未排队随机值(RSV)=(收盘价-N日内最低价)/(N日内最高价-N日内最低价)*100
K:SMA(RSV,3,1);//K=RSV的M1日加权移动平均
D:SMA(K,3,1);//.D=K的M2日加权移动平均
KDSC:=CROSS(D,K);//KD死叉
BKVOL>0&&C>BKPRICE+MINPRICE*2,BK(1);//价格每上涨2个点加仓1手
BKVOL>0&&MASC&&KDSC,CLOSEOUT;//5,10均线死叉同时KD死叉平仓
宽语言
参数
数字长度(9);
数字长度1(3);
数字长度2(3);
瓦尔斯
数字 MA5;
数字 MA10;
数字 RSV;
数字K;
数字 D;
开始
MA5=Ma(收盘价,5);
MA10=Ma(收盘价,10);
RSV = (Close - LLV(Low,Length)) / (HHV(High,Length) - LLV(Low,Length)) * 100;//收盘价与N周期最低值做差,N最高周期值与N周期最低做差值,做比值之间的两差定义为RSV
K = Sma(RSV,Length1,1);//RSV的移动平均
D = Sma(K,Length2,1);//K值的移动平均值
如果(BKVol==0&&交叉(MA5,MA10))
{
BK(1);
}
if(BKVol==1&&Every(MA5>Ref(MA5,1),2)==1)
{
BK(3);
}
If(BKVol>0&&平仓>BK价格+最低价格*2)
{
BK(1);
}
If(BKVol>0&&CrossDown(MA5,MA10)&&CrossDown(K,D))
{
SP(BKVol);
}
结尾
练习19
K线向上突破120周期均线,并且当根K线开盘价小于收盘价,且均线向上,
当价格突破均线的那根K线的最高价买入时,开仓占用可用资金的30%
多单:止损1%,止盈5%
K线后续突破120周期均线,并且当根k线开盘价大于收盘价,且均线向上,
当价格突破均线的那根K线的最低价卖出,开仓占用可用资金的30%
空单:止损1%,止盈5%
麦语言
MA120:=MA(C,120);//定义120周期均线,加载时不显示线
AA:=CROSSUP(C,MA120);//K线向上突破120周期均线
BB:=OPEN<CLOSE;//当根K线开盘价小于收盘价
CC:=MA120>REF(MA120,1);//均线向上
AAA:=AA&&BB&&CC;//K线向上突破120周期均线,并且当根K线开盘价小于收盘价,且均线向上,
HH:=VALUEWHEN(AAA,H);////突破均线的那根K线的最高价
K:=MONEY*0.3/(C*MARGIN*UNIT+FEE);//模组子账户可用资金的30%可以开仓的手数
AAA&&C>HH,BK(K);//当价格突破均线的那根K线的最高价买入,开仓占用可用资金的30%
TMP1:=C<BKPRICE*(1-0.01),SP(BKVOL);//多单止损1%
TMP3:=C>BKPRICE*(1+0.05),SP(BKVOL);//多单止盈5%
DD:=CROSSDOWN(C,MA120);//K线突破120周期均线
EE:OPEN>CLOSE;//当根K线开盘价大于收盘价
FF:MA120>REF(MA120,1);//均线向上,
DD&&EE&&&FF;//K线突破120周期均线,并且当根K线开盘均价大于收盘价且,线向上,
LL:=LLV(L,AA);/突破均线的那根K线的最低价
C>LL,SK(Z);//当价格突破均线的那根K线的最低价卖出,开仓占可用资金的30%
TMP2:=C>SKPRICE*(1+0.01),BP(SKVOL);//空单止损1%
TMP4:=C<SKPRICE*(1-0.05),BP(SKVOL);//空单止盈5%
宽语言
瓦尔斯
数字MA120;
数字 AA;
数字 BB;
数字法学硕士;
数字 HH;
开始
MA120=Ma(收盘价,120);
AA=十字(收盘,MA120)&&开<收盘&&MA120>Ref(MA120,1);
HH=ValueWhen(AA,高);
如果(AA&&关闭>HH)
{
BK(资金*0.3/(平仓*保证金比例+费用));
}
If(收盘价<BK价格*(1-0.01))
{
SP(bkvol);
}
if(收盘价>BK价格*(1+0.05))
{
SP(BKVol);
}
BB=CrossDown(收盘,MA120)&&开盘>收盘&&MA120>Ref(MA120,1);
LL=ValueWhen(BB,低);
如果(收盘>LL)
{
SK(资金*0.3/(平仓*保证金比例+费用));
}
If(收盘价>SK价格*(1+0.1))
{
血压(SKVol);
}
If(收盘价<SK价格*(1-0.05))
{
血压(SKVol);
}
结尾
//wh9里面没有找到unit函数
练习20
当工业品5日均线大于20日均线后,
5寸,
如果铜的5日均线大于10日均线,
则入场铜,
超过5天,
风险加大,招生力度不大;
如果铜的5日均线大于10日均线先出现,
工业品5日均线大于20日均线就入场。
开仓后
涨幅超过开仓价+开仓时2.5倍ATR业绩盈利条件,
下跌超过开仓价-开仓时1.5倍ATR业绩亏损条件。
麦语言
//新建被引用指标JC,JC1
MA5:MA(C,5);
MA20:MA(C,20);
JC1:=MA5>MA20;
//保存指标,命名为AA
//加载到铜k线上
//定义ATR(真实平均波动范围,该指标主要用于缓慢价格的波动)
TR:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//求最高减价最低价,一个周期前的收盘价下降最高价的绝对值,一个周期前的收盘价下降最低价的绝对值,这三个值中的顶峰
ATR:MA(TR,14);//求14个周期内的TR的简单移动平均值
//查到工业品的文华码是7193
//创建跨合同模型
#CALL[7193,AA] 作为吉普赛人
MA5:MA(C,5);
MA10:MA(C,10);
JC1:GYP.JC1;
JC:=MA5>MA10;
NN:=BARSLAST(JC);
JC1&&NN<=5&&JC,BK;//当工业品5日均线大于20日均线后,5美元,如果铜的5日均线大于10日均线,则入场铜
VALUEWHEN(JC&&JC1,BARSLAST(JC1)<BARSLAST(JC))=1,BK;//如果铜的5日均线大于10日均线先出现,工业品5日均线大于20日均线就入场。
ISLASBK&&C>BKPRICE+2.5*REF(ATR,BARSBK),SP;//上涨超过开仓价+开仓时2.5倍ATR走势盈利条件,
ISLASBK&&C<BKPRICE-1.5*REF(ATR,BARSBK),SP;//下跌超过开仓价-开仓时1.5倍ATR盈利状况。
自动过滤器;
//保存模型,命名为LX20
宽语言
//新建被引用指标JC1
瓦尔斯
数字 MA5;
数字MA20;
数字JC1;
开始
MA5=Ma(收盘价,5);
MA20=Ma(收盘价,20);
JC1=MA5>MA20;
结尾
//保存指标,命名为lx20AA
//加载到铜线上
//创建跨合同模型
参数
数字长度(26);
瓦尔斯
数字TR;
数值 ATR;
数字 MA5;
数字 MA10;
数字 JC;
数字JC1;
数值神经网络;
进口
#Call["7193",lx20AA] 作为 GYP
开始
TR = 真实范围;
ATR = Ma(TR, Length);//求长度个周期内的TR的简单移动平均
绘图数值(“TR”,TR);
绘图数值(“ATR”,ATR);
//查到工业品的文华码是7193
JC1=GYP.JC1;
JC=MA5>MA10;
NN=最后一根柱子(JC);
如果(JC1&&NN<=5&&JC)
{
BK;
}
If(JC&&JC1&&BarsLast(JC1)<BarsLast(JC))
{
BK;
}
if(IsLastBK&&Close>BKPrice+2.5*Ref(ATR,BarsBK))
{
SP;
}
if(IsLastBK&&Close<BKPrice-1.5*Ref(ATR,BarsBK))
{
SP;
}
结尾
/*跨合约必须写到设置跨合约跨周期引用关键字部分中,如下图
不能写到主程序里,写在主程序中测试不会通过*/