开拓者期货期权程序化系统交易论坛
标题:
请问老师,在TBQuant 中如何将公式修改成不重复开仓,谢谢!
[打印本页]
作者:
china704321
时间:
2020-6-12 19:12:44
标题:
请问老师,在TBQuant 中如何将公式修改成不重复开仓,谢谢!
老师好!
下面是照猫画虎地将文华的公式转换成开拓者的公式,但在满足条件后的每个bar都加开仓。请问如何使其只在满足条件的第一个BAR开仓一次?可以帮着修改吗?
多谢
Params
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric MACDLength(9);
Numeric LEFast(21);
Numeric LESlow(34);
Vars
Series<Numeric> MACDValue;
Series<Numeric> AvgMACD;
Series<Numeric> MACDDiff;
Series<Numeric> MACDDValueD;
Series<Numeric> EMALEFast;
Series<Numeric> EMALESlow;
Bool ConCrossOver;
Bool ConCrossUnder;
Events
OnBar(ArrayRef<Integer> indexs)
{
EMALEFast = XAverage(Close, LEFast);
EMALESlow = XAverage(Close, LESlow);
PlotNumeric("EMALEFast",EMALEFast);
PlotNumeric("EMALESlow",EMALESlow);
ConCrossOver = EMALEFast > EMALESlow;
ConCrossUnder = EMALEFast < EMALESlow;
MACDDiff = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
AvgMACD = XAverage(MACDDiff,MACDLength);
MACDValue = MACDDiff - AvgMACD;
MACDDValueD = MACDValue - MACDValue[1];
If(ConCrossOver AND MACDDValueD>0)
{
BuyToCover(13,CLOSE);
Buy(13,CLOSE);
}
If(ConCrossUnder AND MACDDValueD<0)
{
SELL(13,CLOSE);
SELLSHORT(13,CLOSE);
}
}
作者:
china704321
时间:
2020-6-12 20:38:09
将上述公式中的条件
MACDDValueD>0和MACDDValueD<0删除掉,就只有在死叉或金叉时开仓一次了。
请高手看看如何把这个条件加上,同时保持不重复开仓。
多谢
Params
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric MACDLength(9);
Numeric LEFast(21);
Numeric LESlow(34);
Vars
Series<Numeric> MACDValue;
Series<Numeric> AvgMACD;
Series<Numeric> MACDDiff;
Series<Numeric> EMALEFast;
Series<Numeric> EMALESlow;
Bool ConCrossOver;
Bool ConCrossUnder;
Events
OnBar(ArrayRef<Integer> indexs)
{
EMALEFast = XAverage(Close, LEFast);
EMALESlow = XAverage(Close, LESlow);
PlotNumeric("EMALEFast",EMALEFast);
PlotNumeric("EMALESlow",EMALESlow);
ConCrossOver = CrossOver(EMALEFast,EMALESlow);
ConCrossUnder = CrossUnder(EMALEFast,EMALESlow);
MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
AvgMACD = XAverage(MACDValue, MACDLength);
If(ConCrossOver)
{
BuyToCover(8,CLOSE);
Buy(8,CLOSE);
}
If(ConCrossUnder)
{
SELL(8,CLOSE);
SELLSHORT(8,CLOSE);
}
}
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2