//TB公式代码如下
Params
Numeric nMins(30); // N分钟的突破
Numeric nOffset(3); // 突破式的价格偏移
Vars
NumericSeries HighestOf30Min;
NumericSeries lowestOf30Min;
Numeric myPrice;
Numeric MinPoint;
Numeric lots(1);
Begin
MinPoint = MinMove*PriceScale;
If(Date <> Date[1])
{
HighestOf30Min = High;
lowestOf30Min = Low;
}Else If(Time < 0.0900+nMins*0.0001)
{
HighestOf30Min = max(high,HighestOf30Min[1]);
lowestOf30Min = min(Low,lowestOf30Min[1]);
}Else
{
HighestOf30Min = HighestOf30Min[1];
lowestOf30Min = lowestOf30Min[1];
}
If(High >= HighestOf30Min + nOffset*MinPoint && MarketPosition != 1)
{
myPrice = HighestOf30Min + nOffset*MinPoint;
If(Open > myPrice) myPrice = Open;
Buy(lots,myPrice);
}
If(Low <= lowestOf30Min - nOffset*MinPoint && MarketPosition != -1)
{
myPrice = lowestOf30Min - nOffset*MinPoint;
If(Open < myPrice) myPrice = Open;
SellShort(lots,myPrice);
}
If(Time >= 0.1459)
{
Sell(lots,Open);
BuyToCover(lots,Open);
}
End
/////////////////////////////////////////////////////////////////////////////////////
//下面为金字塔代码 (感谢轮回)
INPUT:NMIN(30,10,60,10); //设置参数
INPUT:NOFFSET(3,1,20,1); //设置参数
INPUT:LOTS(1,1,1000,1); //设置参数
CYC:=BARSLAST(DATE>REF(DATE,1))+1; //统计日内K线数
HIGHESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,HHV(H,CYC)); {在从开盘到设定时间(默认参数开盘30分)内保存当天最高价}
LOWESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,LLV(L,CYC)); {在从开盘到设定时间(默认参数开盘30分)内保存当天最低价}
IF HIGH >= HIGHESTOF30MIN + NOFFSET*MINDIFF AND HOLDING<=0 THEN {如果最高价突破设定时间内的前高加设定偏移并且目前没有多单,那么}
BEGIN
MYPRICE: = HIGHESTOF30MIN + NOFFSET*MINDIFF; {预设进场价.既等于设定时间内的前高加设定偏移}
IF OPEN > MYPRICE THEN {如果开盘价大于预设进场价,那么奋不顾身闯进去,(注:这是移植的,原设计并不一定完美,这时可能不是那么好成交的,我也不必多费唇舌了).}
BEGIN
MYPRICE: = OPEN;
SELLSHORT(HOLDING<0,0,LIMITR,MYPRICE); {如果有空单先平}
BUY(HOLDING=0,LOTS,LIMITR,MYPRICE); {如果没有多单则以开盘价开多LOTS手}
END
END
IF LOW <= LOWESTOF30MIN - NOFFSET*MINDIFF AND HOLDING>=0 THEN {以下开空部分同上,只不过方向相反}
BEGIN
MYPRICE: = LOWESTOF30MIN - NOFFSET*MINDIFF;
IF OPEN < MYPRICE THEN
BEGIN
MYPRICE: = OPEN;
SELL(HOLDING>0,0,LIMITR,MYPRICE);
BUYSHORT(HOLDING=0,LOTS,LIMITR,MYPRICE);
END
END
IF TIME >= 145900 THEN {收盘平仓}
BEGIN
SELL(HOLDING>0,0,LIMITR,OPEN);
SELLSHORT(HOLDING<0,0,LIMITR,OPEN);
END
能否请版主将早盘突破的模型修改为整理突破的模型?条件是突破N周期的高点平空开多,低点平多开空。多谢!
类似以下的格式写就可以了。
HN:=N周期的高点;
LN:=N周期的低点;
IF H>=HN then
begin
sellshort(holding<0,0,thisclose);
buy(holding=0,1,thisclose);
end
IF L<=LN then
begin
sell(holding>0,0,thisclose);
buyshort(holding=0,1,thisclose);
end