请老师帮忙把这段wh8代码,转换为MQ代码 (文华财经WH8赢智V8.2)

投资者咨询:请老师帮忙把这段wh8代码,转换为MQ代码 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-7-5 11:45
 

SHORT:=12;
LONG:=26;
M:=9;
T大:=1;//  N倍MACD

//************************30倍MACD指标*****************************
T大DIFF:EMA(CLOSE,SHORT*T大) - EMA(CLOSE,LONG*T大),DOT,NOTEXT;//短周期与长周期的收盘价的指数平滑移动平均值做差。
T大DEA :EMA(T大DIFF,M*T大),DASHDOT,NOTEXT;//DIFF的M个周期指数平滑移动平均
T大MD  :2*(T大DIFF-T大DEA),COLORSTICK,NOTEXT;//  DIFF减DEA的2倍画线 
T大D:=COUNT(1,0)/COUNT(CROSSUP(T大DIFF,T大DEA),0),COLORRED,NODRAW;//求出金叉的,平均周期
T大F:=IF(BARPOS>T大D*10,T大D*10,BARPOS),NODRAW;//基础分析周期数
T大上标:=MAX(HHV(T大DIFF,T大F),HHV(T大MD,T大F));
T大下标:=MIN(LLV(T大DIFF,T大F),LLV(T大MD,T大F));
T大K标:=MA(ABS(H-L),T大F*1);//求1倍TO周期内的,高低点这间的平均波动幅度,也用于标注的参考点

T大UP:BARSLASTCOUNT(T大MD>=0),NODRAW;//金叉,动态上涨周期
T大DN:BARSLASTCOUNT(T大MD<=0),NODRAW;//死叉,动态下跌周期
T大HZG:=IF(T大DN=1,HHV(T大MD,REF(T大UP,1)),NULL),NODRAW;//求出红柱的最高点
T大LZD:=IF(T大UP=1,LLV(T大MD,REF(T大DN,1)),NULL),NODRAW;//求出绿柱的最低点
T大HZGM:SUM(T大HZG,0)/COUNT(NOT(ISNULL(T大HZG)),0),DASHDOT,COLORRED, NOTEXT;//求出红柱的最高点的平均值
T大LZDM:SUM(T大LZD,0)/COUNT(NOT(ISNULL(T大LZD)),0),DASHDOT,COLORCYAN,NOTEXT;//求出绿柱的最低点的平均值


//-----求-----金叉,死叉动态周期数**量化*********************************
T大UP前:=VALUEWHEN(T大UP=1,LLVBARS(L,REF(T大DN,1))),NODRAW;//金叉时,前面最低价所在周期
T大UP全:=T大UP+IF(ISNULL(T大UP前),0,T大UP前),NODRAW;//金叉,最低价全面动态上涨周期
T大DN前:=VALUEWHEN(T大DN=1,HHVBARS(H,REF(T大UP,1))),NODRAW;
T大DN全:=T大DN+IF(ISNULL(T大DN前),0,T大DN前),NODRAW;//死叉,最高价全面动态下跌周期

//-----求-并记录---金叉,死叉对应的动态最高价,最低价------------
T大GJ:=VALUEWHEN(T大UP>0,HHV(H,T大UP全)),NODRAW;//最高点 
T大GDIFF:=VALUEWHEN(T大UP>0,HHV(T大DIFF,T大UP)),NODRAW;
T大HZ:=VALUEWHEN(T大MD>=0,SUM(T大MD,T大UP)),COLORMAGENTA,NODRAW;//计算,红柱面积

T大DJ:VALUEWHEN(T大DN>0,LLV(L,T大DN全)),NODRAW;//最低点 
T大DDIFF:=VALUEWHEN(T大DN>0,LLV(T大DIFF,T大DN)),NODRAW;
T大LZ:=VALUEWHEN(T大MD<=0,SUM(T大MD,T大DN)),NODRAW;

T大涨幅:=VALUEWHEN(T大UP>0,T大GJ-T大DJ),NODRAW;
T大跌幅:=VALUEWHEN(T大DN>0,T大DJ-T大GJ),NODRAW;
T大涨比:VALUEWHEN(T大UP>0,T大涨幅/T大DJ*100),NODRAW;
T大跌比:=VALUEWHEN(T大DN>0,T大跌幅/T大GJ*100),NODRAW;
T大JZB:=IF(T大DN=1,T大涨比,NULL),NODRAW;
T大JUP:=IF(T大DN=1,REF(T大UP,1),NULL),NODRAW;
T大JDB:=IF(T大UP=1,T大跌比,NULL),NODRAW;
T大JDN:=IF(T大UP=1,REF(T大DN,1),NULL),NODRAW;

T大均涨:SUM(T大JZB,0)/COUNT(NOT(ISNULL(T大JZB)),0),COLORRED,NODRAW;//求出T大F*1周期内,平均涨幅
T大涨周:SUM(T大JUP,0)/COUNT(NOT(ISNULL(T大JUP)),0),COLORRED,NODRAW;//求出T大F*1周期内,平均上涨周期
T大均跌:SUM(T大JDB,0)/COUNT(NOT(ISNULL(T大JDB)),0),COLORCYAN,NODRAW;//求出T大F*1周期内,平均跌幅
T大跌周:SUM(T大JDN,0)/COUNT(NOT(ISNULL(T大JDN)),0),COLORCYAN,NODRAW;//求出T大F*1周期内,平均下跌周期

