買賣訊號

  •   343 
  • 最後發表   Mr 洪  2025 十月 30
Mr 洪 發文於   2025/10/20

請教

問題1.有(前5日)(最高價+最低價)/2的語法嗎

問題2.語法可以寫出BIAS指標嗎?

問題3.如果語法可以寫出BIAS指標,請問如何把(前5日)(最高價+最低價)/2,還要加BIAS指標,變成買賣訊號(有向上向下箭頭)呈現在技術分析上

 

 

補充: 選股中心的匯出策略已寄到客服信箱了

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/10/20

(前5日最高價+前5日最低價)/2:value1=(highest(h[1],5)+lowest(L[1],5))/2

12期BIAS:value2=Bias(12);

同時符合兩個條件:if value1>10 and value2<-0.5 then plot1(c,"買點");

Mr 洪 發文於   2025/10/21

關於(前5日最高價+前5日最低價)/2:value1=(highest(h[1],5)+lowest(L[1],5))/2 

Q1 請問如果只要前一日,是不是把5改掉 還是把5刪除呢?  還是把5改成1?

 

Q2 BIAS(12),請問是兩個參數嗎?   還是只有一個參數呢? 

虎科大許教授 發文於   2025/10/21

(1)前一天最高及最低價:h[1]及L[1]
(2)Bias只有一個參數。

Mr 洪 發文於   2025/10/22

Q1.highest(h[1],5)+lowest(L[1],5)/2

Q2. 12BIAS    value2=Bias(12);

Q3.當根K棒中買訊只顯示1(買進)不可重複顯示,買訊無成立亦不顯示賣訊(賣出)

