- 精华
- 0
- 在线时间
- 17 小时
- UID
- 162091
- 积分
- 15
- 帖子
- 12
- 阅读权限
- 10
- 注册时间
- 2013-7-12
- 最后登录
- 2019-9-7
- 精华
- 0
- UID
- 162091
- 积分
- 15
- 帖子
- 12
- 主题
- 3
- 阅读权限
- 10
- 注册时间
- 2013-7-12
- 最后登录
- 2019-9-7
|
superwin 发表于 2019-6-14 12:55
因为TB机制是每个tick都执行一次公式,所有不加控制肯定会每个tick都发的。
用全局变量控制次数,具体参考 ...
Params
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric MACDLength(9);
Numeric N_number(5);
Vars
NumericSeries MACDValue1;
NumericSeries MACDValue3;
NumericSeries MACDValue5;
NumericSeries MACDValue15;
NumericSeries MACDValue30;
Numeric AvgMACD1;
Numeric AvgMACD3;
Numeric AvgMACD5;
Numeric AvgMACD15;
Numeric AvgMACD30;
Numeric MACDDiff1;
Numeric MACDDiff3;
Numeric MACDDiff5;
Numeric MACDDiff15;
Numeric MACDDiff30;
numeric Bartime_r;
Bool LongEntryCon;
Bool ShortEntryCon;
Bool LongExitCon;
Bool ShortExitCon;
Begin
MACDValue1 = XAverage( Close, FastLength ) - XAverage( Close, SlowLength );
//AvgMACD1 = XAverage(MACDValue1,MACDLength);
//MACDDiff1 = MACDValue1 - AvgMACD1;
//MACDValue3 = MinsXAverage(3, Close, FastLength ) - MinsXAverage(3, Close, SlowLength );
//AvgMACD3 = MinsXAverage(3,MACDValue3,MACDLength);
//MACDDiff3 = MACDValue3 - AvgMACD3;
MACDValue5 = MinsXAverage(N_number, Close, FastLength ) - MinsXAverage(N_number, Close, SlowLength ); //5分钟图MACD值
//AvgMACD5 = MinsXAverage(5,MACDValue5,MACDLength);
//MACDDiff5 = MACDValue5 - AvgMACD5;
//MACDValue15 = MinsXAverage(15, Close, FastLength ) - MinsXAverage(15, Close, SlowLength );
// AvgMACD15 = MinsXAverage(15,MACDValue15,MACDLength);
//MACDDiff15 = MACDValue15 - AvgMACD15;
//MACDValue30 = MinsXAverage(30, Close, FastLength ) - MinsXAverage(30, Close, SlowLength );
//AvgMACD30 = MinsXAverage(30,MACDValue30,MACDLength);
// MACDDiff30 = MACDValue30 - AvgMACD30;
LongEntryCon = CrossOver(MACDValue1[1],0)&& MACDValue5[1]> 0 ;//&& MACDValue15[1] > 0 && MACDValue30[1] > 0; //开多条件
ShortEntryCon = CrossUnder(MACDValue1[1],0) && MACDValue5[1] < 0 ;//&& MACDValue15[1] < 0 && MACDValue30[1] < 0; //开空条件
LongExitCon = CrossUnder(MACDValue1[1],0)||MACDValue5[1] < 0; //平多条件
ShortExitCon = CrossOver(MACDValue1[1],0)||MACDValue5[1]> 0; //平空条件
//Commentary("MACDDiff1="+Text(MACDDiff1));
//Commentary("MACDDiff3="+Text(MACDDiff3));
// Commentary("MACDDiff5="+Text(MACDDiff5));
// Commentary("MACDDiff15="+Text(MACDDiff15));
//Commentary("MACDDiff30="+Text(MACDDiff30));
//SetGlobalVar(0,0);
Bartime_r=Second();
if(GetGlobalVar(1)==InvalidNumeric) SetGlobalVar(1,0);
if(GetGlobalVar(2)==InvalidNumeric) SetGlobalVar(2,0);
if(GetGlobalVar(3)==InvalidNumeric) SetGlobalVar(3,0);
if(GetGlobalVar(4)==InvalidNumeric) SetGlobalVar(4,0);
If(MarketPosition == 0) //MarketPosition为0,代表空仓。
{
If(LongEntryCon&&GetGlobalVar(1)<3) //符合开多条件,开多
{
Buy(1,Open); //开多
SetGlobalVar(2,0); //设置平多alert标志为0.
PlotString("开多","开多",high,Red);
SetGlobalVar(1,GetGlobalVar(1)+1);
Alert("当前K线时间:"+Text(Date)+" "+Text(Time)+" "+"5分钟图趋势向上,1分钟图出现战机,注意观察,如果第5根K线还是保持信号,则在第5根K线的收盘价附近入场。"+"开多标志:"+Text(GetGlobalVar(1))+";平多标志:"+Text(GetGlobalVar(2)));
}Else if(ShortEntryCon&&GetGlobalVar(3)<3) //符合开空条件,开空
{
SellShort(1,Open);
SetGlobalVar(4,0);
PlotString("开空","开空",Low,Green);
Alert("当前K线时间:"+Text(Date)+" "+Text(Time)+" "+"5分钟图趋势向下,1分钟图出现战机,注意观察,如果第5根K线还是保持信号,则在第5根K线的收盘价附近入场。"+"开空标志:"+Text(GetGlobalVar(13))+";平空标志:"+Text(GetGlobalVar(4)));
SetGlobalVar(3,GetGlobalVar(3)+1);
}
}Else If(MarketPosition == 1 && LongExitCon&&GetGlobalVar(2)<3)//MarketPosition为1,代表多仓。
{
Sell(0,Open);
SetGlobalVar(1,0);
PlotString("平多","平多",High,Red);
Alert("当前K线时间:"+Text(Date)+" "+Text(Time)+" "+"大小图都给出平多信号,坚决离场:"+"开多标志:"+Text(GetGlobalVar(1))+";平多标志:"+Text(GetGlobalVar(2)));
SetGlobalVar(2,GetGlobalVar(2)+1);
}Else if(MarketPosition == -1 && ShortExitCon&&GetGlobalVar(4)<3)//MarketPosition为-1,代表空仓。
{
BuyToCover(0,Open);
SetGlobalVar(3,0);
PlotString("平空","平空",low,Green);
Alert("当前K线时间:"+Text(Date)+" "+Text(Time)+" "+"大小图都给出平空信号,坚决离场:"+"开空标志:"+Text(GetGlobalVar(3))+";平空标志:"+Text(GetGlobalVar(4)));
SetGlobalVar(4,GetGlobalVar(4)+1);
}
If(Time >= 0.1459) //Time为浮点型,0.1459就是代表14:59.在收盘前清空仓位。
{
//Sell(1,Open);
//BuyToCover(1,Open);
}
End
我写 了一个例子,思路对不对?另外您说的例子在哪里?在帮助文档不知道怎么找。
|
|