//T大多井: IF(T大DN>0 AND HHV(H,T大DN)>T大GJ AND T大MD<=REF(T大MD,1),T大上标*0.6,NULL),LINETHICK4;//多头陷阱,动态定义
//T大多井1:IF(T大DN>0 AND HHV(H,T大DN)>T大GJ AND T大MD<=REF(T大MD,1) AND (HHV(H,T大DN)-L)/HHV(H,T大DN)>0.06,T大上标*0.8,NULL),LINETHICK3;//多头陷阱,动态定义

//----------求各个金叉结束时(死叉开始)到当前K线 动态周期------------
T大UP1:=BARSLAST(T大DN=1)+1,NODRAW;//BARSLAST(CROSSUP(T大DIFF,T大DEA))+1
技术人员回复
日期:2018-7-5 13:23

 您1楼思路很简单,用wh8就可以直接实现,为什么非要转用MQ呢
 
wh8就是为您这样的个人程序化用户设计的,麦语言编写简单易懂,自己就可以编写契合自己思路的模型


而MQ适合有专业编程团队的机构用户使用,相应的语言也更复杂,没有编程基础的话学习难度很大
 
所以如果您没有别的特别需求,建议继续使用wh8软件,更适合您

投资者咨询:请老师帮忙把这段wh8代码,转换为MQ代码 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-7-5 11:45
 你们不是很多功能wh8,都不提供了吗,计划向这个MQ转型啊
技术人员回复
日期:2018-7-5 14:53

 MQ不是wh8的转型,两款软件的定位不同,以后wh8也会一直提供服务的

 

wh9定位在大型机构和专业量化团队,功能设计也是针对机构大资金量的需求
 
比如:套利程序化、程序化交易池、对冲交易、股票T+0程序化、期权等等
 
WH8面向个人及小机构做程序化使用
 
如果个人交易者对上述功能有需求,那可以应用MQ版本实现,如果没有特殊需求,继续使用wh8就可以了。您了解一下

投资者咨询:请老师帮忙把这段wh8代码,转换为MQ代码 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-7-5 11:45
 我就是想改成MQ代码,可以帮忙吗?
技术人员回复
日期:2018-7-5 22:20
 改写为MQ模型较为复杂,明日由相关同事分析后给您回复
技术人员回复
日期:2018-7-6 11:46

参考:

 

Params
 Numeric SH(12);
 Numeric LowO(26);
 Numeric M(9);
 Numeric T大(1);//  N倍MACD
Vars
 Numeric T大DIFF;
 Numeric T大DEA;
 Numeric T大MD;
 Numeric T大D;
 Numeric T大F;
 Numeric T大上标;
 Numeric T大下标;
 Numeric T大K标;
 Numeric T大UP;
 Numeric T大DN;//死叉,动态下跌周期
 Numeric T大HZG;//求出红柱的最高点
 Numeric T大LowZD;//求出绿柱的最低点
 Numeric T大HZGM;//求出红柱的最高点的平均值
 Numeric T大LowZDM;//求出绿柱的最低点的平均值
 Numeric T大UP前;//金叉时,前面最低价所在周期
 Numeric T大UP全;//金叉,最低价全面动态上涨周期
 Numeric T大DN前;
 Numeric T大DN全;//死叉,最高价全面动态下跌周期
 Numeric T大GJ;//最高点
 Numeric T大GDIFF;
 Numeric T大HZ;//计算,红柱面积
 Numeric T大DJ;//最低点
 Numeric T大DDIFF;
 Numeric T大LowZ;
 Numeric T大涨幅;
 Numeric T大跌幅;
 Numeric T大涨比;
 Numeric T大跌比;
 Numeric T大JZB;
 Numeric T大JUP;
 Numeric T大JDB;
 Numeric T大JDN;
 Numeric T大均涨;
 Numeric T大涨周;
 Numeric T大均跌;
 Numeric T大跌周;
 Numeric T大UP1;

Begin
//************************30倍MACD指标*****************************
T大DIFF=ema(Close,SH*T大) - ema(Close,LowO*T大) ;//短周期与长周期的收盘价的指数平滑移动平均值做差。
T大DEA =ema(T大DIFF,M*T大);//DIFF的M个周期指数平滑移动平均
T大MD  =2*(T大DIFF-T大DEA);//  DIFF减DEA的2倍画线
T大D=COUNT(1,0)/COUNT(CROSSUP(T大DIFF,T大DEA),0);//求出金叉的,平均周期
IF(BARPOS>T大D*10)//基础分析周期数
{
T大F=T大D*10;
}
Else
{
T大F=BARPOS;
}
T大上标=MAX(HHV(T大DIFF,T大F),HHV(T大MD,T大F));
T大下标=MIN(LLV(T大DIFF,T大F),LLV(T大MD,T大F));
T大K标=MA(ABS(High-Low),T大F*1);//求1倍TO周期内的,高低点这间的平均波动幅度,也用于标注的参考点


