• 6月期货各品种平仓须知
  • 交易学院

    汇聚金融精英,交易达人,资深专家,打造以交易为中心的投资人生态圈

    價格標示錯

    Zb263 2021年09月16日 交易学院 393 0

    那麼爲什麼價格標示錯了呢?因爲在HTS這個軟體中,

    Market (市價)這個指令是指K線的最新價格,所以在收盤後去 看,所謂的市價變成了當時有訊號的K線的最後一個價格,也 就是收盤價。爲了給大家看看這個「市價」的意義,我在盤中抓 了兩張圖下來做比較,因爲這個程式等訊號比較慢,我用分線圖 做來抓圖。

    這是盤中出現買進訊號當時標示的成交價位置,


     

    K〜/ 国际期貨操作不靠內線

    價格往下掉時,標示的位置並不會改變,因爲畫面上的綠色小三 角形在印刷上會看不清楚,我改塗上小白色點作爲標明。

     

    等你關了電腦,隔天再打開,它就成了這副樣子。


    這樣的結果雖然盤中的確會出現當時突破的訊號,我們可在 當下就執行買進的動作,不過,以這樣的標示成交價位,可不只

    是圖面上標示不同而已,還牽涉這程式在回測過去歷史資料呈現

    的績效表,因爲錯誤的成交價,必然產生錯誤的績效表。當用來計算的成交價是錯誤的時候,更好這樣的績效表也別

    既然這程式目前看到錯誤的是價格,我們就接著來對成交價 格做除錯。我們把程式碼修改如下:

    Parameters: Length(5);

    VARS:高(0),低(0);

    高=Highest(High, Length)

    低=Lowest(Low, Length)

    If Open > 高[1] Then

    Buy ("跳買")this bar at Open Stop

    Else

    If High > 高[1] Then

    Buy ("買進")this bar at 高[1] Stop

    End IF

    End IF

    If Open < 低[1] Then

    Sell ("跳賣")this bar at Open Stop

    Else

    If Low < 低[1] Then

    Sell ("賣出")this bar at 低[1] Stop

    End If

    End if


     

    從這裡可以看到前置的參數與變數都宣告不變,變動的是後 面的IF-THEN……部分。我假設經過剛剛的程式碼解說,讀者 對程式碼的運作有初步了解,接著就不用那麼詳細的解釋程式 碼。剛剛的做多部分由這兩段取代:

    If Open > 高[1] Then

    Buy ("跳買")this bar at Open Stop

    Else

    If High > 高[1] Then

    Buy ("買進")this bar at 高[1] Stop

    End IF

    End IF

    這裡變成兩次的IF結構,也就是:


    這樣運用指定的價格來成交,而不是用市價這個會變動的數 字來計算成交價,應該就可以抓到正確的成交價了吧。先來看看 這樣程式碼的績效圖。

    簡直不可置信,光是把價格弄到正確的位置上,績效就大幅

    提昇了耶! 

    如果這樣就解決問題,7年可以獲得6倍餘的報酬,我想讀

    者要打敗巴菲特不是太easy 了嗎?事情當然沒有這麼單純,不

    然怎麼會用來做範例 > 提給大家看看硏發程式過程中會碰到多少

    陷阱。

    我先把這過去5日的高低點做成指標畫在圖上給你觀察,這

    樣會方便些。指標程式碼如下:

    Parameters: Length(5);

    VARS:高(0),低(0);

    高=Highest(High, Length)

    低=Lowest(Low, Length)

    drawl(高[1],”5 高”,RED,2)

    draw2(低[1],”5 低“,blue,2)

    看看接下來兩張圖,被我框出來的地方,都是應該要有交易

    訊號卻沒有交易訊號出現的°

    這一張應該在開盤就要買進,卻沒有出現買進的訊號。

     

    這一張則是應該要在盤中穿價的時候賣出,卻沒有賣出的訊 號產生。


    事實上這樣的CODE,會忽略很多不利交易的訊號,至於原 因,抱歉,時至今日我還不能確認這是HTS的BUG或是STOP 指令真的不可以用在新倉買賣之後,但是檢查過程卻不會提示禁 止,讀者只要記住,絕對不能這樣做,因爲我已經看到好多人犯 這樣的錯誤了。

    我當然會提供如何寫出正確的交易程式碼,請繼續往下看。 不過在這裡我要提醒讀者一件事,很多市面上績效表非常亮麗的 軟體指標或是交易訊號,一般來說賣方不會提供您CODE給您 檢查,但是至少您可以問問交易原理,還有確認一下每一個K 線是否有該有交易卻沒有訊號的狀況?或是告訴您用「市價」去 交易,卻看到他的訊號點用收盤價顯示,然後績效表是另外做一 張表格用「市價」在計算他的績效。就我所看到的,的確有些人 無意間或是刻意的對績效表加以扭曲,當然是爲了銷售,而我們 自己真的要睜大眼睛,在金融市場,就算要被騙也不要那麼容易 騙,是嗎!

    接下來算是這個交易策略的程式最後版了。

    Parameters: Length(5)

    VARS:高(0),低(0);

    高=HighestVa丄ue(High, Length) 低=LowestValue(Low, Length)

    If Open > 高[1] Then

    Buy ("跳買 1") this bar at OPEN OR HIGHER

    Buy ("跳買 2") this bar at OPEN OR LOWER

    END IF

    If High > 高[1] Then

    Buy ("買 it 1") t his bar at 高[1] OR LOWER

    Buy ("買進 2") this bar at 高[1] OR HIGHER

    End if

    If Open < 低[1] Then




    有嚇了一跳嗎?程式碼變好多出來,讀者有注意的硏究一下 跟前面的程式碼有什麼不同嗎?是的,在買進與賣出的指令上, 一個條件的觸發我都用兩行不同名稱的買進賣出指令,並且要注 意到開盤價的觸發指令是安排在高點穿越之前,因爲我們可以確 認任何一根K線的開盤價都是更先出現的,所以當開盤價符合 我們的突破就進場的條件時,就優先以開盤價成交。

    這部分的程式碼我做一下解釋,因爲我認爲這是在HTS上 執行「盤中穿價就要成交」的交易模式的重要結構,也是我個人 認爲比較符合操作上的人性——等待一個絕對的價位,一但發生 穿越就是立刻丟出市價單去建立部位,這樣的操作方式完全沒有 模糊空間,不去等待收盤,見價就動作,信心會非常的堅定。將
    來讀者自己編寫程式的時候,只要你的交易策略是使用盤中一旦 碰觸某價位就買進,或一碰觸某價位就放空的模式,請牢記這樣 的架構,不論是在新倉的建立或是停損的出場,都不要再使用前 面的錯誤方式。

    我取買進部分來做解釋。

    If Open > 高[1] Then

    Buy ("跳買 1") this bar at OPEN OR HIGHER

    Buy ("跳買 2") this bar at OPEN OR LOWER

    END IF

    「當開盤價大於昨天的5日高點時,就以開盤價買進」是這 一段的意思,但是我用兩行買進指令,之一行:在當下買進,成 交在開盤價或更高價位。

    Buy ("跳買 1") this bar at OPEN OR HIGHER

    第二行:在當下買進,成交在開盤價或更低價位。

    Buy ("跳買 2") this bar at OPEN OR LOWER

    這會造成在盤中只要一出現開盤價大於昨天的5日高點 時,就顯現買進訊號標示在開盤價的位置,而後續不管價格跑得 比開盤價高或低,都會有其中一行被成立的標示在K線上,也
    就是說今天你把電腦關了,明天打開,他還是標示買進在開盤價 的位置,不會有盤中訊號與收盤後訊號不一致的狀況,這件事非 常的重要!試想一下,如果讀者要執行一個老闆交辦的工作命 令,當你做完後,老闆跟你說:「我有叫你做嗎?你是不是太雞 婆啦?」,這樣的感覺就像是盤中出現訊號,而盤後消失,這在 金融交易上更會帶來無法執行的問題,因爲我們變得不知道盤中 訊號的出現要不要執行,因爲也許盤後會消失!很不幸的我曾經 看過一些公開銷售的指標訊號是如此的狀況。

    接下來盤中高點穿越的程式碼,意思上跟開盤跳過的意思是 一樣的,但是我指定他成交在昨天的5日高點的價格上,因爲如 果是開盤先發生跳過,程式的流程會使開盤價買進的指令先執 行,因爲已經有了做多的部位,再符合高點穿越也不會重複執行。  那麼程式寫到這裡,我們再到K線圖上去確認一下°     

    標示的K線與價格都正確了,程式的硏發走到這一步,才 有往下去看回測績效表的價値。我們先看看這樣的績效表如何, 其實也不錯了,花7年的時間可以賺到4倍餘的報酬率,請讀者 想想,自己過去的操作,真的做得到嗎? 

    不過事情沒這麼單純,因爲我們還少了一個步驟:設定適當 的交易成本與滑價風險。因爲下單要付手續費跟期交稅,還有下 單的時候我們不見得真的能成交在那個價位上,通常我會對這部

    国际期貨操作不靠內線

    分從嚴一點設定,如果考慮這部分進去後,程式還是能獲利,才 算是有點價値的程式。我設定每一邊交易要500元新台幣,一進 一出就1000元,滑價設定爲5點,長期來算應該會差不多,合 起來就是每次的交易完成會扣除掉2000元。請看這樣設定下的 績效表。


    是不是績效又差了點?那麼如果是習慣做當沖的人,可有算 過光是交易成本佔去了多少的資金耗損?算一算可是會高得嚇 人,我還沒見過當沖致富的。

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

    猜你喜欢

    发表评论

    发表评论: