老师请教一个源码改写问题 (文华财经WH8赢智V8.2)

投资者咨询:老师请教一个源码改写问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-23 18:16
源码
todayvolatility:=STD(CLOSE,30);//计算30周期收盘价的标准差
yesterdayvolatility:=STD(REF(CLOSE,1),30);//计算30周期前一根k线收盘价的标准差
deltavolatility:=(todayvolatility-yesterdayvolatility)/todayvolatility;//计算2个标准差的振幅
lookbackdays:=POW(20*(1+deltavolatility),BARPOS);//计算20*(1+deltavolatility) 的幂级数
lookbackdays1:=IFELSE(lookbackdays>60,60,IFELSE(lookbackdays<20,20,lookbackdays));//当幂级数大于60取60小于20取20在这2者之间取当前值
lookbackdays:=POW(20*(1+deltavolatility),BARPOS);//计算20*(1+deltavolatility) 的幂级数  
的意思是否是计算20*(1+deltavolatility)的barpos次幂,barpos代表到现在的周期数?


 
技术人员回复
日期:2018-8-23 18:24
 是的,lookbackdays是求20*(1+DELTAVOLATILITY)的BARPOS次幂

其中BARPOS是返回本地已有的K线根数,具体的用法可以参考函数说明理解一下
投资者咨询:老师请教一个源码改写问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-23 18:16
 谢谢老师,我看下面一句lookbackdays1:=IFELSE(lookbackdays>60,60,IFELSE(lookbackdays<20,20,lookbackdays));//当幂级数大于60取60小于20取20在这2者之间取当前值;
如果这样的话这一句没有意义,所有的值肯定都大于60的。这个策略也是我看贴在网上的源码,你们文华的工程师翻译的。
技术人员回复
日期:2018-8-23 21:28
 未必都大于60的 

在前几根的时候BARPOS较小的时候POW的返回值也是不大的


投资者咨询:老师请教一个源码改写问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-23 18:16
老师麻烦帮我改写成麦语言模型源码
 Params

    Numeric ceilingAmt(60);
    Numeric floorAmt(20);
    Numeric bolBandTrig(2.00);
Vars
    Numeric lookBackDays(20);         
    Numeric todayVolatility(0);
    Numeric yesterDayVolatility(0);
    Numeric deltaVolatility(0);
    NumericSeries buyPoint(0);
    NumericSeries sellPoint(0);
    NumericSeries longLiqPoint(0);
    NumericSeries shortLiqPoint(0);
    Numeric upBand(0);
    Numeric dnBand(0);
    Numeric MidLine(0);
    Numeric Band(0);
Begin
    todayVolatility = StandardDev(Close,30,1);
    yesterDayVolatility = StandardDev(Close[1],30,1);
    deltaVolatility = (todayVolatility - yesterDayVolatility)/todayVolatility;
    lookBackDays = lookBackDays * (1 + deltaVolatility);
    lookBackDays = Round(lookBackDays,0);
    lookBackDays = Min(lookBackDays,ceilingAmt);
    lookBackDays = Max(lookBackDays,floorAmt);
    MidLine = AverageFC(Close,lookBackDays);
    Band = StandardDev(Close,lookBackDays,bolBandTrig);
    upBand = MidLine + bolBandTrig * Band;
    dnBand = MidLine - bolBandTrig * Band;
    buyPoint = Highest(High[1],lookBackDays);
    sellPoint = Lowest(Low[1],lookBackDays);
    longLiqPoint = Average(Close[1],lookBackDays);
    shortLiqPoint = Average(Close[1],lookBackDays);

 if(Close > upBand)  
 {
  If(CrossOver(high,buyPoint))   Buy(1,max( buyPoint, Low ));
  Commentary("多头触发价:"+Text(buyPoint));
 }

 if(Close < dnBand)
 {
  If(CrossUnder(Low,sellPoint ))      SellShort(1,min( sellPoint , High ));
  Commentary("空头触发价:"+Text(sellPoint));
 }
 
 if(MarketPosition == 1)
 {  
  If(CrossUnder(Low,longLiqPoint ))      Sell(1,min( longLiqPoint , High ));
  Commentary("多头退出:"+Text(longLiqPoint));
 }

 if(MarketPosition == -1)
 {
  If(CrossOver(high,shortLiqPoint))      BuyToCover(1,max( shortLiqPoint, Low ));
  Commentary("多头退出:"+Text(shortLiqPoint));
 }
End

技术人员回复
日期:2018-8-23 22:34
 分析5楼源码与文华MQ软件的宽语言相近

如果您有需求,可以通过MQ软件改写实现的,请问您是否需要呢?


投资者咨询:老师请教一个源码改写问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-23 18:16
 可否改编成麦语言?
