我想寫一個開盤價及盤中成交價 超過4% 且成交量超過昨日的10分之一。
如下
IF ( (open >= close[1] * 1.04) OR (high >= close[1] * 1.04) ) // 使用high來取盤中價格
AND (volume >= (volume[1] / 10))
THEN
ret = 1; // 觸發警示
盤中有股票有超過4%且量也有超過10分之一,沒有給警示 是不是在觸發設定上還是編碼上有問題?
感謝您的協助
(1)請確認你使用的頻率是日頻率。
(2)改寫成以下的程式碼比較妥當:
IF (getField("open","D")>=getField("參考價","D")*1.04
OR getField("high","D")>=getField("參考價","D")*1.04)
AND getField("volume","D")>=getField("volume","D")[1]*0.1
THEN ret = 1;
感謝教授 不好意思 我是XQ小白。我有2個問題 我需要的是當日的盤中價,跟當日的盤中量。看的是分鐘KD,為何頻率是日頻率? 是因為XQ就是這樣設定的嗎? 還有像這種警示的Xscript 一定要等開盤,才能測試嗎? 還是有另外的方式,在晚上的時候也可以測試? 助順心!
教授 再請教一個問題,假如我要用分鐘量跟昨天成交量的10分之1去比。 應該要怎麼寫? 因為getField("volume","D")的頻率是依照策略雷達的指定頻率,假如我用的頻率是分鐘就無法取得昨天成交量。謝謝您
(1)分鐘頻率之下,抓昨天成交量就用getField("volume","D")[1]。
(2)分鐘量比昨天成交量的10分之1大的條件如下:
condition1=v>getField("volume","D")[1]*0.1;
教授 我寫完 這樣可以嗎 設定頻率為分鐘
value1 = getField("volume","D")[1]*0.1; //昨天成交量的1/10
value2 = getField("volume","1")[0]; //分鐘的量
IF (getField("open","D")>=getField("參考價","D")*1.04
OR getField("high","1")>=getField("參考價","D")*1.04)
AND value1 >= value2
THEN ret = 1;
教授 請教您。假如我要1:25時,將庫存當沖先賣的股票,以漲停價買回平倉,並在自動交易中心執行,應該如何寫?
設定自動洗價,洗價期間為收盤前5分鐘。if currentTime>=132500 and position<0 then setposition(0,getField("漲停價","D"));

教授 沒有清倉,還留著。 也沒看到有委托單。已將自動洗價打開, 應該如何改呢? 謝謝教授
12 評論