投资者咨询:回溯只运行一次 (文华财经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
技术人员回复
日期:2018-8-7 20:32