先挑選出強勢股(EMA多頭)後,再跑盤中洗價策略(EMA多頭 & 布林觸上軌 & 20EMA > 20SMA)

  •   1.3K 
  • 最後發表   Jack  2017 四月 06
Jack 發文於   2016/12/20

大致介紹:

先使用選股腳本,撰寫挑選強勢股(EMA多頭)的腳本,

再將這些挑選出來的商品,再跑盤中洗價策略(EMA多頭 & 布林觸上軌 & 20EMA > 20SMA)

 

Q:為何選股腳本搭配策略雷達?

先用選股腳本挑選強勢股的原因是,縮減跑策略雷達的商品。

 

執行步驟與程式碼範例:

1. 挑選強勢股(EMA多頭為,50EMA>120EMA>240EMA)的選股腳本程式碼範例

input:Leng1(50),Leng2(120),Leng3(240);

variable: ema1(0), ema2(0), ema3(0);

SetInputName(1,"短均線");
SetInputName(2,"中均線");
SetInputName(3,"長均線");

settotalbar(maxlist(Leng1, Leng2, Leng3) + 250);

ema1 = ema(close, Leng1);
ema2 = ema(close, Leng2);
ema3 = ema(close, Leng3);

condition2 = ema1 > ema2;
condition3 = ema2 > ema3;

if condition2 and condition3 then 
ret = 1;

OutputField1(ema1, 2, "短均線");
OutputField2(ema2, 2, "中均線");
OutputField3(ema3, 2, "長均線");

 

2. 警示腳本撰寫盤中洗價策略(EMA多頭 & 布林觸上軌 & 20EMA > 20SMA),程式碼範例如下,最後將此警示腳本加入策略雷達中,執行商品請記得將下拉式選單選取【選股】,並點選方才撰寫的強勢股選股策略。

Input:
    Length(20),
    UpperBand(2),
    ShortLength(50),
    MiddleLength(120),
    LongLength(240),
    EMA_L(20),
    SMA_L(20);

settotalbar(maxlist(maxlist(ShortLength, MiddleLength, LongLength) + 40,Length + 3));

SetInputName(1, "期數");
SetInputName(2, "通道上緣");
SetInputName(3, "EMA短期");
SetInputName(4, "EMA中期");
SetInputName(5, "EMA長期");
SetInputName(6, "EMA額外期數");
SetInputName(7, "SMA額外期數");

if  EMA(close, ShortLength) > EMA(close, MiddleLength)
and EMA(close, MiddleLength)> EMA(close, LongLength) then
Ret = close >= bollingerband(Close, Length, UpperBand) and EMA(close, EMA_L) > average(close, SMA_L);

 

以上,有問題再請詢問,謝謝。

 

  • 按讚來自於
  • Yin-yi Zhang
  • Ken Wang
排序方式: 標準 | 最新
neo59168 發文於   2017/03/30

請問如果以ema多頭要加入外資買超3至5天或是一段時間買超又加如macd黃金交叉請問如何編寫?....謝謝你!!

Jack 發文於   2017/03/31

neo59168兄:

請問是要什麼腳本類型?(指標、選股、警示)

謝謝。

neo59168 發文於   2017/04/05

Jack兄:你好,如果是用ema50,120,240的多頭排列下,以今日收盤大於ema50為主,以近五日或是近十日或是近二十日有外資買超來挑出。因為寫著就在後面卡關了,請jack兄幫忙一下解決小小問題,感恩。

Jack 發文於   2017/04/05

neo59168兄:

方便附上您腳本的完整程式碼嗎?

我看看可不可以從您的程式碼除錯,謝謝。

neo59168 發文於   2017/04/05

感謝你jack兄,晚點附上。

harveychang 發文於   2017/04/05

請問

如果用這個腳本 (挑選強勢股(EMA多頭為,50EMA>120EMA>240EMA)的選股腳本程式碼範例)

可是我要用來挑選過去的特定時間比如 20170301,

那要如何編寫 

謝謝

Jack 發文於   2017/04/06

harveychang兄:

請您試試看以下的選股腳本範例程式碼,

請注意!如果有錯誤的話,可能是資料讀取範圍設定不夠長的關係,

以上,供參考,有問題歡迎詢問謝謝。

input:_date(20170301,"指定日期");

value1 = GetBarOffset(_date);
input:Leng1(50),Leng2(120),Leng3(240);

variable: ema1(0), ema2(0), ema3(0);

SetInputName(1,"短均線");
SetInputName(2,"中均線");
SetInputName(3,"長均線");

settotalbar(maxlist(Leng1, Leng2, Leng3) + 1040);

ema1 = ema(close, Leng1);
ema2 = ema(close, Leng2);
ema3 = ema(close, Leng3);

condition1 = close > ema1;
condition2 = ema1 > ema2;
condition3 = ema2 > ema3;

if condition1[value1] and condition2[value1] and condition3[value1] then 
ret = 1;

OutputField1(ema1, 2, "短均線");
OutputField2(ema2, 2, "中均線");
OutputField3(ema3, 2, "長均線");

  • 按讚來自於
  • 張益豪
harveychang 發文於   2017/04/06

harveychang兄:

請您試試看以下的選股腳本範例程式碼,

請注意!如果有錯誤的話,可能是資料讀取範圍設定不夠長的關係,

以上,供參考,有問題歡迎詢問謝謝。

input:_date(20170301,"指定日期");
value1 = GetBarOffset(_date); input:Leng1(50),Leng2(120),Leng3(240); variable: ema1(0), ema2(0), ema3(0); SetInputName(1,"短均線"); SetInputName(2,"中均線"); SetInputName(3,"長均線"); settotalbar(maxlist(Leng1, Leng2, Leng3) + 1040); ema1 = ema(close, Leng1); ema2 = ema(close, Leng2); ema3 = ema(close, Leng3); condition1 = close > ema1; condition2 = ema1 > ema2; condition3 = ema2 > ema3; if condition1[value1] and condition2[value1] and condition3[value1] then ret = 1; OutputField1(ema1, 2, "短均線"); OutputField2(ema2, 2, "中均線"); OutputField3(ema3, 2, "長均線");

harveychang 發文於   2017/04/06

感謝 jack兄

這樣家上特定選股條件再用策略雷達來回測,覺得比較準確

  • 按讚來自於
  • jacklee
發表回覆
Close