請問要取一分K的前30支K棒中 成交量最大紅棒的成交量 大於 成交量最大綠棒的成交量

  •   869 
  • 最後發表   miT Tim  2017 十二月 26
miT Tim 發文於   2017/11/30

if barfreq <> "Min" or Barinterval <>1 then RaiseRuntimeError("請設定頻率為1分鐘");

 

variable:BarNumberOfToday(0); 

 

if Date <> Date[1] then 

BarNumberOfToday=1

else 

BarNumberOfToday+=1;{記錄今天的Bar數}

 

if barnumberoftoday=30 then begin

and volume[HighestBar(volume[close-Open],30)] > volume[HighestBar(volume[Open-close],30)]

//成交量最大紅棒的成交量 大於 成交量最大綠棒的成交量

then ret=1;

end;

 

開盤後第30支K棒後才開始計算

我想語法應該沒這麼簡單...因為我回測怪怪的

求神人提點

排序方式: 標準 | 最新
DinDon 發文於   2017/12/01

Hi miT Tim,

 

我是路人甲,我改了一下,因為目前上班中手邊沒有XQ可以幫你編譯,你可以試試看,看看行不行,也許還有人會有更好的寫法?

 

1. 請問你這是想使用在警示腳本嗎? 

   然後在09:30前捉出最大成交量紅K( A )與最大成交量綠K( B ),並在09:30時比較這兩最大成交量大小,成立就Ret=1

   若B接近A,則有可能會走空,是這樣子的嗎? 你想要捉出的邏輯是?

    => 回家幫你測試,結果如附圖所示,

   在9:00 - 09:30間最大紅K在 09:22,最大綠K在09:23分,在09:30條件成立進場,先不管出場條件。

 

2. 你原本的程式

   volume[HighestBar(volume[close-Open],30)] > volume[HighestBar(volume[Open-close],30)] 

   我覺得這邊雖然說取 HighestBar直接用30筆比較方便,但是並不能代表紅K或綠K,可能還是要一個個來取

 

3. 

if barfreq <> "Min" or Barinterval <>1 then RaiseRuntimeError("請設定頻率為1分鐘");

variable:maxVolumeRed(0), maxVolumeGreen(0), BarNumberOfToday(0); 

if Date <> Date[1] then

begin 

    BarNumberOfToday = 0;

    maxVolumeRed = 0;

    maxVolumeGreen = 0;; 

end

else 

begin

    BarNumberOfToday+=1;

 

    //紅K且成交量 大於 最大成交量

    if(Close>Open and Volume>maxVolumeRed) then

        maxVolumeRed = Volume;

    

    //紅K且成交量 大於 最大成交量

    if(Close<=Open and Volume>maxVolumeGreen) then

        maxVolumeGreen = Volume;

end;

 

//09:30內,成交量最大紅棒的成交量 大於 成交量最大綠棒的成交量

if (barnumberoftoday=30) AND (maxVolumeRed>maxVolumeGreen) then begin

    ret=1;

end;

  • 按讚來自於
  • R122819526
  • b24524658
miT Tim 發文於   2017/12/03

感謝大大詳細解答!

1.本來是設想最大的成交量是一個方向,不過回測後顯示應該再加上其他條件,譬如要最高前3支或者前5支等等...

大大也太厲害,請問有推薦的相關書籍嗎?

DinDon 發文於   2017/12/04

Hi miT Tim,

 

你好,其實我也是10月中剛開始學,也還在摸索階段

推薦的書籍基本上還是推官網的三週學會程式交易,我認為書上就是把實戰七堂課內容整理起來,方便User翻閱查詢

我自己是看了XS學院裡面,幾乎所有的影片,因為裡面有很多概念都影片都有說明到,還是大推實戰七堂課的影片,

然後就是若不知怎樣寫,就先找交易的點點滴滴網站 / FB / 這邊有關XS的詢問問題 內有無相類似的Code,拿過來改,邊改邊體會,就會進步啦~~

 

給你參考,謝謝。

  • 按讚來自於
  • b24524658
  • R122819526
miT Tim 發文於   2017/12/23

有個疑問

 

//紅K且成交量 大於 最大成交量

    if(Close>Open and Volume>maxVolumeRed) then

        maxVolumeRed = Volume;

 

是指 那一個k棒是紅棒''同時''也是最大成交量

還是 紅色k棒之中最大的成交量(不一定是全k棒最大的成交量,有可能最大是綠k棒)

DinDon 發文於   2017/12/26

拍誰~~很晚才回

之前設計是跟據你想要前30分鐘紅K最大量與綠K最大量來做比較

所以這邊指的是  目前這根是紅K 且 目前這根紅K的量大於先前記錄的最大紅K的量,所以才要做更新動作

當然這邊可能會有資料一直變的問題,因為是目前的量,你可以設定都比較前一筆,這樣子更準,只是會晚一分鐘。

發表回覆
Close