同時符合Q1.Q2.買訊=C[1]<Q1.[1],C>Q1. &(Bias(12)> Bias(12) [1]

賣訊=C[1]>Q1.[1],C<Q1.

請教可以寫成交易訊號,這樣寫可以嗎?

虎科大許教授 發文於   2025/10/22

var: intrabarpersist hasPlot(false);

value1=(highest(h[1],5)+lowest(L[1],5))/2;

value2=Bias(12);

if hasPlot=false and c[1]<value1[1] and c>value1 and value2>value2[1] then

   begin

      plot1(c,"買進");

      hasPlot=true;

   end;

if hasPlot=true and c[1]>value1[1] and c<value1 then

   begin

      plot2(c,"賣出");

      hasPlot=false;

   end;

  • 按讚來自於
  • 2528899
Mr 洪 發文於   2025/10/22

謝謝

請教Q1.這買進/賣出交易訊息可經XQ的DDE輸出到EXCEL?

        Q2.XQ副圖指標沒有BIAS指標需自定?

        Q3.這買賣訊號可以顯示在技術線圖?

         謝謝教授

 

虎科大許教授 發文於   2025/10/22

(1)DDE只傳送一些欄位資料,例如即時報價等欄位,你需要自己在Excel裡面運算買賣訊號。

(2)自己寫myBias指標,只有一行指令:plot3(Bias(12),"乖離率");

(3)我提供的範例裡面的plot1及plot2就是要畫在技術分析圖表的買賣訊號指標。把『繪圖樣式』的『型式』改設為『點』即可。

  • 按讚來自於
  • 2528899
Mr 洪 發文於   2025/10/23

請問 腳本放到編輯器的交易跟警示都出現 無法使用plot ?

 

虎科大許教授 發文於   2025/10/23

plot是指標腳本專用。警示腳本用ret=1。。交易腳本用Alert。

  • 按讚來自於
  • 2528899
Mr 洪 發文於   2025/10/23

放在"交易"腳本,有把plot改成Alert還是編譯失敗

 

虎科大許教授 發文於   2025/10/23

你應該要學會看錯誤訊息。第7行的hasPlot沒有宣告(被你改成hasAlert了)。先試著自己找問題,想辦法解決。不要一有錯誤就求救。

  • 按讚來自於
  • 2528899
虎科大許教授 發文於   2025/10/23

學習找出錯誤,解決問題,是提升程式能力的必要過程。當我們遇到過很多問題,也逐一找到答案之後,以後遇到問題時,就更容易解決。若你遇到問題,沒想嘗試找出問題、解決問題,那你以後會遇到更多的問題。此外,找問題,往往很費時,當你的程式夠大(我就曾經遇過學生拿了四百多行的腳本,希望我幫忙看看問題出在哪裡),恐怕由於要花很多時間,而找不到可以協助的人。我曾經遇過一位客戶,程式執行的邏輯不如預期,希望我幫忙修改。我的回應是,付同樣的錢,與其叫我花時間找問題,不如我直接寫新的程式給他。你現在應該知道,一直找人幫你找問題,其實無法讓自己成長,也可能問題太複雜,而得不到協助。學著先自己面對問題,解決問題。真不行,再來論壇求助。

  • 按讚來自於
  • 2528899
Mr 洪 發文於   2025/10/23

謝謝教授  

已修正編譯成功 

var: intrabarpersist hasPlot(false);

 

value1=(highest(h[1],5)+lowest(L[1],5))/2;

 

value2=Bias(12);

 

if hasPlot=false and c[1]<value1[1] and c>value1 and value2>value2[1] then

 

   begin

 

      Alert(c,"買進");

 

      hasPlot=true;

 

   end;

 

if hasPlot=true and c[1]>value1[1] and c<value1 then

 

   begin

 

      Alert(c,"賣出");

 

      hasPlot=false;

 

   end;

不好意思我是70歲以上對電腦不熟悉請多包涵, 但是我想value1=(highest(h[1],5)+lowest(L[1],5))/2;先測試[1](highest(h[1])+lowest(L[1]))/2這樣修改編譯不成功 ,抱歉多次打擾教授 謝謝您 我試圖學習

 

Mr 洪 發文於   2025/10/23

請教 

這樣修改就編譯成功

value1=(highest(h[1],0)+lowest(L[1],0))/2

 這樣修改正確?

謝謝教授   晚安

虎科大許教授 發文於   2025/10/23

value1=(h[1]+L[1])/2;

  • 按讚來自於
  • 2528899
Mr 洪 發文於   2025/10/28

已修正編譯成功 

var: intrabarpersist hasPlot(false);

 

value1=(highest(h[1],5)+lowest(L[1],5))/2;

 

value2=Bias(12);

 

if hasPlot=false and c[1]<value1[1] and c>value1 and value2>value2[1] then

 

   begin

 

      Alert(c,"買進");

 

      hasPlot=true;

 

   end;

 

if hasPlot=true and c[1]>value1[1] and c<value1 then

 

   begin

 

      Alert(c,"賣出");

 

      hasPlot=false;

 

   end;

請教可以加入實際執行買賣的交易語法嗎?  想放在自動交易中心以自動買進賣出

虎科大許教授 發文於   2025/10/28

Alert(c,"買進");的上一行加入setposition(1,market);

Alert(c,"賣出");的上一行加入setposition(0,market);

 

  • 按讚來自於
  • 2528899
Mr 洪 發文於   2025/10/30

謝謝教授

再請教 我再增加RSI 4 在買進和賣出條件(或者我寫入or)買進RSI4<10賣出RSI4 >90編譯不成功請教如何加入 謝謝教授

var: intrabarpersist hasPlot(false);

value1=(h[5]+L[5])/2;

value2=Bias(14); 

value3 = RSI(C,4);  

value4 = RSI(C,12);

variable: rsv(0), k(0), _d(0);

stochastic(9, 3, 3, rsv, k, _d);

 

if hasPlot=false and c[1]<value1[1] and c>value1 and value2>value2[1]( 或者or)  then

  

  setposition(1,market);

      Alert(c,"買進");

      hasPlot=true;

 

if hasPlot=true and value4>value4[1]  then

   begin

     setposition(0,market);

     Alert(c,"賣出");

      hasPlot=false;

   end;

 

虎科大許教授 發文於   2025/10/30

if hasPlot=false and c[1]<value1[1] and c>value1 and value2>value2[1] or (hasPlot=false and value3<10

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