用SwingHigh 出现的问题,求教! 写了一个MACD顶背离的测试程序 [开拓者 TB]
-
咨询内容:
本帖最后由 Alex2020 于 2020-12-11 18:32 编辑
写了一个顶背离的程序,, 为了避免出现 SwingHigh 为-1的情况,用了 If(Bofen1>0 && Bofen2>0 && BARbofen1>0 && BARbofen2>0 ) 来控制,
但是,没有起作用,还是不停的开仓.
请见如下简化的程序:
Vars
Series<Numeric> BFBar1; //第1个波峰发生的bar
Series<Numeric> BFBar2; //第2个波峰发生的bar
Series<Numeric> Bofen1 ; //第一个波峰的值
Series<Numeric> BARbofen1; //第一个波峰的BAR回溯值
Series<Numeric> Bofen2 ; //第2个波峰的值
Series<Numeric> BARbofen2; //第2个波峰的BAR值回溯
OnBar(ArrayRef<Integer> indexs)
{
Bofen1= SwingHigh(1,High,2,Length1); //最近第一个波峰
BARbofen1= SwingHighBar(1,High,2,Length1); //最近第一个波峰Bar值
BFBar1=CurrentBar-BARbofen1; //最近第一个波峰发生时的BAR
Bofen2= SwingHigh(2,High,5,Length1); //最近第2个波峰
BARbofen2= SwingHighBar(2,High,5,Length1); //最近第2个波峰Bar回溯值
BFBar2=CurrentBar-BARbofen2; //最近第二个波峰发生时的BAR
If(Bofen1>0 && Bofen2>0 && BARbofen1>0 && BARbofen2>0 ) //这个条件没有起作用
{
if(Bofen1>Bofen2 && MACDLine[BFBar1]<MACDLine[Bofen2] && MarketPosition ==0) //顶背离发生,开空仓, 无持仓时
{
MyEntryPrice=Open;
SellShort(Num,MyEntryPrice);
Commentary("顶背离-开空: "+Text(MyEntryPrice));
SendOrderThisBar = True; //本条bar开过仓
}
}
}来源:CXH99.COM
-
TB技术人员:
SwingHigh 为-1是因为你swinghigh的参数取得不对。把参数调整下。控制开仓的语句你也是不对的
-
TB客服:
if(Bofen1>Bofen2 && MACDLine[BFBar1]<MACDLine[Bofen2] && MarketPosition ==0) //顶背离发生,开空仓, 无持仓时,这里用的是回测值,但是你用法貌似错了。MarketPosition<>-1
-
网友回复:
TB策略微信群
加群主微信:northquant
有思路,想编写各种指标公式,交易模型,选股公式,还原公式的朋友
可联系技术人员 QQ: 262069696 或微信号:cxh99cxh99 进行 有偿收费 编写!
(注:由于人数限制,QQ或微信请选择方便的一个联系我们就行,加好友时请简单备注下您的需求,否则无法通过。谢谢您!)
相关文章
-
没有相关内容