回溯只运行一次 (文华财经wh9)

投资者咨询:回溯只运行一次 (文华财经wh9)
来源:文华财经  日期:2018-8-7 18:55
 为什么回溯只运行一次
技术人员回复
日期:2018-8-7 19:00
您可以上传一下完整源码,并说明一下您需要实现什么样的效果

我们帮您分析一下
投资者咨询:回溯只运行一次 (文华财经wh9)
来源:文华财经  日期:2018-8-7 18:55
 Setting
//AddTimes:11;

Params
 Numeric RiskRatio(1);                   // 百分比参数
 Numeric ATRLength(20);                 // 平均波动周期 ATR Length

   Numeric EffRatioLength(10); // 要计算的间隔周期
 Numeric FastAvgLength(2); // 快速平均需要的周期数
 Numeric SlowAvgLength(30); // 慢速平均需要的周期数
Vars
 Numeric MinPoint;                       // 最小变动单位
 NumericSeries AvgTR; // ATR
 Numeric N;                               // N 值
 Numeric TotalEquity;                     // 按最新收盘价计算出的总资产
 Numeric AMAUnits;                     // 交易单位
 
      NumericSeries AMAValue; //定义变量
 
 Numeric ExitHighestPrice;               // 离市时判断需要的N周期最高价
 Numeric ExitLowestPrice;                 // 离市时判断需要的N周期最低价
 Numeric myEntryPrice;                   // 开仓价格
 Numeric myExitPrice;                     // 平仓价格
 NumericSeries preEntryPrice(0);       // 前一次开仓的价格
 NumericSeries PreBreakoutFailure(0); // 前一次突破是否失败
Begin 
    
 MinPoint = MinMove * PriceScale;//最小变动价位
 AvgTR = XAverage(TrueRange,ATRLength);//真实波幅平均值
 N = AvgTR[1]; //一个周期前真实波幅
 TotalEquity =MoneyTot;//权益
 AMAUnits = (TotalEquity * RiskRatio/100) / ContractUnit();//开仓数量
 AMAUnits = IntPart(AMAUnits); // 对小数取整
   //PlotNumeric("ContractUnit() ",ContractUnit() );
//PlotNumeric("AMAUnits ", TotalEquity);
    AMAValue = AdaptiveMovAvg(Close, EffRatioLength, FastAvgLength, SlowAvgLength);   

PlotNumeric("AdpMa",AMAValue);

// ExitLowestPrice = Lowest(Low[1],teLength);//一个周期前teLength周期最高价
 

 // 当不使用过滤条件,或者使用过滤条件并且条件为PreBreakoutFailure为True进行后续操作
 If(MarketPosition == 0 && PreBreakoutFailure == 0 && PanZheng ==0 )
 {
// 突破开仓
If(High > (AMAValue + 1.5*N) && AMAUnits >= 1)
{
 // 开仓价格取突破上轨+一个价位和最高价之间的较小值,这样能更接近真实情况,并能尽量保证成交
 myEntryPrice = Min(High,AMAValue + MinPoint);
 myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice); // 大跳空的时候用开盘价代替
 preEntryPrice = myEntryPrice;
 Buy(AMAUnits,myEntryPrice);
 PreBreakoutFailure = 0;
}
 }


 If(MarketPosition == 1) // 有多仓的情况
// {       
// If(Low < ExitLowestPrice)
// {
//  myExitPrice = Max(Low,ExitLowestPrice - MinPoint);
//  myExitPrice = IIF(myExitPrice > Open, Open,myExitPrice); // 大跳空的时候用开盘价代替
//  Sell(DefaultVol,myExitPrice);    // 数量用0的情况下将全部平仓
// }
// }
 // 止损指令
 If(Low <= preEntryPrice - 2 * N ) //2个价位止损
 {
myExitPrice = preEntryPrice - 2 * N;
Sell(DefaultVol,myExitPrice); // 数量用0的情况下将全部平仓
   PreBreakoutFailure = 1;
 }


End

投资者咨询:回溯只运行一次 (文华财经wh9)
来源:文华财经  日期:2018-8-7 18:55
 回溯只交易一次

投资者咨询:回溯只运行一次 (文华财经wh9)
来源:文华财经  日期:2018-8-7 18:55
 模拟账号MQ里
技术人员回复
日期:2018-8-7 20:32
核实一下,您加载在什么合约以及周期上仅交易一次呢?

我们帮您加载查看一下