想請問我想寫當沖的語法,資料頻率為一分K,想法是突破盤中最大量的紅K棒做進場,那我的程式碼該如何撰寫~?謝謝
有看板上的語法套用,但回測無任何資料!不知道哪裡錯誤了!!
想請問我想寫當沖的語法,資料頻率為一分K,想法是突破盤中最大量的紅K棒做進場,那我的程式碼該如何撰寫~?謝謝
有看板上的語法套用,但回測無任何資料!不知道哪裡錯誤了!!
if barfreq <> "Min" then raiseruntimeerror("僅支援分鐘頻率");
//if issessionfirstbar then value1 = volume; //用 value1 保存開盤第一根的成交量
//成交量創新高時更新量與價
if volume > value1 then begin
value1 = volume;
value2 = high;
end;
value5 = GetField("賣出特大單量","D") + GetField("賣出大單量","D");
value6 = GetField("買進特大單量","D") + GetField("買進大單量","D");
value7 = value6 - value5;
condition1 = volume > value1; //成交量大於開盤第一根
condition2 = close > open; //紅棒
condition3 = Getfield("close", "1") > GetField("開盤價","D"); //收盤大於開盤
condition4 = GetFIELD("VOLUME", "D")[1] > 1000;
condition5 = VALUE7 > 0; //大戶買賣力正的
if condition1 and condition2 and condition3 and condition4 and condition5
AND CLOSE > 50
AND CLOSE < 300
Then Ret=1;
Hello 郁璇,
小幫手建議您可以將相關數值印出,會比較好確認原因。
您的 value1 會是腳本執行以來最大的成交量,而非當天最大的成交量。
如果要的是後者的話,腳本中需要每日重置該變數。
舉例來說:
if issessionfirstbar then begin
value1 = volume;
value2 = high;
else if volume > value1 then begin
value1 = volume;
value2 = high;
end;
另外,既然您的 value1 會是最大值,那麼 condition1 = volume > value1; 就不會實現 (因為不可能大於最大值)。
請問小編 當沖的語法,資料頻率為一分K,是突破盤中最大量的紅K棒做進場,那我的程式碼該如何撰寫~?謝謝
這樣的話我該怎麼寫???不太懂!!
Hello 郁璇,
網站上有教學區,裡面有XS語法的基礎和應用,小幫手建議您先閱覽該區文章。
如果您希望抓出當日紅K棒最大量的高點而非當日最大量的話,只需要加上判斷紅K的條件即可,舉例來說:
//紀錄當天紅K最大量和對應的high
if issessionfirstbar then begin
value1 = 0;
value2 = 0;
end
else if close > open and volume > value1 then begin
value1 = volume;
value2 = high;
end;
condition1 = value1 <> 0 and value1[1] <> 0; //確保判斷突破時當日有經過紅K
condition2 = close >= value2 and close[1] < value2[1]; //收盤價向上突破最大量紅K的high
if condition1 and condition2 then ret = 1;
請注意小幫手並沒有提供幫忙撰寫語法的服務。
4 評論