- 精华
- 0
- 在线时间
- 68 小时
- UID
- 192103
- 积分
- 95
- 帖子
- 57
- 阅读权限
- 30
- 注册时间
- 2014-8-11
- 最后登录
- 2015-7-7
- 精华
- 0
- UID
- 192103
- 积分
- 95
- 帖子
- 57
- 主题
- 21
- 阅读权限
- 30
- 注册时间
- 2014-8-11
- 最后登录
- 2015-7-7
|
为了避免high low带来的信号消失问题,我自己定义了在一个bar内的最高和最低价,而且是随tick而变,一旦某个tick出现了最高价Gao超过开仓线,则在本bar内只会有更高的最高价,会一直满足开仓条件,而不会信号消失或者闪烁。
但是,在模拟交易时,F7仍然提示交易信号消失!!!!,这到底怎么回事!!!!!!!!!!!崩溃!!!!!!!!!!!!
代码如下:
if (BarStatus()==2)
{
If (time!=time[1])
{
Gao=IIF(High>0,high,0);
Di=IIF(Low>0,Low,0);
SetGlobalVar(10,Gao);
SetGlobalVar(11,Di);
}
Else
{
Gao=GetGlobalVar(10);
Di=GetGlobalVar(11);
Gao=IIF(High>Gao,High,Gao);
Di=IIF(Low<Di,Low,Di);
SetGlobalVar(10,Gao);
SetGlobalVar(11,Di);
}
FileAppend("D:\\tbdemo2.log","Gao="+Text(Gao)+"|DonchianHi="+Text(DonchianHi)+"|TurtleUnits="+Text(TurtleUnits));
FileAppend("D:\\tbdemo2.log","Di="+Text(Di)+"|DonchianLo="+Text(DonchianLo)+"|TurtleUnits="+Text(TurtleUnits));
// 当不使用过滤条件,或者使用过滤条件并且条件为PreBreakoutFailure为True进行后续操作
If(Position_dir == 0)
{
// 突破开仓
If(Gao > DonchianHi && TurtleUnits >= 1)// && JValue>JValue[1] && JValue>0 && MyADX>=ADXThres)
{
//上次突破失败为True
if (PreBreakoutFailure==1)
{
// 开仓价格取突破上轨+一个价位和最高价之间的较小值,这样能更接近真实情况,并能尽量保证成交
myEntryPrice = min(Gao,DonchianHi + MinPoint);
myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice); // 大跳空的时候用开盘价代替
preEntryPrice = myEntryPrice;
Buy(TurtleUnits,Q_UpperLimit);
SendOrderThisBar = True;
Commentary("……20突破多单……");
Commentary("myEntryPrice多20="+Text(myEntryPrice));
FileAppend("D:\\tbdemo2.log","……20突破多单……");
FileAppend("D:\\tbdemo2.log","开单="+Text(TurtleUnits)+"@"+Text(preEntryPrice)); |
|