[***API下單機收費公告***] [API下單機下載] || [TS懶人包] [雅虎拍賣]
2009年11月24日星期二

邀請七位實戰講師的二天一夜的TS基礎課程

3 回應

在 TradeStation 程式交易全攻略這本書中出力最多的運隆規畫了一次 TS 的收費課程。課程的特點和介紹如下:


學員必備:筆記型電腦,並且安裝好TradeStation軟體
(HTS/MC/TS 程式碼,講師會幫你轉寫完成)
{營業員來上過課,經過專業實戰認證,更有專業實力招攬客戶}
課程特點之一:提供台指期貨歷史DATA
課程特點之二:學費包吃,包住,含飲料,點心,餐點,講師費,完訓認證證書
課程特點之三:每七位學員分配人一位講師,每一組講師會幫忙寫出3支策略程式和相關指標程式,一共6組學員,因此學員會獲得20支台指策略程式.
課程特點之四:運隆會提供目前運隆運作的2支程式給大家,他們的2009每月績效表現請參考運隆Facebook上面社團照片
課程特點之五:你自己的策略程式有什麼盲點,可以不公開卻又獲得講師指點修正的絕佳機會
課程特點之六:七位講師會輪轉到每一小組,因此學員有機會吸收七種不同的交易觀念和策略程式寫法
課程特點之七:還有2項目重大福利目前洽談中.......因此先保留.

<公開報名2天內搶先價-原價120,000元的課程,限時限量報名特價優惠2萬4000元,並且贈送Easy Language指令手冊2本超值1萬元>

優惠價格是提供給TS程式交易全攻略讀者和期貨營業員
超過42位名額或是報名時間截止立刻調整價格


對課程有興趣的可以下載報名表,裡面有運隆的聯絡方式。

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo
2009年11月22日星期日

程式交易 - TradeStation opend 函數說明

5 回應

有朋友在留言版問到了這個函數到底在寫些什麼。在留言版上又不好回答…所以就直接用這篇文章來說明一下了。首先來看一下 opend 函數的程式內容。


Inputs: DaysAgo(Numeric);
Array: OpenArray[50](-1);

If DataCompression < 2 Then Begin
If Date > Date[1] Then Begin
For Value1 = 50 DownTo 1 Begin
OpenArray[Value1] = OpenArray[Value1-1];
End;
OpenArray[0] = Open;
End;
If DaysAgo <= 50 Then
OpenD = OpenArray[DaysAgo];
End;

{ Forcing the function to series }
Value1 = OpenD[1];


首先問到的是 Array 到底是作什麼用的?其實 Array 就是存每日開盤用的…至於他預設的 50 的意思…是表示這個函數只存 50 天的開盤數據。

至於這一段:

If Date > Date[1] Then Begin
For Value1 = 50 DownTo 1 Begin
OpenArray[Value1] = OpenArray[Value1-1];
End;
OpenArray[0] = Open;
End;
If DaysAgo <= 50 Then
OpenD = OpenArray[DaysAgo];

就是在換日的時候將 Array 的數據全部往前移動一格(Array 可以看成是儲存資料的格子),也就是第 50 格的資料改成 49 格的資料…一直到第 1 格的資料改成第 0 格的資料。

接著再把第 0 格的資料設為那一天的開盤。

所以在程式內使用 opend(10) 去取資料的時候…就是來到這邊拿出第 10 格的資料出來回傳到程式裡。

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo

程式交易 - 15K 當沖

0 回應

這隻程式設了一個大部份人比較能忍受的停損點數 40 點。再這樣的情況下再利用突破進場和快速反手作單。





對程式有興趣請參考雅虎拍賣

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo
2009年11月18日星期三

程式交易 - 200911 績效

0 回應

依舊是賺賺賠賠的一個月…整個口數已經從六七月的 16 口小台縮到目前只剩下 4 口小台了…現在比的大概是看誰的資金控管比較好了吧。再看看最近的盤…實在是難做的一個極點了…



11.13 這種走法大概許多程式都是多空雙殺。這個月大概只有波段程式績效比較好一些吧。


本月績效:-180 點

