請問各位大大,我的語法哪邊有問題呢?
我想要當日穿越EMA20,但選出來的都是昨日都已經站上EMA20
value1 = EMA(Close,20); //計算45EMA
condition1 = ( close cross over value1 );//股價穿越20EMA
if condition1 then ret =1 ;
請問各位大大,我的語法哪邊有問題呢?
我想要當日穿越EMA20,但選出來的都是昨日都已經站上EMA20
value1 = EMA(Close,20); //計算45EMA
condition1 = ( close cross over value1 );//股價穿越20EMA
if condition1 then ret =1 ;
今天收盤之前,選股策略都是用昨天的收盤資料選股。若要盤中即時選股,需要使用警示腳本或交易腳本。你的語法並沒有問題。
input:Leng1(20);
variable: ema1(0);
SetInputName(1,"EMA20");
settotalbar(maxlist(Leng1) + 480);
ema1 = ema(close, Leng1);
condition1 = close[1] < ema1;
condition2 = close > ema1;
if condition1 and condition2 then ret = 1;
後續我改成這樣就可以了,但是我想請教的是480這個數字為何要讀取這麼多呢?
EMA的計算會使用到前期資料,若資料筆數不足,算出來的數值會與系統看到的不一樣。
許教授 我又來了
那我想要使用30分鐘 穿過EMA20要怎麼寫呢?可以跟日K的EMA寫在一起嗎
(1)主頻率設定為30分鐘。
(2)30分鐘收盤價(盤中為即時成交價)穿越20日的EMA,寫法如下:
if getField("收盤價","30") cross over xfMin_EMA("D",getField("收盤價","D"),20) then ret=1;
剛剛試了一下,好像不行
如果我改為警示腳本,即時價位要穿越EMA20,這要怎麼修改呢?讀取的K棒需要多少呢
getField("close","30") cross over xfMin_EMA("30",getField("close","30"),20);
(1)你說,試了一下,好像不行,是否用的是選股?若是選股腳本,不能用分鐘頻率,要用日以上的頻率。分鐘頻率只能在警示腳本或交易腳本使用。
(2)xfMin_的函數是跨頻率使用的函數。跨頻率一定是小跨大,亦即你不能在日頻率之下,跨頻率處理30分鐘的EMA。
(3)我提供的程式碼是跨頻率的程式碼,假設你用小於30分鐘(或30分鐘)的頻率當作主頻率,跨頻率去抓30分鐘價格是否對20日EMA黃金交叉,就像我那樣寫即可。若主頻率是30分鐘,要抓價格是否對30分鐘的20期EMA黃金交叉,不需要跨頻率,直接寫成:
condition1=c cross over EMA(c,20);
請問如果用close的話是那一根bar跑完才計算對吧,還是可以用q_last呢
若有勾選逐筆洗價,則盤中close代表即時成交價。close[1]代表前一根K棒的收盤價。
9 評論