行情永遠在上下分形之間來回轉換,實現過程中出現問題 [開拓者 TB]
- 咨詢內容:
思路是這樣的,上分形,第三根K線大于左邊兩根和右邊兩根線高點,(下分形與之相反),收盤價高于上分形開多單,止損為收盤小于開倉K線最低價,多單止損后,認為假突破,即開空單,空單止損是開倉K線最高價,止損后,認為是假突破,開多單,如果多單沒有被止損,直到下分形被突破,平多單后,開空單,空單止損
開倉K線最高價,空單止損后認為是假突破,開回多單。寫了代碼,但是問題多,請各位指點,我剛開好TB 權限,處于學習階段
- TB技術人員:
這里出現兩個問題,1 止損K線如果用普通變量,止損語句不能執行,要用序列變量才能實現止損功能
,為什么? 2 在突破下分形時開了空單,但之后為什么又開了多單,難道是收盤價大于上一次上分形的高點?
Vars
NumericSeries Myn1;
NumericSeries Myn2;
Numeric EXITPRICE1;
Numeric MINPOINT1;
Numeric MYENTRYPRICE;
Numeric TAKEPROFITSET(40);
NumericSeries mylow;
NumericSeries myhigh;
Numeric StopPrice(10);
BOOLSERIES CONDITION1(FALSE);
BOOLSERIES CONDITION2(FALSE);
Begin
If(High[3]>high[4] and high[3]>high[5] and high[3]>high[2] and high[3]>high[1])
{
Myn1=High[3];
}Else
{
Myn1=Myn1[1];
}
Condition1=c[1]>myn1[1];
If(Condition1)
{
Buy(0,o+2);
}
If(MarketPosition==1 AND BARSSINCEENTRY==0)
{mylow=l;}
If(MarketPosition==1 AND BARSSINCEENTRY>=1 and c[1]<mylow[1])
{
EXITPRICE1=c[1];
Sellshort(0,EXITPRICE1);
}
If(MarketPosition==-1 AND BARSSINCEENTRY==0)
{myhigh=h;}
If(MarketPosition==-1 AND BARSSINCEENTRY>=1 and c>myhigh[1])
{myhigh=h;
Buy(0,MYHIGH);}
{If(l[3]<l[4] and l[3]<l[5] and l[3]<l[2] and l[3]<l[1])
{
Myn2=l[3];
}Else
{
Myn2=Myn2[1];
}
CONDITION2=(c[1]<myn2[1] and MarketPosition==1 );
If(CONDITION2)
{ExitPrice1=c[1];
SellShort(0,EXITPRICE1);}}
1 low1 多頭 m1605 2015/12/09 23:05 2306 2015/12/09 23:15 2303 1 10.00 (40.00) (40.00) (1.73%) (1.73%)
2 low1 空頭 m1605 2015/12/09 23:15 2303 2015/12/09 23:20 2308 1 10.00 (60.00) (100.00) (2.61%) (4.34%)
3 low1 多頭 m1605 2015/12/09 23:20 2308 2015/12/10 09:05 2294 1 10.00 (150.00) (250.00) (6.50%) (10.84%)
4 low1 空頭 m1605 2015/12/10 09:05 2294 2015/12/10 09:40 2297 1 10.00 (40.00) (290.00) (1.74%) (12.58%)
5 low1 多頭 m1605 2015/12/10 09:40 2297 2015/12/10 09:45 2296 1 10.00 (20.00) (310.00) (0.87%) (13.45%)
6 low1 空頭 m1605 2015/12/10 09:45 2296 2015/12/10 09:55 2298 1 10.00 (30.00) (340.00) (1.31%) (14.76%)
7 low1 多頭 m1605 2015/12/10 09:55 2298 2015/12/10 10:00 2298 1 10.00 (10.00) (350.00) (0.44%) (15.20%)
8 low1 空頭 m1605 2015/12/10 10:00 2298 2015/12/10 21:05 2302 1 10.00 (50.00) (400.00) (2.18%) (17.37%)
9 low1 多頭 m1605 2015/12/10 21:05 2302 2015/12/10 21:10 2300 1 10.00 (30.00) (430.00) (1.30%) (18.67%)
10 low1 空頭 m1605 2015/12/10 21:10 2300 2015/12/10 21:15 2300 1 10.00 (10.00) (440.00) (0.43%) (19.11%)
11 low1 多頭 m1605 2015/12/10 21:15 2300 2015/12/11 09:35 2306 1 10.00 50.00 (390.00) 2.17% (16.94%)
12 low1 空頭 m1605 2015/12/11 09:35 2306 2015/12/11 09:40 2308 1 10.00 (30.00) (420.00) (1.30%) (18.24%)
13 low1 多頭 m1605 2015/12/11 09:40 2308 2015/12/11 09:45 2306 1 10.00 (30.00) (450.00) (1.30%) (19.54%)
14 low1 空頭 m1605 2015/12/11 09:45 2306 2015/12/11 10:05 2309 1 10.00 (40.00) (490.00) (1.73%) (21.27%)
15 low1 多頭 m1605 2015/12/11 10:05 2309 2015/12/14 21:05 2337 1 10.00 270.00 (220.00) 11.69% (9.58%)
16 low1 空頭 m1605 2015/12/14 21:05 2337 2015/12/14 21:10 2343 1 10.00 (70.00) (290.00) (3.00%) (12.57%)
17 low1 多頭 m1605 2015/12/14 21:10 2343 2015/12/15 10:55 2359 1 10.00 150.00 (140.00) 6.40% (6.17%)
18 low1 空頭 m1605 2015/12/15 10:55 2359 2015/12/15 11:00 2359 1 10.00 (10.00) (150.00) (0.42%) (6.59%)
19 low1 多頭 m1605 2015/12/15 11:00 2359 2015/12/15 11:00 2359 1 10.00 (10.00) (160.00) (0.42%) (7.02%)
20 low1 空頭 m1605 2015/12/15 11:00 2359 2015/12/15 22:50 2339 1 10.00 190.00 30.00 8.05% 1.04% - TB客服:
為什么沒人幫忙啊?
- 網友回復:
大神們去哪里了?
- 網友回復:
cts2015deng 發表于 2015-12-17 15:42
大神們去哪里了?
您的策略有點繞來繞去,調試還是需要花時間的。一根BAR又是多又是空,肯定會存在各種各樣的問題,這個有時間可以慢慢去試。
簡單看了一下,主要問題應該是兩個:
一是序列變量的初始化沒考慮
比如:進場的 Condition1條件的計算,Myn1的初始值是0,那在圖表的開始幾根BAR即使還沒形成任何分形Condition1也會滿足,這樣莫名其妙就開多了。
二是多空開倉平倉語句都有多條,而公式中并不是每條交易指令執行后序列變量都去做相應修改,這樣就導致了信號的紊亂
比如:您問到的突破下分形開了空單后又立即開了多單,就是因為這個開倉指令幾乎是放在公式的最后部分,開倉后,止損要判斷的myhigh并沒有做任何修改,這樣到了下一根BAR,myhigh要么是初始值0,要么是上一輪交易的值傳遞下來的,因此就會出現立即又開多了。
總之,類似的問題應該不少,需要好好去對照信號不斷地調試。
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容