陳君弘 發表於 12-12-11 00:21

區間突破的程式怎麼寫?

相信大家都曉得,有一種高低區間突破的策略,取一天開盤的前數分鐘,這段時間過後,只要突破區間的高點做多、低點放空,在搭配停利或者停損,請問這樣的策略要怎麼寫呢?有看過一些範例,但沒有說明其實都不是很懂。剛接觸程式交易,請不吝指教!謝謝。

曾永政 發表於 12-12-11 09:01

大概這樣吧~http://www.yctseng.net/2012/12/blog-post.html

陳君弘 發表於 12-12-11 13:07

不知為何,必須按重新整理才能看到一瞬間的程式碼,但我已經把它記下來了。
看完之後,覺得相當簡潔易懂,但有些不太了解的地方。

input:length(10),endTime(1330);   length(10)是10跟k棒吧,不論是幾分k
VAR:K(1),tobuy(9999),toshort(0);請問為什麼K(1)呢?什麼意思?
k=iff(D>D),1,k+1);               這串也看不太懂,我只知道今天大於昨天而已。

if sessionastbar then begin                回傳最後一根k棒就開始?什麼意思?
   tobuy=9999;
   toshort=0;

end;

if k=length then begin                      當k數量和長度相等
   tobuy=highest(high,k);                tobuy變成最高價
   toshort=lowest(low,k);               toshort變最低價
end;

if k>= length and <= endtime then begin   條件符合,突破後,下一根K買進
   if marketposition<=0 then
   buy next bar tobuy stop;

   if marketposition>=0 then
   sellshort next bar toshort stop;

end;

setexitonclose;       將部位清空平倉




tedwang 發表於 12-12-11 14:00

陳君弘 發表於 12-12-11 13:07 static/image/common/back.gif
不知為何,必須按重新整理才能看到一瞬間的程式碼,但我已經把它記下來了。
看完之後,覺得相當簡潔易懂, ...

我來試著回答一下, 若有誤請阿政大指正.
VAR:K(1),tobuy(9999),toshort(0);請問為什麼K(1)呢?什麼意思?K是用來計數K棒是今天開盤後第幾根, 先預設=1, 下面會依條件更新.

k=iff(D>D),1,k+1);               這串也看不太懂,我只知道今天大於昨天而已。所以逢開盤(換日) K就再設定為1, 盤中每根就依序遞增+1.

if sessionastbar then begin                回傳最後一根k棒就開始?什麼意思?
   tobuy=9999;
   toshort=0;
end;收盤時重設區間的高低變數.

曾永政 發表於 12-12-11 17:08

本帖最後由 曾永政 於 12-12-11 17:10 編輯

TedWang大 回答完畢,讚!就是那樣~

補充一下,在變數或參數宣告時,括號內的數值是預設值,"K"是標記目前K棒是每天的第幾根,所以預設從1開始。
對了,在這個賠錢貨的程式碼,我不是等突破"後"才進場,是碰到突破價就進場。下單的指令是 stop 。

K7774 發表於 12-12-11 20:57

之前我也遇到相同的問題---"必須按重新整理才能看到一瞬間的程式碼", 後來用Chrome開網頁就正常了.

陳君弘 發表於 12-12-11 23:25

了解囉!謝謝tedwang 和政大^^
頁: [1]
查看完整版本: 區間突破的程式怎麼寫?