投资者咨询:老师请教一个源码改写问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-23 18:16
这是你们工程师先前改编贴在网站上面的 绿色部分是否改的有问题?
     todayvolatility:=STD(CLOSE,30);//计算30周期收盘价的标准差
yesterdayvolatility:=STD(REF(CLOSE,1),30);//计算30周期前一根k线收盘价的标准差
deltavolatility:=(todayvolatility-yesterdayvolatility)/todayvolatility;//计算2个标准差的振幅
lookbackdays:=POW(20*(1+deltavolatility),BARPOS);//计算20*(1+deltavolatility) 的幂级数
lookbackdays1:=IFELSE(lookbackdays>60,60,IFELSE(lookbackdays<20,20,lookbackdays));//当幂级数大于60取60小于20取20在这2者之间取当前值
mid:=MA(CLOSE,lookbackdays1);//取幂级数周期收盘价均值。
upband:=mid+2*STD(CLOSE,lookbackdays1);//确定上轨
dnband:=mid-2*STD(CLOSE,lookbackdays1);//确定下轨
buypoint:=HV(HIGH,lookbackdays1);//计算前一周期lookbackdays1周期内最高价的最大值。
sellpoint:=LV(LOW,lookbackdays1);//计算前一周期lookbackdays1周期内最低价的最小值。
longliqpoint:=MA(CLOSE,lookbackdays1);//lookbackdays1周期收盘价均值
shortliqpoint:=MA(CLOSE,lookbackdays1);//lookbackdays1周期收盘价均值
CLOSE<dnband,SPK;//当最新价小于下轨,卖平开
LOW<=longliqpoint,SP;//当最低价不大于longliqpoint,卖平
CLOSE>upband,BPK;//当最新价大于上轨,买平开
HIGH>=shortliqpoint,BP;//当最高价不小于shortliqpoint,买平
AUTOFILTER;
技术人员回复
日期:2018-8-24 8:21

分析5楼源码与6楼源码是有差异的

 

如果需要5楼源码可以改写,可以通过MQ实现,MQ官网:http://www.wenhua.com.cn/

 

修改为MQ源码:

 

 Params
    Numeric ceilingAmt(60);
    Numeric floorAmt(20);
    Numeric bolBandTrig(2);
Vars
    Numeric lookBackDays(20);        
    Numeric todayVolatility(0);
    Numeric yesterDayVolatility(0);
    Numeric deltaVolatility(0);
    NumericSeries buyPoint(0);
    NumericSeries sellPoint(0);
    NumericSeries longLiqPoint(0);
    NumericSeries shortLiqPoint(0);
    Numeric upBand(0);
    Numeric dnBand(0);
    Numeric MidLine(0);
    Numeric Band(0);
Begin
    todayVolatility = StandardDev(Close,30,1);
    yesterDayVolatility = StandardDev(Close[1],30,1);
    deltaVolatility = (todayVolatility - yesterDayVolatility)/todayVolatility;
    lookBackDays = lookBackDays * (1 + deltaVolatility);
    lookBackDays = Round(lookBackDays,0);
    lookBackDays = Min(lookBackDays,ceilingAmt);
    lookBackDays = Max(lookBackDays,floorAmt);
    MidLine = AverageFC(Close,lookBackDays);
    Band = StandardDev(Close,lookBackDays,bolBandTrig);
    upBand = MidLine + bolBandTrig * Band;
    dnBand = MidLine - bolBandTrig * Band;
    buyPoint = Highest(High[1],lookBackDays);
    sellPoint = Lowest(Low[1],lookBackDays);
    longLiqPoint = Average(Close[1],lookBackDays);
    shortLiqPoint = Average(Close[1],lookBackDays);

 if(Close > upBand) 
 {
  If(Cross(high,buyPoint))   Buy(1,max( buyPoint, Low ));
  Commentary("多头触发价:"+Text(buyPoint));
 }

 if(Close < dnBand)
 {
  If(CrossDown(Low,sellPoint ))      SellShort(1,min( sellPoint , High ));
  Commentary("空头触发价:"+Text(sellPoint));
 }
 
 if(MarketPosition == 1)
 { 
  If(Cross(Low,longLiqPoint ))      Sell(1,min( longLiqPoint , High ));
  Commentary("多头退出:"+Text(longLiqPoint));
 }

 if(MarketPosition == -1)
 {
  If(Cross(high,shortLiqPoint))      BuyToCover(1,max( shortLiqPoint, Low ));
  Commentary("多头退出:"+Text(shortLiqPoint));
 }
End

投资者咨询:老师请教一个源码改写问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-23 18:16
 9楼源码麻烦帮我翻成麦语言。