.jpg?width=690&upscale=false)
小編好:
我目前測試XS都是以當沖策略盤中監控的狀況,CDP的條件沒有問題,但"K"棒跟"量"的部分(邏輯是:爆量以後在當日最高價的地方收黑1分K、大戶買賣力判斷小於0或內盤大於外盤),在condition2 and condition3,雖然在編碼有成功,但加上去以後執行,就跳不出來了,如果可以請指導進行策略回測
input: buffer(0, "壓力區間寬度");
var:CDP(0),AH(0),AL(0),NH(0),NL(0);
if barfreq <> "Min" then raiseruntimeerror("請運行在分鐘頻率上 (最好是1分鐘)");
CDP = (getfield("High", "D")[1] + getfield("Low", "D")[1] + getfield("Close", "D")[1] * 2) / 4;
AH = CDP + (getfield("High", "D")[1] - getfield("Low", "D")[1]);
AL = CDP - (getfield("High", "D")[1] - getfield("Low", "D")[1]);
NH = 2 * CDP - getfield("Low", "D")[1];
NL = 2 * CDP - getfield("High", "D")[1];
//回測不支援日頻率,所以將其改為60分鐘,如果用在即時時可以用日頻率
value1 = GetField("賣出特大單量","60") + GetField("賣出大單量","60");
value2 = GetField("買進特大單量","60") + GetField("買進大單量","60");
value3 = value2 - value1;
condition1 = (getfield("Close", "1") cross over (NH + buffer) or getfield("Open", "1") cross over (NH + buffer)) ;
//1分鐘開盤價或收盤價突破NH + buffer 之上且收黑
condition2 = value3 < 0 or getfield("內盤量", "1") > getfield("外盤量", "1");
//大戶買賣力為正數或內盤量大於外盤量
condition3 = highest(high, GetBarOffset(date, 090000)) > getfield("Close", "1") and getfield("Volume", "1") > Average(getfield("Volume", "1")[1], 5) * 3;
//價格不突破今日高點且爆量(1分鐘成交量 > 5分鐘平均量的3倍)
condition4 = getfield("Open", "D") < NH;
condition5 = getfield("Open", "D") >CDP;
//(依照CDP逆勢操作法,本策略先判斷CDP<當日開盤價<NH,在開盤價附近或突破NH及時作空)
condition6 = getfield("Open", "D") > getfield("Close", "D")[1];
// 開平盤以上
if condition1 and condition4 and condition5 and condition6 then begin
print(file("c:\XS\print\"),NH,symbol,date,currenttime,value3);
ret = 1;
end;
//進場訊號整理(在突破NH上面爆量收黑):
//CDP<開盤價<NH
//1分K突破NH+0爆量,見到本日高點爆量收黑K
//大戶買賣力為正數或內盤量大於外盤量
//
3 評論