各位大俠,救命啊,編譯通過但是沒有信號,求救! - 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…
- 下一篇:沒有了!
相關文章
-
指定的模型還沒有相關內容!