將選股腳本改為指標(大盤所有個股的走勢趨勢統計)

  •   466 
  • 最後發表   股海小子  2020 四月 15
股海小子 發文於   2020/01/14

參考下列網頁:

https://xstrader.net/%e7%94%a8%e8%b6%a8%e5%8b%a2%e8%ae%8a%e5%8c%96%e4%be%86%e5%88%a4%e6%96%b7%e7%95%b6%e5%89%8d%e5%a4%a7%e7%9b%a4%e7%9a%84%e5%a4%9a%e7%a9%ba%e6%96%b9%e5%90%91/

想法是,想把範例的選股腳本,做成指標。也就是,原本選股出來的結果,要另外用excel去看上升趨勢/下降/盤整...各有多少檔。那我想要把上升趨勢數量/下降趨勢數量/盤整數量/空翻多數量/多翻空數量,做成一個指標(不見得要五個都顯示)。

我自己改寫,程式碼如下。遇到的問題是,plot出來的圖,只有1或0。請問可以怎麼改呢? 謝謝指導

input:Length(20); //"計算期間"

//setoutputname1("趨勢訊號");

LinearReg(close, Length, 0, value1, value2, value3, value4);

//做收盤價20天線性回歸

{value1:斜率,value4:預期值}

value5=rsquare(close,value4,20);//算收盤價與線性回歸值的R平方

value6=0;

value7=0;

value8=0;

value9=0;

value10=0;

 

 

condition1=false;

condition2=false;

condition3=false;

condition4=false;

condition5=false;

 

if value1>0 and value1[1]>0 then condition1=true;

if value1>0 and value1[1]<0 then condition2=true;

if value1<0 and value1[1]<0 then condition3=true;

if value1<0 and value1[1]>0 then condition4=true;

if value5>0.2 then condition5=true;

 

if condition1 and condition5

then

begin

value6=value6+1;

//outputfield1("上昇趨勢");

end;

 

if condition2 and condition5

then

begin

value7=value7+1;

//outputfield1("翻多");

end;

 

if condition3 and condition5

then

begin

value8=value8+1;

//outputfield1("下降趨勢");

end;

 

if condition4 and condition5

then

begin

value9=value9+1;

//outputfield1("翻空");

end;

 

if condition5=false

then

begin

value10=value10+1;

//outputfield1("盤整");

end;

 

//plot1(value6,"上升趨勢");

//plot2(value7,"翻多");

//plot3(value8,"下降趨勢");

//plot4(value9,"翻空");

plot5(value10,"盤整");

排序方式: 標準 | 最新
XQ小幫手 發文於   2020/01/14

Hi 股海小子

小幫手大概懂您的需求,小幫手幫您想一個方法如下,或許可以給您一些幫助

我將您的value6作為一個變數,然後當各種條件成立的時候,他就會存成不同的值

最後plot value6即可,語法如下

input:Length(20); //"計算期間"

//setoutputname1("趨勢訊號");

LinearReg(close, Length, 0, value1, value2, value3, value4);

//做收盤價20天線性回歸

{value1:斜率,value4:預期值}

value5=rsquare(close,value4,20);//算收盤價與線性回歸值的R平方

value6=0;

{value7=0;

value8=0;

value9=0;

value10=0;}

condition1=false;

condition2=false;

condition3=false;

condition4=false;

condition5=false;



if value1>0 and value1[1]>0 then condition1=true;

if value1>0 and value1[1]<0 then condition2=true;

if value1<0 and value1[1]<0 then condition3=true;

if value1<0 and value1[1]>0 then condition4=true;

if value5>0.2 then condition5=true;



if condition1 and condition5

then

begin

value6=1;

//outputfield1("上昇趨勢");

end;



if condition2 and condition5

then

begin

value6=2;

//outputfield1("翻多");

end;



if condition3 and condition5

then

begin

value6=-1;

//outputfield1("下降趨勢");

end;



if condition4 and condition5

then

begin

value6=-2;

//outputfield1("翻空");

end;



if condition5=false

then

begin

value6=0;

//outputfield1("盤整");

end;



//plot1(value6,"上升趨勢");

//plot2(value7,"翻多");

//plot3(value8,"下降趨勢");

//plot4(value9,"翻空");

plot5(value6);

最後畫出來的圖呢,則是哪一個數字代表著他是什麼趨勢(範圍是-2~2)

希望有幫助到您,謝謝您的詢問。

 

  • 按讚來自於
  • Sinotrade006
股海小子 發文於   2020/01/15

X的,嘉實真的太強了~~ 謝謝。

股海小子 發文於   2020/01/15

個股的看盤指標,用您的回答的解法,可以做為個股判斷使用。但我想到,原本我要的,是用來看大盤。所以,我是想呈現,下列想法:

以[上升趨勢股票個數]做舉例,我希望畫出,大前天是370,前天是280,昨天是402。(我就可以把這些畫成線圖或者柱狀圖,所以我最早的問題才會在裡面使用count+1的句法)

想再請您指點寫法,謝謝。

XQ小幫手 發文於   2020/01/15

Hi 股海小子

小幫手懂您的意思,其目的是希望範圍可以擴展到全部股票,並且跑完全部股票的結果並記錄下來。

目前這個部分XS還沒有辦法達成,目前XS語法都是以個股為主

就連文章上的選股,也是一個範圍的全部商品都個別去跑,只是一起列選在選股中心上而選出。

在指標上,一次只能選擇一個商品的技術分析,就會是以那個商品去跑XS指標語法喔。

因此目前您的需求是無法達成的,謝謝您的詢問^^

  • 按讚來自於
  • Sinotrade006
股海小子 發文於   2020/01/17

好吧,只好乖乖抓資料寫python....XD. 謝謝解答!

股海小子 發文於   2020/04/15

給對這個題目有興趣的投資朋友,我後來也間接解決這個問題了。我的方法是把這個做成選股,同一個選股程式,但是設定成五個不同的每日選股,分別選出這五個選股不同分類。然後,要看數據變化,就....從選股中心裡面一天天往前按下去.....比較麻煩,勉強堪用。供參考

發表回覆
Close