各位大侠,救命啊,编译通过但是没有信号,求救! - TradeBlazer公式 [开拓者 TB]
- 咨询内容:
自己攒了一个系统出来,虽然编译通过,但是插入公式应用时却没有信号显示,请管理员或者版主,或者各位大侠救命,感激不尽!
一分钟钟上应用,思路如下:
开仓条件:1、当日开盘,如果开盘低于昨日收盘则开多单,反之开空;
2、高低点反转理论,确定当日一分钟行情下已经走出的高低点,然后加减一定的点位,即为已有仓位的出场以及反向单的进场点位
平仓条件:1、已经走出的高低点,加减止损间距
2、尾盘全部平仓
加仓条件:确定一定的加仓间距和加仓次数,在加仓次数范围之内,然后走出超过此间距就加仓
TB代码如下:
Params
Bool blnitStatus(false); //初始化标志,修改初始仓位时需改变为True
Numeric InitMyRealMp(0); //初始当前仓位,正数表示多单,负数表示空单
Numeric AddGrid(5); //加仓间距,最小跳动
Numeric TotalGrids(10); //最大交易次数
Numeric TrailingGrid(30); //移动止损间距,最小跳动
Numeric EveryLots(1); //每次开仓手数
Numeric OffSet(1); //委托买卖偏差,默认买卖价偏差一个滑点
Numeric ExitOnCloseMins(14.58); //收盘平仓时间
Vars
Numeric HighAfterLongEntry;
Numeric LowAfterShortEntry;
Numeric MyRealMp(0);
Numeric MinPoint;
Numeric TmpPrice;
Numeric TmpLots;
Begin
MinPoint=MinMove*PriceScale;
MyRealMp=GetGlobalVar(0);
HighAfterLongEntry=GetGlobalVar(1);
LowAfterShortEntry=GetGlobalVar(2);
If(BarStatus==0 and (MyRealMp==InvalidNumeric or blnitStatus))
{
MyRealMp=InitMyRealMp;
}
If(Date<>Date[1])
{
HighAfterLongEntry=High;
LowAfterShortEntry=Low;
MyRealMp=0;
}Else
{
HighAfterLongEntry=max(HighAfterLongEntry,High);
LowAfterShortEntry=Min(LowAfterShortEntry,Low);
}
If(Time<ExitOnCloseMins/100)
{
If(MyRealMp>0 And HighAfterLongEntry-low>=TrailingGrid*MinPoint And (High-low<TrailingGrid*MinPoint Or(High-Low>=TrailingGrid*MinPoint And Close<Open)))
{
TmpPrice=HighAfterLongEntry-TrailingGrid;
TmpLots=Abs(MyRealMp*EveryLots);
Sell(TmpLots,TmpPrice);
MyRealMp=0;
LowAfterShortEntry=Low;
}Else
If(MyRealMp<0 And High-LowAfterShortEntry>=TrailingGrid*MinPoint And (High-low<TrailingGrid*MinPoint Or(High-Low>=TrailingGrid*MinPoint And Close<Open)))
{
TmpPrice=LowAfterShortEntry+TrailingGrid;
TmpLots=Abs(MyRealMp*EveryLots);
BuyToCover(TmpLots,TmpPrice);
MyRealMp=0;
HighAfterLongEntry=0;
}
if(Time==0.9000 and open!=Close[1])
{ If(MyRealMp==0 And open<Close[1])//开盘低开多单开仓
{
TmpPrice=(Open+offset)*MinPoint;
TmpLots=EveryLots;
Buy(TmpLots,TmpPrice);
MyRealMp=1;
HighAfterLongEntry=High;
}Else
If(MyRealMp==0 And open>Close[1] )//开盘高开空单开仓
{
TmpPrice=(Open-offset)*MinPoint;
TmpLots=EveryLots;
SellShort(TmpLots,TmpPrice);
MyRealMp=-1;
LowAfterShortEntry=low;
}
} Else
If(Time>0.9000 and Time<=0.1455)
{If(MyRealMp==0 And High-LowAfterShortEntry>=TrailingGrid*MinPoint)//当日开盘开仓外第一笔多单开仓
{
TmpPrice=LowAfterShortEntry+(TrailingGrid+offset)*MinPoint;
TmpLots=EveryLots;
Buy(TmpLots,TmpPrice);
MyRealMp=1;
HighAfterLongEntry=High;
}Else
If(MyRealMp==0 And HighAfterLongEntry-low>=TrailingGrid*MinPoint)//当日开盘开仓外的第一笔空单开仓
{
TmpPrice=HighAfterLongEntry-(TrailingGrid+offset)*MinPoint;
TmpLots=EveryLots;
SellShort(TmpLots,TmpPrice);
MyRealMp=-1;
LowAfterShortEntry=low;
}
}
If(MyRealMp>0 and MyRealMp<TotalGrids And high-LowAfterShortEntry>=(TrailingGrid+MyRealMp*AddGrid)*MinPoint)//多单加仓
{
TmpPrice=LowAfterShortEntry+(TrailingGrid+MyRealMp*AddGrid+offset)*MinPoint;
TmpLots=EveryLots;
Buy(TmpLots,TmpPrice);
MyRealMp=MyRealMp+1;
}Else
If(MyRealMp<0 And -1*MyRealMp<TotalGrids And HighAfterLongEntry-Low>=(TrailingGrid+Abs(MyRealMp*AddGrid))*MinPoint)//空单加仓
{
TmpPrice=HighAfterLongEntry-(TrailingGrid+Abs(MyRealMp*AddGrid)+offset)*MinPoint;
TmpLots=EveryLots;
SellShort(TmpLots,TmpPrice);
MyRealMp=MyRealMp-1;
}
}Else If(Time>=ExitOnCloseMins/100)
{
Sell(0,Close);
BuyToCover(0,Close);
}
SetGlobalVar(0,MyRealMp);
SetGlobalVar(1,HighAfterLongEntry);
SetGlobalVar(2,LowAfterShortEntry);
Commentary("MyRealMp="+Text(MyRealMp));
Commentary("HighAfterLongEntry="+Text(HighAfterLongEntry));
Commentary("LowAfterShortEntry="+Text(LowAfterShortEntry));
End - TB技术人员:
回复 1# gsjjs01
条件内
MyRealMp=GetGlobalVar(0);
一开始GetGlobalVar(0)为0.
MyRealMp>0;这个条件不满足 - TB客服:
管理员,你好,先对你的回复表示感谢!
有个问题不明白,if条件语句里面,if条件判断不是说判断条件为真时,则执行吗?那不为真时则是不执行的吧。那么这个语句里面MyRealMp>0,只是用来判断的条件啊!不满足的时候不执行不就是了吗,为什么一定要满足呢?? - 网友回复:
是我自己后边的问题太低级了吗??
- 网友回复:
回复 4# gsjjs01
if(Time==0.9000 and open!=Close[1])
改成
if(Time==0.0900 and open!=Close[1])
就有信号了
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 262069696 进行 有偿 编写!(不贵!点击查看价格!)
- 上一篇:能否给几个全局变量控制开仓的例子 - Tra…
- 下一篇:没有了!
相关文章
-
指定的模型还没有相关内容!