Y拍程式:
10K當沖:264 點
10K波段:323 點
30K波段:106 點

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo
2009年11月10日星期二

程式交易 - Q_Time 用法

12 回應

首先要說明的是 Q_Time 只有最後一根 K 線有時間… Q_Time 代表的時間為系統目前的時間…除了最後一根即時 K 線外… Q_Time 的時間都為 000000。這個部份可以用在出場或進場。因為如果要確時的買在 next bar 的話…如果訊號成立在收盤前的最後一根 K 線…那再 next bar 下去就到隔天開盤了。

首先看看老史的文章:


13:43平倉 15K最終改良版!

本來想改成13:30平倉,回測少賺一點省得麻煩,結果改成13:30分用TS回測成績少了40萬....是因為我留倉的部位是由最後收盤價決定...早 15分鐘去決定要不要留倉...,留倉單的勝率及獲利部位會減少很多...所以最後想了一個辦法,經過不斷實驗,解決我所有的煩腦~~~不過還是得實際跑才知道有沒有其他side effect...

//當下k棒時間在13:43的時候平倉訊號出現 Q1 or Q2,等到q_time>134400,此訊號消失由下面的T1 or T2接手
IF q_TIME>134300 and q_time<134400 AND MarketPosition<>0 then
if marketposition=1 then
ExitLong("Q1") this bar at market;
end if
if marketposition=-1 then
exitshort("Q2") this bar at market;
end if;
End if;

//當下k棒時間過了13:44分,Q1 or Q2消失,T1 or T2接手發出平倉訊號
//(OR q_TIME=000000 這部份可兼顧回測歷史k棒)
IF TIME = 134500 AND (q_TIME>134400 OR q_TIME=000000) THEN
EXITLONG("T1") THIS BAR AT MARKET
EXITSHORT("T2") THIS BAR AT MARKET
end if;

這樣就可以了嗎? 不...這樣可能會有個問題...就是在Q1/Q2消失 到 T1/T2出現的極短期間,有可能發生倉位會變化(平倉=>新倉=>平倉),所以最後輸出到signal.txt時還要再加一段程式碼避免這種情況發生:

//簡單說就是在13:44分之後,有可能發生倉位變化的期間,不將結果寫入signal.txt
/*********信號寫入檔案 signal.txt********/
if date = lastcalcdate and time = LastCalcTime
and (q_TIME<134400 or q_Time >134450) then
FileDelete("C:\danRC15\signal.txt")
FileAppend("C:\danRC15\signal.txt", ("0,"+ NumToStr( Date, 0 ) +","+ NumToStr (Q_time,0)+","+ NumToStr(CurrentContracts,0)+",0,"+NumToStr(close,0)+",1"))End if
/*********先信號後下單程式結束*********/

好了,這樣子就把原先在開盤時,訊號換手的問題解決,以後可以安心的在開盤前將HTS、下單機通通開好等著開盤,接著印鈔。這篇寫得亂七八糟應該沒有人看得懂吧 XD


這樣就解決出場的問題了…至於進場的話…目前的想法也是類似。

不過是在 Q_time = 134300 的時候判斷條件是不是成立…如果成立的話把某個變數修改為某個值…類似這樣:


if Q_time > 134300 and Q_Time < 134400 and dayEndCheck = 0 and xxx then
buy this bar at market
dayEndCheck = 1
end if

if time = 134500 and (Q_time > 134400 or Q_time = 000000) and dayEndCheck = 1 then
buy this bar at market
end if


大概會類似這樣…不過還沒實測過這樣的結果到底是會正常還是不正常。

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo
2009年11月3日星期二

程式交易 - HTS 多週期指標寫法(以基本KD為例)

6 回應

在 HTS 上如果需要完成多週期的策略,例如 30 分鐘抓 60 分鐘的資料等…通常會遇到不少問題…今天動手寫了個 KD 的指標出來…是在 30 分鐘內去把 60 分鐘的 KD 指標畫出來的程式…過程中遇到許多的困難…所以真的有興趣寫多週期的可能需要好好研究一下這個程式了。

首先是指標的程式碼,先把基本的 KD 指標給大家看一下…也就是原本的程式:

Parameters : HighLowTerm(9), OverSold(20), OverBought(80)
Variable : Factor(1/3)

Value1 = VALUE1[1] + (Factor * (FastK(High, Low, Close, HighLowTerm) - VALUE1[1]))
Value2 = 2/3*Value2[1]+Value1*1/3

DrawBase1( OverBought, "Over Bought", DarkGray )
DrawBase2( OverSold, "Over Sold", DarkGray )
Draw2( Round( Value2,2), "Slow %D", Blue)
Draw1( Round( Value1,2), "Slow %K", Red)


接下來…就是利用上面的 KD 指標來完成 30 分線內抓 60 分資料並畫出的程式碼:


Parameters : HighLowTerm(9), OverSold(20), OverBought(80)
Variable : Factor(1/3)

vars:high1(0), high2(0), high3(0), high4(0), high5(0), high6(0), high7(0), high8(0), high9(0)
vars:low1(0), low2(0), low3(0), low4(0), low5(0), low6(0), low7(0), low8(0), low9(0)

Condition1 = time = 94500 or time = 104500 or time = 114500 or time = 124500 or time = 134500

if Condition1 then
high9 = maxlist(high[16], high[17])
high8 = maxlist(high[14], high[15])
high7 = maxlist(high[12], high[13])
high6 = maxlist(high[10], high[11])
high5 = maxlist(high[8], high[9])
high4 = maxlist(high[6], high[7])
high3 = maxlist(high[4], high[5])
high2 = maxlist(high[2], high[3])
high1 = maxlist(high, high[1])

low9 = minlist(low[16], low[17])
low8 = minlist(low[14], low[15])
low7 = minlist(low[12], low[13])
low6 = minlist(low[10], low[11])
low5 = minlist(low[8], low[9])
low4 = minlist(low[6], low[7])
low3 = minlist(low[4], low[5])
low2 = minlist(low[2], low[3])
low1 = minlist(low, low[1])

Value1 = minlist(low9, low8, low7, low6, low5, low4, low3, low2, low1)
Value2 = maxlist(high9, high8, high7, high6, high5, high4, high3, high2, high1) - Value1
Value3 = Close

Value4 = Value4[2] + (Factor * (((Value3 - Value1) / Value2 * 100) - Value4[2]))
Value5 = 2/3 * Value5[2] + Value4 * 1/3
end if

DrawBase2( OverBought, "Over Bought", DarkGray )
DrawBase1( OverSold, "Over Sold", DarkGray )
Draw2( Round( Value5,2), "Slow %D-60", Blue)
Draw1( Round( Value4,2), "Slow %K-60", Red)



完成後的圖會長這樣:



我想整個轉換過程並算不上容易…首先必需去研究指標用到的函式有哪些…再去看每個函式的運算過程…接下來再依照運算過程會使用到的資料去想辦法存到一個正確的值。

HTS 的 highest, lowest 的問題非常嚴重…能不用就不要用…所以我都改用 maxlist 和 minlist…再來就是依照時間的週期去定下 condition。

還好 KD 還算簡單…如果是 MACD 的話,還是轉用 TradeStation 會簡單一點。

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo
2009年10月31日星期六

程式交易全攻略 - 講座資訊

0 回應

題目: 善用TS策略報表,精進程式交易功力,與虧損共舞!

主講人: PARKSON DOW

本講座適合已經有在作程式交易的人參加

時間:11月19日 下午6:30 進場~21:00結束

地點:台中市五權西路一段257號 9樓~3 (大華期貨 台中分公司)

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo
2009年10月26日星期一

程式交易 - 200910 績效

0 回應

經朋友提醒才發現十月績效忘了 PO …也許是最近實在太悲慘了。所以整個沒心情去看績效了吧…十月合約依舊難作…愈來愈多在九點前的急殺急拉…也愈來愈多在程式進場後行情就結束的情況出現了。我想這也是需要思考的地方…畢竟盤勢還是會變動的。


當沖程式:
F4 當沖組合:-153 點

Y拍程式:
10K當沖:-24 點
10K波段: 66 點
30K波段:-675 點

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo