怎么实现30分钟破boll上轨买入,10s周期上止盈止损
然后有个基础要点
跨周期的,所有交易内容尽量都放在最小周期
高周期的数据赋值传过去就行了
好 ,按老师的思路改改,在测试测试
怎么大小周期,都有交易
交易记录才两条,短周期,不可能不交易!
Range[1:1] //长周期 30min
Range[0:0] //短周期10s
但是,这个测试结果不低,都是长周期交易,短周期没有
搞不明白,怎么回事?
Range[0:0] //短周期
{
//止损止盈
If ( MarketPosition > 0)
{
//...
MinPoint = MinMove*PriceScale; // 一个最小变动单位, 也就是一跳 =当前公式应用商品的最小变动量*当前公式应用商品的计数单位。
MyEntryPrice =Data[1]. AvgEntryPrice; // 开仓价格= 获得当前持仓的平均建仓价格
If(MarketPosition == 1 And BarsSinceEntry >= 1) // 有多仓的情况
{
If(Data[0].High >= MyEntryPrice + TakeProfitSet*MinPoint) // 止赢条件表达式 最高价≥开仓价+止盈数*最小变动单位
{
MyExitPrice = MyEntryPrice + TakeProfitSet*MinPoint; //平仓价格=开仓价+止盈数*最小变动单位
// 如果该 Bar 开盘价即跳空触发, 用开盘价代替
If(Data[0].Open > MyExitPrice) MyExitPrice = Data[0].Open; //如果开盘价>平仓价格,则平仓价=开盘价
Sell(0,MyExitPrice); //按平仓价卖出
}Else If(Data[0].Low <= MyEntryPrice - StopLossSet*MinPoint) // 止损条件表达式,如果最低价≤开仓价-止损数*最小变动单位
{
MyExitPrice = MyEntryPrice - StopLossSet*MinPoint; //平仓价=开仓价-止损数*最小变动单位
// 如果该 Bar 开盘价即跳空触发, 则用开盘价代替
If(Data[0].Open < MyExitPrice) MyExitPrice = Data[0].Open; //开盘价<平仓价,开盘价赋值给平仓价
Sell(0,MyExitPrice);
}
}
}
}
}
Params
Numeric Length(14); //长的
Numeric SlowLength(3); //慢的
Numeric SmoothLength(3); //平整的
Vars
Series<Numeric> HighestValue; //高点序列
Series<Numeric> LowestValue; //低点序列
Series<Numeric> KValue;
Series<Numeric> JValuemy;
Numeric SumHLValue;
Numeric SumCLValue;
Numeric DValue;
Numeric MinPoint; // 一个最小变动单位, 也就是一跳
Numeric MyEntryPrice; // 开仓价格, 例中为开仓均价, 可设置为某次入场价
Numeric TakeProfitSet(5); // 止赢设置
Numeric StopLossSet(3); // 止损设置
Numeric MyExitPrice; // 平仓价格
Events
OnBar(ArrayRef<Integer> indexs)
{
Range[1:1] //长周期
{
MinPoint = MinMove*PriceScale;
HighestValue = HighestFC(High, Length); //求最高(High,14)
LowestValue = LowestFC(Low, Length); //求最低(Low,14)
SumHLValue = SummationFC(HighestValue-LowestValue,SlowLength); //快速求和(最高-最低,3)
SumCLValue = SummationFC(Close - LowestValue,SlowLength); //快速求和(收盘价-最低,3)
If(SumHLValue <> 0) // 最高-最低≠0
{
KValue = SumCLValue/SumHLValue*100; // 这个就k值;
}Else
{
KValue = 0;
}
DValue = AverageFC(KValue,SmoothLength); //D为平均值(kv,3)
JValuemy=3*KValue - 2*DValue;
PlotNumeric("K",KValue); //k就是kvalue
PlotNumeric("D",DValue); //"D",DValue
PlotNumeric("J",3*KValue - 2*DValue); //"J",3*KValue - 2*DValue
PlotNumeric("Ref1",20);
PlotNumeric("Ref2",80);
}
Range[1:1]
{
if ( JValuemy>=80 and JValuemy[1]<80 )
{
Buy(1,Close);
}
分解成2个问题
30分钟破boll上轨买入 和 10s周期上止盈止损
单独写会不会写
然后才是跨周期的问题