T大UP=BARSLASTCOUNT(T大MD>=0);//金叉,动态上涨周期
T大DN=BARSLASTCOUNT(T大MD<=0);//死叉,动态下跌周期
IF(T大DN==1)//求出红柱的最高点
{
T大HZG=HHV(T大MD,REF(T大UP,1));
}
Else
{
T大HZG=InvalidNumeric;
}
IF(T大UP==1)//求出绿柱的最低点
{
T大LowZD=LLV(T大MD,REF(T大DN,1));
}
Else
{
T大LowZD=InvalidNumeric;
}
T大HZGM=SUM(T大HZG,0)/COUNT(NOT(ISNULL(T大HZG)),0);//求出红柱的最高点的平均值
T大LowZDM=SUM(T大LowZD,0)/COUNT(NOT(IsNull(T大LowZD)),0) ;//求出绿柱的最低点的平均值

 


//-----求-----金叉,死叉动态周期数**量化*********************************
T大UP前=VALUEWHEN(T大UP=1,LLVBARS(Low,REF(T大DN,1)));//金叉时,前面最低价所在周期
IF(IsNull(T大UP前))//金叉,最低价全面动态上涨周期
{
T大UP全=T大UP;
}
Else
{
T大UP全=T大UP+T大UP前;
}
T大DN前=VALUEWHEN(T大DN=1,HHVBARS(High,REF(T大UP,1)));
IF(ISNULL(T大DN前))//死叉,最高价全面动态下跌周期
{
T大DN全=T大DN;
}
Else
{
T大DN全=T大DN+T大DN前;
}

//-----求-并记录---金叉,死叉对应的动态最高价,最低价------------
T大GJ=VALUEWHEN(T大UP>0,HHV(High,T大UP全));//最高点
T大GDIFF=VALUEWHEN(T大UP>0,HHV(T大DIFF,T大UP));
T大HZ=VALUEWHEN(T大MD>=0,SUM(T大MD,T大UP));//计算,红柱面积


T大DJ=VALUEWHEN(T大DN>0,LLV(Low,T大DN全));//最低点
T大DDIFF=VALUEWHEN(T大DN>0,LLV(T大DIFF,T大DN));
T大LowZ=VALUEWHEN(T大MD<=0,SUM(T大MD,T大DN));


T大涨幅=VALUEWHEN(T大UP>0,T大GJ-T大DJ);
T大跌幅=VALUEWHEN(T大DN>0,T大DJ-T大GJ);
T大涨比=VALUEWHEN(T大UP>0,T大涨幅/T大DJ*100);
T大跌比=VALUEWHEN(T大DN>0,T大跌幅/T大GJ*100);
IF(T大DN==1)
{
T大JZB=T大涨比;
}
Else
{
T大JZB=InvalidNumeric;
}
IF(T大DN==1)
{
T大JUP=REF(T大UP,1);
}
Else
{
T大JUP=InvalidNumeric;
}
IF(T大UP==1)
{
T大JDB=T大跌比;
}
Else
{
T大JDB=InvalidNumeric;
}
IF(T大UP==1)
{
T大JDN=REF(T大DN,1);
}
Else
{
T大JDN=InvalidNumeric;
}

T大均涨=SUM(T大JZB,0)/COUNT(NOT(ISNULL(T大JZB)),0);//求出T大F*1周期内,平均涨幅
T大涨周=SUM(T大JUP,0)/COUNT(NOT(ISNULL(T大JUP)),0);//求出T大F*1周期内,平均上涨周期
T大均跌=SUM(T大JDB,0)/COUNT(NOT(ISNULL(T大JDB)),0);//求出T大F*1周期内,平均跌幅
T大跌周=SUM(T大JDN,0)/COUNT(NOT(ISNULL(T大JDN)),0);//求出T大F*1周期内,平均下跌周期


//T大多井= IF(T大DN>0 AND HHV(H,T大DN)>T大GJ AND T大MD<=REF(T大MD,1),T大上标*0.6,InvalidNumeric),LowINETHICK4;//多头陷阱,动态定义
//T大多井1=IF(T大DN>0 AND HHV(H,T大DN)>T大GJ AND T大MD<=REF(T大MD,1) AND (HHV(H,T大DN)-Low)/HHV(H,T大DN)>0.06,T大上标*0.8,InvalidNumeric),LowINETHICK3;//多头陷阱,动态定义


//----------求各个金叉结束时(死叉开始)到当前K线 动态周期------------
T大UP1=BARSLAST(T大DN=1)+1;//BARSLowAST(CROSSUP(T大DIFF,T大DEA))+1
PlotNumeric("T大DJ",T大DJ);
PlotNumeric("T大均涨",T大均涨);
PlotNumeric("T大均跌",T大均跌);
PlotNumeric("T大涨周",T大涨周);
PlotNumeric("T大跌周",T大跌周);
End