如果我想在日线级别做双均线买入卖出策略,在tick级别做跟踪止损,请问一下,这样的策略该怎么写?有示例代码吗?
多周期我知道怎么写代码,但是我在两个周期同时有买入卖出会弹框提示有信号闪烁问题,请问有示例代码吗?
谢谢老师!
跨周期课程都讲过
如果你的策略有问题,贴代码可能解决得快
//------------------------------------------------------------------------
// 简称: dual_ma_test
// 名称: dual_ma_test
// 类别: 公式应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Params
Numeric fastLength(10);
Numeric slowLength(20);
Numeric stopLossRate(1);
Vars
Series<Numeric> ma10;
Series<Numeric> ma20;
Series<Numeric> myEntryPrice;
Global Numeric highestAfterEntry;
Global Numeric lowestAfterEntry;
Defs
//此处添加公式函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
Range[0:0]
{
ma10 = AverageFC(Close[1], fastLength);
ma20 = AverageFC(Close[1], slowLength);
If(MarketPosition <> 1 and CrossOver(ma10, ma20)) {
Buy(0, Open);
myEntryPrice = Open;
}
IF(MarketPosition <> -1 and CrossUnder(ma10, ma20)) {
SellShort(0, Open);
myEntryPrice = Open;
}
}
Range[1:1]
{
highestAfterEntry = Max(highestAfterEntry, High[1]);
lowestAfterEntry = Min(lowestAfterEntry, Low[1]);
If(data0.MarketPosition == 1) {
IF(CLOSE[1] / myEntryPrice > 1 + stopLossRate / 100.0 AND highestAfterEntry / CLOSE[1] >= 1 + stopLossRate / 100.0) {
data0.Sell(0, Low);
}
}
IF(data0.MarketPosition == -1) {
IF(myEntryPrice / CLOSE[1] > 1 + stopLossRate / 100.0 AND CLOSE[1] / lowestAfterEntry >= 1 + stopLossRate / 100.0) {
data0.BuyToCover(0, High);
}
}
}
}
/*
帮忙看一下,应用到 rb2209 上面,data0 15分钟线 data1 1分钟线。会报发生信号闪烁。
*/
在1分钟级别做跟踪止损的示例也可以的